Kismet で一定期間スキャンし、公衆 WiFi アクセスを待機してその結果をアップロードするにはどうすればよいですか?

Kismet で一定期間スキャンし、公衆 WiFi アクセスを待機してその結果をアップロードするにはどうすればよいですか?

私の次のプロジェクトは、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 が実行されていない場合は、Kismet を起動するブート スクリプトがあります。スクリプトでは、ファイル サイズをチェックして FTP サーバーにファイルをアップロードする 2 番目のスクリプトを実行するために、モニター インターフェイスを停止する必要がありました。

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

上記が誰かの役に立つことを願います。

関連情報