如何讓 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 未運行,則會運行並啟動它。在腳本中,我必須關閉監視器介面來執行第二個腳本,該腳本檢查檔案大小,然後將檔案上傳到 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

希望以上內容對某人有幫助。

相關內容