Мой следующий проект состоит из Raspberry Pi, незаметно подключенного к автомобилю, который будет ездить за тем, кто его подключил, и его никогда не придется возвращать. Это доказательство концепции, поскольку я просто хочу показать, что правительство может сделать, если однажды у всех нас в машине будут установлены радиоприемники WiFi.
Он запустит Kismet при загрузке и запишет местоположения точек доступа с помощью приемника GPS. Затем, после указанного периода времени, остановите сканирование, подождите, пока не обнаружится открытая беспроводная сеть (машина стоит на месте, возможно, припаркована у кафе), а затем загрузите файл kismet .netxml на FTP-сервер или отправьте его по электронной почте.
Я не знаю, как выполнить последнюю часть. Как остановить сканирование Kismet после определенного периода времени, подключиться к открытой сети и отправить по электронной почте последний файл журнала Kismet?
решение1
Я чувствую твою боль!
К счастью, мне удалось закончить половину сценария, так что надеюсь, вы или кто-то другой сможет его использовать.
#!/bin/sh /etc/rc.common
# Kismet server init script
# Copyright (C) 2015 Springboard Research Limited
START=97
STOP=98
start() {
echo "checking monitor interface"
if [iw dev mon0 info | grep -q "Interface"]; then
echo "Monitor found, deleting and recreating"
ifconfig mon0 down
iw dev mon0 del
if [iw dev mon0mon info | grep -q "Interface"]; then
ifconfig mon0mon down
iw dev mon0mon del
fi
iw phy phy0 interface add mon0 type monitor
echo "Bringing monitor interface online"
ifconfig mon0 up
else
echo "Adding new monitor interface"
iw phy phy0 interface add mon0 type monitor
echo "Bringing monitor interface online"
ifconfig mon0 up
fi
echo starting kismet server
kismet_server -s -T netxml,pcap
}
stop() {
echo "stopping kismet server"
killall kismet_server
echo "deleting the monitor interfaces"
ifconfig mon0 down
iw dev mon0 del
ifconfig mon0mon down
iw dev mon0mon del
}
Это довольно просто. Есть скрипт загрузки, который запускается и запускает Kismet, если он не запущен. В скрипте мне пришлось убрать интерфейс монитора, чтобы выполнить второй скрипт, который проверяет размер файла, а затем загружает его на ftp-сервер.
#!/bin/bash
# get the latest kismet capture file in the /tmp directory
KISMETCAPFILE=$(ls -dt Kismet-* | head -1)
# TEST: echo $KISMETCAPFILE
# check the file size
KCFILESIZE=$(stat -c%s $KISMETCAPFILE)
THFILESIZE=1000000
HOST="your_ftp_server"
USER="ftp_username"
PASSWD="ftp_password"
REMOTEPATH="/"
# TEST: echo $K_C_FILESIZE
if [ ! -z $KISMETCAPFILE ]; then
if [ ! -z $KCFILESIZE ]; then
# check file size
if [ $KCFILESIZE >= $THFILESIZE ]; then
# if above threshold then stop capture
echo "stopping the capture"
#/etc/init.d/kiss stop
# export file to FTP server
echo "exporting the file to the ftp server"
ftp -in <<EOF
open $HOST
user $USER$PASSWD
cd $REMOTEPATH
put $KISMETCAPFILE
close
bye
EOF
echo "uploaded file to $HOST:$REMOTEPATH"
# delete local file
echo "TEST: delete local file"
# start capture
echo "TEST: start capture"
fi
fi
fi
Надеюсь, вышеизложенное кому-то поможет.