Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
snoopy-ng — Snoopy v2.0 - 模块化数字地面跟踪框架 | Kitploit
工具/GitHubGitHub/sensepost/snoopy-ng
OSINT (开源情报)数据包嗅探与分析侦察蓝牙安全网络映射数据泄露信息收集无线安全渗透测试命令与控制网络爬虫DNS 分析
443129911年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
sensepost/snoopy-ng

snoopy-ng

Snoopy v2.0 - 模块化数字地面跟踪框架

查看仓库

SensePost 呈现:

root@kitploit:~
  /$$$$$$                                                   
 /$$__  $$                                                  
| $$  \__/ /$$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$  /$$   /$$
|  $$$$$$ | $$__  $$ /$$__  $$ /$$__  $$ /$$__  $$| $$  | $$
 \____  $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  | $$
 /$$  \ $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$
|  $$$$$$/| $$  | $$|  $$$$$$/|  $$$$$$/| $$$$$$$/|  $$$$$$$
 \______/ |__/  |__/ \______/  \______/ | $$____/  \____  $$
                                        | $$       /$$  | $$
                                        | $$      |  $$$$$$/
                                        |__/       \______/
                        
                                               版本:2.0
代码:[email protected] // @glennzw
网站:www.sensepost.com // @sensepost
许可证:非商业用途

欢迎使用 Snoopy 2.0 版本!

  1. 快速设置 ============== 时间紧迫?试试这个:

安装并设置 Snoopy:

root@kitploit:~
bash install.sh

将无线、系统信息和心跳插件的数据保存在本地:

root@kitploit:~
snoopy -v -m wifi:mon=True -m sysinfo -m heartbeat -d myDrone -l London

将数据从客户端同步到服务器:

服务器:

root@kitploit:~
snoopy_auth --create myDrone     # 创建账户
snoopy -v -m server              # 启动服务器插件

客户端:

root@kitploit:~
snoopy -v -m wifi:mon=True -s http://<服务器>:9001/ -d myDrone -l London -k <密钥>
  1. 介绍与概述 ============================= Snoopy 是一个分布式传感器数据收集、拦截、分析和可视化框架。它采用模块化格式编写,允许通过 Python 插件从各种来源收集任意数据。

  2. 架构

    每个 Snoopy 实例可以同时运行多个插件。插件收集数据,主 Snoopy 进程查询这些数据并写入本地数据库。Snoopy 可以在客户端(无人机)和服务器之间同步数据,客户端(无人机)也可以从服务器拉取数据副本。每个 Snoopy 实例可以根据其在整体架构中的位置运行合适的插件。下图展示了一种可能的设置:

    root@kitploit:~
     无人机01                    服务器01
     +---------------+           +--------------+
     | 插件:         |           | 插件:       |
     |   * WiFi      |           |  *服务器     |
     |   * 蓝牙       |====3G====>|              |<=========================\
     |   * GSM       |           |              |                          ||
     |   * FitBit    |           |              |                          ||
     +---------------+           +--------------+                          ||
                                                                           ||
     无人机02                     服务器02               服务器03          ||
     +---------------+            +--------------+       +-------------+   ||
     | 插件:         |            | 插件:       |       | 插件:      |   ||
     |   * WiFi      |            |  *服务器     |       |  *服务器    |   ||
     |   * Cookie    |=====Xbee==>|  *心跳       |==3G==>|  *Wigle     |<==\
     |     窃取      |   ||       |              |       |  *数据可视化|   ||
     |   * GPS       |   ||       |              |       |             |   ||
     +---------------+   ||       +--------------+       +-------------+   ||
                         ||                                            互联网
     无人机03             ||                             笔记本01         || 
     +---------------+   ||                            +--------------+   ||                                
     | 插件:         |   ||                            | 插件:       |   ||
     |   * 热敏      |   ||                            |  *远程拉取   |   ||
     |   * 摄像头    |===/                             |              |====/
     |   * 热量      |                                 | 运行:        |
     |               |                                 |   *Maltego   |
     +---------------+                                 +--------------+
    

  1. 使用方法 ========

基本用法

要查看所有可用标志和选项,我们为您提供了两个命令:

root@kali:~# snoopy --help (简写 -h)

此命令提供所有运行选项,例如同步到哪个服务器、无人机名称和位置。此外,它还介绍了如何运行各个插件。

root@kali:~# snoopy --list (简写 -i)

此命令列出所有可用插件以及每个插件正常运行所需的参数。要获取每个插件的更详细信息,请使用 '-ii' 或 '-iii'。要获取特定插件的信息,请使用 '-i -m <插件名称>'。

可以使用 --plugin(或简写 -m)选项指定插件。可以指定多个插件,并按照输入的顺序启动。每个插件将有 60 秒时间表明其就绪状态,此后超时并启动下一个插件。如果后续插件依赖于先前插件的操作,这可能很有用。

每个插件可以接受多个参数(如 --list 输出所示),格式为逗号分隔的键值对。下面我们使用 'example' 插件,它只生成随机数。

root@kitploit:~
   snoopy --plugin example:x=1,v=True
   

如果未提供无人机/位置选项,则使用默认值。或者,可以如下指定。

root@kitploit:~
   snoopy --plugin example:x=1,v=True --drone myDrone --location Cansas

数据同步

可以通过提供 --server (-s) 选项将数据同步到远程机器。远程机器应运行服务器插件(--plugin server)。应事先为无人机名称生成密钥。下面说明了这一点。

服务器

root@kitploit:~
    root@server:~# snoopy_auth --create myDrone01 --verbose
    [+] 创建新的 Snoopy 服务器同步账户
    [+] 'myDrone01' 的密钥为 'GWWVF'
    [+] 在客户端模式下使用此值将数据同步到远程服务器。
    root@kali:~# snoopy --plugin server
    [+] Web服务器运行在 '0.0.0.0:9001'
    [+] 服务器插件捕获了 2 个表的数据。
    

客户端

root@kitploit:~
    root@client:~# snoopy --plugin example:x=1 --drone myDrone --key GWWVF --server http://<服务器_ip>:9001/ --verbose
    [+] 使用插件启动 Snoopy: example
    [+] 插件 example 创建了新的随机数: 21
    [+] Snoopy 成功同步了 2 个表中的 2 个元素。
     

远程数据拉取

可以使用 local_sync 插件从服务器拉取数据。例如,假设上述服务器正在运行,从客户端执行此操作:

root@kitploit:~
root@client:~# snoopy --plugin local_sync:server_url=http://<服务器_ip>:9001/ --drone myDrone --key GWWVF
[+] 插件 local_sync 从远程服务器拉取了 888 条记录。

数据库存储

默认行为是将所有数据存储在 SQLITE 文件 snoopy.db 中。可以使用参数 --dbms 覆盖此行为。请参阅 SQL Alchemy 文档以了解如何指定不同的数据库引擎(http://docs.sqlalchemy.org/en/rel_0_9/dialects/index.html)。例如,下面我们使用 MySQL:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=mysql://glenn:secret@localhost/snoopy_db
    [+] 仅本地捕获。保存到 'mysql://glenn:secret@localhost/snoopy_db'   

在较小设备上使用 SQLITE 存储,而让服务器插件保存到 MySQL(或类似数据库)可能很有用。另一个有用的示例是指定文件位置来存储数据,例如在可移动介质上:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=sqlite:////media/USB01/snoopy.db
    

有一个 --flush (-f) 选项,用于在数据与上游服务器同步后从本地存储中“刷新”数据。

在启动时启动服务

可以使用 upstart 脚本启动 Snoopy(参见 ./setup/upstarts 文件夹)。同一目录中提供了其他示例 upstart 脚本——例如,一个用于从 3G 调制解调器启动 PPP 连接,另一个用于创建 SSH 远程命令通道。

基于 Debian 的系统(例如 Kali)似乎不支持 upstart。在此期间,可以使用提供的 rc.local 文件在启动时启动 Snoopy 和相关服务。


  1. 数据可视化 =====================

Maltego 是执行可视化的首选工具。说明如下:

  1. 打开 Maltego
  2. 选择“导入配置”
  3. 从 transforms 文件夹中选择 'snoopy_entities.mtz'

这将导入实体和变换。要开始使用,请从调色板菜单的 Snoopy 选项卡中拖动“行动基地”实体到空白图形上。例如,对该实体执行以下操作:

  1. 右键单击,选择“变换”,选择“获取无人机”
  2. 在所需的无人机上,右键单击,选择“获取位置”
  3. 在所需的位置上,右键单击,选择“获取客户端”
  4. 在所需的客户端上,右键单击,选择“获取观察结果”

存在用于获取域名和 Cookie(来自被动监控)、查找 SSID 街道地址的变换,并且几个变换是双向的(例如,可以从位置查找客户端,或从客户端查找位置)。最好实际操作体验。

数据库规范

如果不使用默认的 sqlite 格式,请编辑以下文件以指定数据位置:

root@kitploit:~
    snoopy_ng/transforms/db_path.conf
    

图形共享

多个分析师可以同时共享 Snoopy 图形,方法是使用 Maltego 的协作功能。选择“协作”,然后选择“共享当前图形”。


  1. 商业用途 =================== Snoopy 的许可证禁止从其使用中获取经济利益(或其他利益)(请参阅 LICENSE.txt)。我们为商业用途提供了单独的许可证,其中包括额外功能,例如:

    • 通过 XBee 同步数据
    • 高级插件
    • 额外/自定义变换
    • Web 界面
    • 预构建无人机

如果您想与我们合作,请联系我们([email protected] / [email protected])。


  1. 附录 =========== 编写插件

请参阅 plugins/example.py 文件以了解如何编写插件。放置在 plugins 文件夹中的任何文件都将被视为插件,并应具有以下属性:

  1. 提供插件信息和可选参数定义。
  2. 提供要收集数据的 SQL 表架构定义。
  3. 在查询时以上述格式返回数据。

除此之外,插件可以执行任何您希望的操作。

硬件

Snoopy 可以在任何 Linux 设备上运行,只要该设备能够从 install.sh 文件中安装文件。即 Python 和相关软件包。硬件支持会根据所需插件而有所不同,但对于最常见的收集 WiFi 数据并通过 3G 上传的场景,建议使用以下设备:

  • BeagleBone Black
  • 带电源的 USB 集线器(使用 Y 型分线器以节省两个插头)
  • Alfa AWUS036h WiFi 适配器
  • Huawei E160 调制解调器
  • BlueNext BN903S GPS
  • 至少 2A 电源适配器(根据外设不同会有所变化)

操作系统

已测试 Kali 1.05 和 Ubuntu 12.04。类似系统应该可以工作。

额外说明:

  • 您可以同时运行任意数量的插件。插件按命令行上提供的顺序顺序启动。
  • 下一个插件仅在前一个插件指示其就绪(超时 60 秒)后才会开始初始化。如果后续插件依赖于先前的插件,这很有用。
  • 如果不指定无人机或位置,将提供默认值。
  • 您可以不带任何插件运行 Snoopy,以便仅同步数据。

已知问题

在本地收集数据、同步到远程服务器然后从服务器拉取副本时会发生错误。例如:

服务器

root@kitploit:~
    root@kali:~# snoopy -m server -m wigle:username=u,password=p,[email protected]
    [+] Web服务器运行在 '0.0.0.0:9001'
    [+] 服务器插件捕获了 2 个表的数据。

     

客户端

root@kitploit:~
	root@client:~# snoopy -m wifi -m local_sync:server_url=http://1.1.1.1:9001/ -d myDrone -l London -k secretkey -s http://1.1.1.1:9001/
下载工具

在上图中,三架无人机正在运行并将数据同步到两台独立的服务器。一个通过 3G 同步,另外两个通过 Xbee 同步。第二台服务器将其数据同步到第三台服务器。最后,一个客户端(笔记本)从第一台和第三台服务器拉取所有数据,并运行 Maltego 探索数据。

  • 设置与安装

    在 snoopy-ng.git 目录下运行 'sh install.sh' 将安装所有必需的软件包。它会提供从源代码安装 aircrack 的选项,这对于没有该软件包的发行版是必需的(aircrack 套件用于无线插件)。我们强烈推荐使用 Maltego 进行数据探索,可以从 Paterva 网站 http://paterva.com 免费下载社区版(有一些限制)。