Wie lässt man Kismet für einen festgelegten Zeitraum scannen, auf öffentlichen WLAN-Zugriff warten und die Ergebnisse hochladen?

Wie lässt man Kismet für einen festgelegten Zeitraum scannen, auf öffentlichen WLAN-Zugriff warten und die Ergebnisse hochladen?

Mein nächstes Projekt besteht aus einem Raspberry Pi, der diskret an ein Auto angeschlossen ist und für die Person, die ihn angeschlossen hat, Wardrive fährt und nie wieder abgeholt werden muss. Dies ist ein Proof of Concept, da ich nur zeigen möchte, was die Regierung tun könnte, wenn wir alle eines Tages WLAN-Radios in unseren Autos haben.

Kismet wird beim Booten gestartet und die Standorte der Zugriffspunkte werden mit einem GPS-Empfänger protokolliert. Beenden Sie dann nach einer bestimmten Zeit den Scanvorgang, warten Sie, bis ein offenes drahtloses Netzwerk gefunden wird (das Auto steht, vielleicht vor einem Café geparkt) und laden Sie dann die Kismet-.netxml-Datei auf einen FTP-Server hoch oder senden Sie sie per E-Mail.

Ich weiß nicht, wie ich den letzten Teil erledigen soll. Wie kann ich den Kismet-Scan nach einer bestimmten Zeit stoppen, eine Verbindung zu einem offenen Netzwerk herstellen und die neueste Kismet-Protokolldatei per E-Mail versenden?

Antwort1

Ich fühle deinen Schmerz!

Glücklicherweise habe ich es geschafft, die Hälfte des Skripts fertigzustellen, also hoffe ich, dass Sie oder andere es verwenden können.

#!/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
}

Es ist ziemlich unkompliziert. Es gibt ein Boot-Skript, das ausgeführt wird und Kismet startet, wenn es nicht ausgeführt wird. Im Skript musste ich die Monitorschnittstelle herunterfahren, um das zweite Skript auszuführen, das die Dateigröße überprüft und die Datei dann auf einen FTP-Server hochlädt.

#!/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

Hoffe, das oben Gesagte hilft jemandem.

verwandte Informationen