工具概述

Sparrow-wifi本质上一款针对下一代2.4GHz和5GHz的WiFi频谱感知工具,它不仅提供了GUI图形化用户界面,而且功能更加全面,可以代替类似inSSIDer和linssid之类的Linux工具。在其最完整的使用场景下,Sparrow-wifi可以将WiFi、软件定义无线电(hackrf)、高级蓝牙工具、传统GPS(gpsd)和漫游GPS(mavlink)整合到一个解决方案之中。

该工具完全使用Python3开发,并且适用于以下场景:

1、基本的WiFi SSID识别;

2、WiFi源捕捉;

3、2.4GHz和5GHz频谱查看;

4、蓝牙识别;

5、蓝牙源捕捉;

6、iBeacon广播;

7、远程操作(通过GUI);

8、可挂载到无人机,支持树莓派;

9、远程代理基于JSON,可整合进其他应用;

10、CSV和JSON数据导出/导入;

11、可根据GPS坐标生成Google地图;

工具运行截图

Sparrow-wifi主面板,执行基础的WiFi扫描:

WiFi和蓝牙跟踪:

工具安装

Sparrow-wifi使用了Python3、qt5和qtchart来构建UI界面,在标准的基于Debian的平台上,已经自带了Python3和qt5,只需要单独配置qtchart即可。在Ubuntu和Kali Linux上执行下列命令:

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

当然了,你也可以在Python虚拟环境(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

工具运行

该工具需要使用标准的命令行工具“iw”来执行WiFi扫描,因此我们需要使用root权限来运行:

sudo ./sparrow-wifi.py

GPS通信

Sparrow-wifi基于gpsd来提供标准的GPS通信功能,我们可以使用下列命令来进行快速的GPS测试:

gpsd -D 2 -N /dev/ttyUSB0

运行Sparrow-wifi远程代理

由于代理所需的权限跟GUI工具的运行权限相同,因此这里我们同样需要使用到root权限:

sudo ./sparrowwifiagent.py

默认配置下,代理会监听端口8020。我们也可以使用下列命令来指定其他端口:

sudo ./sparrowwifiagent.py --port=<myport>

工具帮助菜单

我们可以使用–help命令来查看Sparrow-wifi的帮助菜单以及参数选项:

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

树莓派

我们可以使用下列命令在树莓派上完成工具的安装以及构建:

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

接下来,直接使用下列命令运行代理即可:

/usr/local/bin/python3.5 ./sparrowwifiagent.py

/usr/local/bin/python3.5 ./sparrowwifiagent.py --mavlinkgps=3dr --recordinterface=wlan0

项目地址

Sparrow-wifi:【GitHub传送门

Sparrow-WiFi:一款Linux平台下的图形化WiFi及蓝牙分析工具的更多相关文章

  1. Git各大平台(win/Linux/Mac)图形化界面客户端大汇总

    摘要: 介绍各平台下的图形化界面git客户端(本人并没有全部使用过),欢迎大家补充新的软件或者使用感受~  一.TortoiseGit - The coolest Interface to Git V ...

  2. linux平台下防火墙iptables原理(转)

    原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介 netfilter/iptables( ...

  3. Windows及Linux平台下的计时函数总结

    本文对Windows及Linux平台下常用的计时函数进行总结,包括精度为秒.毫秒.微秒三种精度的各种函数.比如Window平台下特有的Windows API函数GetTickCount().timeG ...

  4. Thrift在Windows及Linux平台下的安装和使用示例

    本文章也同时发表在个人博客Thrift在Windows及Linux平台下的安装和使用示例上. thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的R ...

  5. Linux平台下裸设备的绑定:

    Linux平台下裸设备的绑定: 运用RAW绑定 方法一 raw的配置(1) [root@qs-dmm-rh2 mapper]# cat /etc/rc.local #!/bin/sh # # This ...

  6. Ninject是一款.Net平台下的开源依赖注入框架

    Ninject是一款.Net平台下的开源依赖注入框架.按照官方说法,它快如闪电.超级轻量,且充分利用了.Net的最新语法,使用Lambda表达式代替Xml文件完成类型绑定.Ninject结构精巧,功能 ...

  7. Linux平台下源码安装mysql多实例数据库

    Linux平台下源码安装mysql多实例数据库[root@linux-node1 ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6 ...

  8. Windows 和 Linux 平台下的端口转发工具

    原文地址: http://unmi.cc/windows-linux-port-forwarding/ 这里记录一下我曾经使用过的几个端口转发工具,即端口映射.端口重定向,和 NAT 也是差不多的概念 ...

  9. 【android开发】如何在Linux平台下安装JDK环境

    原文:http://android.eoe.cn/topic/android_sdk Linux平台JDK安装 本文主要描述如何在Linux平台下安装JDK环境.进入网页:http://www.ora ...

随机推荐

  1. JMeter学习笔记(十八)——返回的响应数据出现中文乱码_解决方案

    一.问题描述 使用jmeter过程中遇到了请求返回的响应数据出现中文乱码 二.原因分析 当没有对响应数据or响应页面设置支持解析中文的编码时,JMeter则会以默认的ISO-8859-1格式解析,而其 ...

  2. Node.js 项目中解决 SQL 注入和 XSS 攻击

    1.SQL 注入 SQL 注入,一般是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令. SQL 注入示例 在登录界面,后端会根 ...

  3. SpringBoot2.x项目初始化

    1. 项目初始化说明 使用SpringBoot生成器 修改application.properties为application.yml 启动运行SpringBoot项目 2. 初始化项目 Spring ...

  4. Android开发之常用Intent.Action【转】

    1.从google搜索内容 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putEx ...

  5. Javascript技能

    Javascript技能 说一说我对 Javascript 这门语言的一些总结(适合前端和后端研发) 基本认识 一些心得 思维脑图的链接(icloud 分享): https://www.icloud. ...

  6. QA流程

    一.测试人员的介入时间 1.当产品经理与业务人员制定需求的时候,测试人员不宜介入: 2.当下一期的需求原型出来以后,这个时候就进入了需求评审.需求分析阶段,此时,测试人员应该介入: 3.当开发人员在编 ...

  7. 账户(/etc/passwd、/etc/shadow)与组(/etc/group、/etc/gshadow)文件解析

    1. 账户信息文件 账户信息被保存在 /etc/passwd 文件中,通过命令 cat /etc/passwd 查看文件内容如下: [root@192 ~]# cat /etc/passwdroot: ...

  8. destoon系统结构大全

    自己整理的destoon系统结构目录,希望对开发者有些帮助! ( /代表的是目录  ├ 代表的是文件 ) /about关于我们页面 ├index.html关于我们 ├copyright.html版权隐 ...

  9. finall语句是在return语句执行前被执行还是执行后被执行?

    finally对try...catch的影响和执行时间 一.finally语句不被执行的两种情况 我们在学习抛出异常的时候学习到了finally语句块,这个语句块一般会被执行,但是有两种情况下不被执行 ...

  10. 35 Top Open Source Companies

    https://www.datamation.com/open-source/35-top-open-source-companies-1.html If you think of open sour ...