Kismet을 일정 기간 동안 스캔하고 공용 Wi-Fi 액세스를 기다린 후 결과를 업로드하는 방법은 무엇입니까?

Kismet을 일정 기간 동안 스캔하고 공용 Wi-Fi 액세스를 기다린 후 결과를 업로드하는 방법은 무엇입니까?

내 다음 프로젝트는 자동차에 은밀하게 연결된 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

위의 내용이 누군가에게 도움이 되기를 바랍니다.

관련 정보