工具概述
Sparrow-wifi本質(zhì)上一款針對(duì)下一代2.4GHz和5GHz的WiFi頻譜感知工具,它不僅提供了GUI圖形化用戶界面,而且功能更加全面,可以代替類似inSSIDer和linssid之類的linux工具。在其最完整的使用場(chǎng)景下,Sparrow-wifi可以將WiFi、軟件定義無(wú)線電(hackrf)、高級(jí)藍(lán)牙工具、傳統(tǒng)GPS(gpsd)和漫游GPS(mavlink)整合到一個(gè)解決方案之中。
該工具完全使用Python3開(kāi)發(fā),并且適用于以下場(chǎng)景:
1、基本的WiFi SSID識(shí)別;
2、WiFi源捕捉;
3、2.4GHz和5GHz頻譜查看;
4、藍(lán)牙識(shí)別;
5、藍(lán)牙源捕捉;
6、iBeacon廣播;
7、遠(yuǎn)程操作(通過(guò)GUI);
8、可掛載到無(wú)人機(jī),支持樹(shù)莓派;
9、遠(yuǎn)程代理基于JSON,可整合進(jìn)其他應(yīng)用;
10、CSV和JSON數(shù)據(jù)導(dǎo)出/導(dǎo)入;
11、可根據(jù)GPS坐標(biāo)生成google地圖;
工具運(yùn)行截圖
Sparrow-wifi主面板,執(zhí)行基礎(chǔ)的WiFi掃描:
WiFi和藍(lán)牙跟蹤:
工具安裝
Sparrow-wifi使用了Python3、qt5和qtchart來(lái)構(gòu)建UI界面,在標(biāo)準(zhǔn)的基于Debian的平臺(tái)上,已經(jīng)自帶了Python3和qt5,只需要單獨(dú)配置qtchart即可。在Ubuntu和Kali Linux上執(zhí)行下列命令:
sudo apt-get install python3-pip gpsd gpsd-clients python3-tk python3-setuptools
sudo pip3 install QScintilla PyQtChart gps3 dronekit manuf python-dateutil numpy matplotlib
當(dāng)然了,你也可以在Python虛擬環(huán)境(virtualenv)中使用該工具:
git clone https://github.com/ghostop14/sparrow-wifi
cd sparrow-wifi
virtualenv --python=python3 $HOME/sparrow
source $HOME/sparrow/bin/activate
pip3 install gps3 python-dateutil requests pyqt5 pyqtchart numpy matplotlib
sudo python3 sparrow-wifi.py
工具運(yùn)行
該工具需要使用標(biāo)準(zhǔn)的命令行工具“iw”來(lái)執(zhí)行WiFi掃描,因此我們需要使用root權(quán)限來(lái)運(yùn)行:
sudo ./sparrow-wifi.py
GPS通信
Sparrow-wifi基于gpsd來(lái)提供標(biāo)準(zhǔn)的GPS通信功能,我們可以使用下列命令來(lái)進(jìn)行快速的GPS測(cè)試:
gpsd -D 2 -N /dev/ttyUSB0
運(yùn)行Sparrow-wifi遠(yuǎn)程代理
由于代理所需的權(quán)限跟GUI工具的運(yùn)行權(quán)限相同,因此這里我們同樣需要使用到root權(quán)限:
sudo ./sparrowwifiagent.py
默認(rèn)配置下,代理會(huì)監(jiān)聽(tīng)端口8020。我們也可以使用下列命令來(lái)指定其他端口:
sudo ./sparrowwifiagent.py --port=<myport>
工具幫助菜單
我們可以使用–help命令來(lái)查看Sparrow-wifi的幫助菜單以及參數(shù)選項(xiàng):
usage: sparrowwifiagent.py [-h] [--port PORT] [--allowedips ALLOWEDIPS]
[--mavlinkgps MLINKGPS] [--sendannounce]
[--userpileds] [--recordinterface RECORDINTERFACE]
[--ignorecfg] [--cfgfile CFGFILE]
[--delaystart DELAYSTART]
Sparrow-wifi agent
optional arguments:
-h, --help show this help message and exit
--port PORT Port for HTTP server to listen on
--allowedips ALLOWEDIPS
IP addresses allowed to connect to this agent. Default
is any. This can be a comma-separated list for
multiple IP addresses
--mavlinkgps MLINKGPS
Use Mavlink (drone) for GPS. Options are: '3dr' for a
Solo, 'sitl' for local simulator, or full connection
string ('udp/tcp:<ip>:<port>' such as:
'udp:10.1.1.10:14550')
--sendannounce Send a UDP broadcast packet on the specified port to
announce presence
--userpileds Use RPi LEDs to signal state. Red=GPS
[off=None,blinking=Unsynchronized,solid=synchronized],
Green=Agent Running [On=Running, blinking=servicing
HTTP request]
--recordinterface RECORDINTERFACE
Automatically start recording locally with the given
wireless interface (headless mode) in a recordings
directory
--ignorecfg Don't load any config files (useful for overriding
and/or testing)
--cfgfile CFGFILE Use the specified config file rather than the default
sparrowwifiagent.cfg file
--delaystart DELAYSTART
Wait <delaystart> seconds before initializing
樹(shù)莓派
我們可以使用下列命令在樹(shù)莓派上完成工具的安裝以及構(gòu)建:
sudo apt-get install libsqlite3-dev
cd /tmp
wget https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz
tar -zxvf Python-3.5.5.tgz
cd Python-3.5.5
./configure && make -j3 && sudo make install
完成之后,安裝其他的依賴模塊:
sudo pip3.5 install gps3 dronekit manuf python-dateutil
接下來(lái),直接使用下列命令運(yùn)行代理即可:
/usr/local/bin/python3.5 ./sparrowwifiagent.py
/usr/local/bin/python3.5 ./sparrowwifiagent.py --mavlinkgps=3dr --recordinterface=wlan0
文章轉(zhuǎn)載于:https://www.freebuf.com/sectool/219581.html