一、扫描存活主机
使用arp-scan -l扫描靶机IP
二、端口扫描
使用nmap对端口扫描,开启了22和80端口
-sS -A对端口进行详细扫描
三、目录爆破
扫描出有phpmyadmin目录,判断为mysql数据库,除此之外没有其他信息,访问80端口
四、SQL注入
访问80端口后如下界面,点击两处会跳转至另一页面,大意为需要找到root下的key.txt
测试页面功能点,看到有?p=9像有注入,测试后发现并没有
另一个功能点,看到?cat=1,也是测试注入看看,输入单引号报错存在注入
存在5个显示位
确定显示位回显值为几时,发现没有回显。是因为SQL语句中存在limit 1,只显示前面查出的值。只需要把“cat=1”改为不存在的值,前面查不出来就会查询后面的。把“cat=1”改为“cat=-1“会查询出其他页面,改为”cat=99“即可查出显示位为第2位。
后面直接上sqlmap跑,使用的数据库为wordpress
存在的9个表
wp_users表中存在的22个列
User_login中的用户名数据
User_pass中的密码,经过sqlmap自带字典解密出了5个,还有一个没解出来,用md5查出来密码为PUPPIES
五、getshell(三种方法)
虽然找到了账户信息但是没找到后台,看着页面想的时候发现了url的不同http://192.168.96.131/Hackademic_RTB1/,开始是直接扫了IP,现在多了一个目录/Hackademic_RTB1/,那么直接扫该目录
找到了管理后台wp-admin,使用GeorgeMiller/q1w2e3登录成功
在网上搜索wordpress后台getshell方法,经测试有以下方法:
(一)在源文件添加一句话木马并保存
这样虽然修改成功,但不知道hello.php的路径在哪,从头再看看,发现扫描出的目录没仔细看,只看了一个后台登录界面。存在两个目录遍历。
/wp-includes/目录遍历没有有效信息
/wp-content/下级目录/plugins/中存在目录遍历,并且存在所有文件。既然如此就知道hello.php的路径了
使用蚁剑连接成功
(二)修改源文件反弹shell
先在本地查找shell:locate php-reverse-shell.php,复制到桌面并修改要反弹的IP
把代码复制到hello.php中并更新文件,虽然显示文件无法修改实际上还是修改成功
本地开启监听1111端口
访问hello.php,因前面存在目录遍历可以直接访问,这时成功反弹shell回来
(三)上传脚本文件反弹shell
在options-Miscellaneous处,勾选允许上传文件,以及添加php后缀,点击更新选项
这时选项栏中会多出upload功能,可以上传一句话也可以上传反弹shell脚本
本地开启监听2234端口
访问脚本文件
反弹shell成功
六、提权(两种方法)
查看当前用户是低权限用户,而key在root目录下,需要提权
(一)脏牛提权
信息收集下,内核版本为2.6.31,并且有gcc环境,先用脏牛提权试试
通过wget下载脏牛脚本到靶机并编译后运行
脚本执行成功,这里切换用户需要交互式shell,使用python获得交互式shell后切换到脏牛用户,提权成功
(二)内核提权
通过内核版本2.6.31,在exploitdb查找对应脚本并下载
通过wget下载到靶机,编译后运行:gcc 15285.c -o 15285
运行完毕后提权为root用户
七、获得key
在root目录下找到key