如何让 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

希望以上内容对某人有帮助。

相关内容