对自建靶场的一次测试
本文最后更新于:2022-11-10 11:11
前言

这个靶场环境我是照着红日靶场3的环境搭建的,我搭建这个靶场是因为有需要用到对中间 Ubuntu 的测试,所以后面的 Windows 主机,emm,就没有放进环境。也就是说这个靶场只有两台主机:
- 反向代理服务器:Centos
- web主机:Ubuntu
渗透的思路跟红日靶场3大致是一样的,我的目标是进入 Ubuntu
系统并提权,开始。
信息收集
首先进行信息收集,使用nmap对
192.168.221.133主机进行端口扫描。
1 | |

发下目标主机开放了22、80、3306这几个端口,访问80网站看一下。

可以看到是使用小皮面板搭建的网站,不过这个不是重点,通过Wappalyzer插件我们可以看到,网站使用了Joomla内容管理系统,但是该
cms 的网站访问路径咱们还不知道。
使用dirsearch对网站进行目录扫描,发现网站目录下存在drupal、Joomla等网站目录。(Joomla
是我在db/dicc.txt中自己加的,因为 dirsearch
默认字典中只有小写的joomla)
1 | |

红日靶场3 web
环境使用的是Joomla,我们也用这个,访问http://192.168.221.133/Joomla,再次使用dirsearch进行目录扫描,原靶场环境只有一个
joomla,而我在靶机中继承了好几个 cms,所以才会多出上一步扫描。
1 | |

在扫描结果中我们可以看到名为configuration.php~的文件,该文件可能为Joomla配置文件的备份,在配置文件中会有
joomla
数据库链接的用户名和密码等敏感内容。访问http://192.168.221.133/Joomla/configuration.php~:

获取 webshell
在知道数据库的用户名密码后,我们如果能登录成功,就可以尝试修改后台用户的密码,再登录后台系统查找
web 漏洞,为获取 webshell
做准备。结合我们端口扫描时发现网站对外开放的3306端口,尝试登录主机数据库。
1 | |

成功登录主机
MySQL,数据库中存在joomla数据库,通过如下命令更新 web
后台管理员密码:
1 | |

更新完成后,访问http://192.168.221.133/Joomla/administrator,使用admin/secret登录后台。登录后,选择标题栏中的Extensions->Templages->Templates,访问模板界面。在模板界面中,可以对模板中的
PHP 代码进行编辑,编辑后的文件可以在未登录的情况下访问,这就导致写入
webshell 成为可能。
选择Beez3 Details and Files,选中index.php,在代码中,写入
webshell:@eval($_POST[cmd]);。

写入后,点击左上角的Save按钮保存。之后使用蚁剑进行连接,连接路径:http://192.168.221.133/Joomla/templates/beez3/index.php

使用蚁剑的虚拟终端执行命令,发现我们的 IP
地址只有一个,而且是内网地址,说明目标使用了反向代理技术。并且我们的权限很低,为www用户。

提权
我们的目的是将 Ubuntu 进行提权,方便之后的案例测试。
在获取 webshell 之后,我们需要获取一个稳定的 shell 用于提权,而
webshell 使用的是瞬时协议,不能用于提权。而且,我们虽然获取到了
webshell,但是并不能使用反弹 shell 的方式获取一个稳定 shell,因为 Ubuntu
这台主机是不出网的,只能访问93.0/24段网络。也就是说我们不能使用反向代理,只能使用正向代理。
这里我使用的代理工具是pystinger(毒刺)。
将工具 webshell
目录中的porxy.php使用蚁剑上传到服务端中,访问该文件:http://192.168.221.133/Joomla/templates/beez3/proxy.php,如果页面显示为UTF-8,说明
PHP 文件解析正常。

之后还需要将服务端stinger_server上传到服务端中,添加执行权限后执行。


执行完成之后,将stinger_client拷贝到攻击端,在客户端中使用如下命令与服务端建立sock4代理,有以下输出表示成功。
1 | |

使用root权限,修改攻击端 kali
中的/etc/proxychains4.conf配置文件。将代理地址修改为60000。

修改完成后,使用proxychains4 nc 192.168.93.129 80进行测试,如果响应如下,说明代理正常。

socks 连接已经建立,接下来我们需要获取
shell。我们建立的是正向代理,所以只能 Ubuntu
开启监听,我们去连接它。不要在蚁剑中使用 nc,在 Ubuntu
中存在python环境,我们可以上传 py
脚本用来开启监听端口。
1 | |

使用python2版本执行,执行后,会话会处于阻塞状态,在攻击端,使用如下命令进行连接,连接成功后便可以执行命令。
1 | |

使用python3 -c 'import pty; pty.spawn("/bin/bash")'命令,获得一个略微好使一点的
shell。现在我们可以进行提权了。Ubuntu
的提权漏洞还是挺多的,我使用的是CVE-2021-3493。将提权文件通过蚁剑上传到目标机中,编译并执行。

至此我们已经提权成功了。