# OSEP (Evasion Techniques and Breaching Defenses (PEN-300) 心得分享 ### 前言 2020年退伍前考了一張OSCP,想說退伍後如果要對企業的內網做檢測,自己的技能應該不夠充足, 雖然有拆惡意程式的經驗和一點紅隊演練的經歷,但還是覺得不太夠。 這張證照有趣的地方就是,教材教你的各種繞過方法,只要再加工一下,就可以繞過Windows Defender了,雖然繞過了,但是隔了一個月後,又被殺掉了 囧。 ## OSEP 簡介 OSEP 是 Offensive Security Experienced Pentration Tester 的縮寫,這門課也是 Offensive Security 今年把OSCE 拆分成3張的其中一張證照,OSWE、OSEP、OSED,而OSEP 是一張涵蓋比較常見的攻擊手法和框架的一張證照,其中也有介紹及拆解 Cobalt Strike 的 Payload 和還原,AD 物件權限提升、Office 巨集、PowerShell AMSI Bypass、C# Shellcode Loader、Process Injection、Bypassing Antivirus、Linked SQL Server Attack,等攻擊手法。 推薦有在做威脅獵捕或是想知道惡意程式怎麼使用 Windows API 和攻擊者進到内網後的手法 雖然不是所有攻擊手法,但是也算是比較有系統性的把現在已知的攻擊手法統整的一套課程,對於惡意程式這塊一直撞牆的人和防禦方有很大的幫助。 ## 報名及教材 因為LAB的關係所以價格上只有60或90天可以選擇,不過推薦90天,課程教材內容有很多需要直接實作驗證的東西。 如果之前有考過OSCP,直接延用之前的帳號。 不過價錢頗貴 QQ  ## 課程大綱 大概 700 頁 pdf 教材和19小的影片教學,跟著影片動手做,有時候自己看章節的時候反覆驗證教學影片中的內容還蠻重要的。 ### Operating System and Programming Theory 主要介紹會使用到的作業系統和程式語言及WINDOWS API 和相關註冊表,這些東西在後面章節都會使用到 ### Client Side Code Execution With Office 這章主要介紹從一般 Office Dropper 到使用 VBA invoke Windows API 塞入你的 Shellcode 執行,及C#編譯時會有暫存檔案產生到把暫存檔案消除的方法 ### Client Side Code Execution With Jscript 這章開始就會開始使用 C# 一步一步做出 Shellcode Loader VirtualAlloc、CreateThread、WaitForSingleObject,比較常見惡意程式毀使用到的 Windows API 和在 Powershell 中使用 DLL 調用編後的 Shellcode Loader ### Process Injection and Migration 這邊主要介紹為Process Injection的一些要件,及那些場合要使用那些Windows API及介紹Process Hollowing的原理。 這章的練習也不錯,複習PE結構和映射到記憶體後的狀況和如何取代VirtualAlloc和WriteProcessMemory,達到 Mapping shellcode 目的 (一查發現網路上很多 XDDD) 如果想要瞭解更詳細可以參考 [aaaddress1](https://github.com/aaaddress1/Windows-APT-Warfare) 大大的書(大推)。 ### Introduction to Antivirus Evasion 這邊講解當產生惡意程式後靜態特徵去除,用凱薩加密、XOR,和時間差上的Shell code,還有抹掉 Word 上的巨集相關資訊及使用 VBA 混淆。 但因為它的環境用小紅傘比較舊的版本,所以我在自己建立的環境下一下就被殺掉了。 ### Advanced Antivirus Evasion 這邊主要開始介紹 Antimalware Scan Interface AMSI 在微軟的防禦架構面是如何防禦,以及用 Frida 抓幾個比較關鍵的函數像是 AmsiInitialize,AmsiOpenSession、AmsiScanBuffer、AmsiScanString,等在 Powershell 中如何 hot patch 掉這些函數讓回傳的值失敗,藉此繞過檢查 如果懶得用可以參考這個網址,直接產生 bypass XDD [amsi.fail](https://amsi.fail/) 不過在行為分析上這些都被看光光了 QQ ### Application Whitelisting 從白名單繞過,繞過微軟內建的AppLocker的規則,資料夾權限檢查,Powershell 語言模式繞過,自定義 powershell Runspaces和反安裝的方式去執行惡意程式,還有釣魚郵件常見的MSHTA ### Bypassing Network Filters 這一章主要介紹一般,攻擊框架中所產生的惡意程式所用的傳輸的加密憑證,一般會直接被抓到憑證特徵,所以用自己產生的憑證就有可能繞過檢查。 ### Linux Post-Exploitation 這章主要提到的是 Linux 環境下如何用內建的方式做 Keylogger和簡單的繞過卡巴的 Linux 檢查 ### Kiosk Breakouts 如果有使用過Remote APP 的管理者或是剛好有測試過的人可以理解的章節,因為有時候可以莫名其妙叫出那台Remote APP Server 的終端或是看到其他使用者的資料 ### Windows Credentials 此篇章主要說 HIVE及Lsass 記憶體要如何取得,不過Windows 2012 以後有 Credential Guard ,即便你有Debug Privilege 也不能下載 lsass,那怎辦? 有這個 [PPLdump](https://github.com/itm4n/PPLdump) 只要你可以取得System 以下這些版本 通通可以取得 lsass 的記憶體,還不趕快 patch XDD | Windows version | Build | Edition | Arch | Admin | SYSTEM | | --- | :---: | :---: | :---: | :---: | :---: | | Windows 10 20H2 | 19042 | Pro | x64 | :heavy_check_mark: | :heavy_check_mark: | | Windows 10 20H2 | 19042 | Pro | x86 | :heavy_check_mark: | :heavy_check_mark: | | Windows 10 1909 | 18363 | Pro | x64 | :heavy_check_mark: | :heavy_check_mark: | | Windows 10 1507 | 10240 | Educational | x64 | :heavy_check_mark: | :heavy_check_mark: | | Windows 10 1507 | 10240 | Home | x64 | :heavy_check_mark: | :heavy_check_mark: | | Windows 10 1507 | 10240 | Pro | x64 | :heavy_check_mark: | :heavy_check_mark: | | Windows Server 2019 | 17763 | Standard | x64 | :heavy_check_mark: | :heavy_check_mark: | | Windows Server 2019 | 17763 | Essentials | x64 | :heavy_check_mark: | :heavy_check_mark: | | Windows 8.1 | 9600 | Pro | x64 | :warning: | :warning: | | Windows Server 2012 R2 | 9600 | Standard | x64 | :warning: | :warning: | ### Windows Lateral Movement 這章主要介紹 Windows 橫向移動中,RDP session、RDP 開 Shell、偷取RDP明文帳號密碼、Tunnel,改對方機器服務的方式帶起惡意程式。 ### Linux Lateral Movement 這章主要接介紹Linux Server 中的 枚舉 SSH 中的被密碼加密的 key file ,劫持 SSH 的 ControlMaster、Ansible Playbook 及Kerberos on Linux 問題等 ### Microsoft SQL Attacks 一般 SQL Server 的低權限使用者其實都可以使用 xp_dirtree 、xp_filexist 等相關功能, 這時候攻擊者就可以在 Linked SQL Server 上執行 NTLM relay,藉由偽冒對方的SMB,來竊取NTLM,進而達到竊取Linked SQL Server 的 SAM檔。 [ntlm-relay-backflips](https://web.archive.org/web/20201127144223/https://labs.asteriskinfosec.com.au/ntlm-relay-backflips/) ### Active Directory Exploitation 主要介紹 AD 中物件的權限,及那些權限可以被權限提升和枚舉AD中的相關物件、樹系。 通常為擁有WRITE_DAC、WRITE_OWNER、GENERIC_ALL的權限可以都是可以修改AD物件中的屬性。 這種權限常見在 Exchange Server 及Share Pointer 中 此篇章應該就是整篇的重點,其中介紹群組、使用者、電腦之間的委派的安全議題。 其中又以模擬 Share point,及 Exchange Server 中委派的安全問題 [Kerberos委派攻擊](https://www.cnblogs.com/websecyw/p/12461990.html) ### Combining the Pieces 這章主要是將前面的章節的攻擊手法串聯起來打一次 ### Challenge LAB LAB 總共有六台,和 OSCP 一樣要取得 local和proof 個人覺得一定程度上已經模擬大部分的企業環境,大部分的考試內容都是從LAB變形出來而已,並不會變化太大,但是LAB出現的安全問題,其實大部分的企業内網可能都會有,像是本地端的管理者密碼都相同,或是根本沒有變更過,導致可以用相同的NTLM去嘗試其他機器。 ## 資源 [defcon27_csharp_workshop](https://github.com/mvelazc0/defcon27_csharp_workshop) [Offensive Security Experienced Penetration Tester (OSEP) 簡介](https://hackmd.io/@0xbc000/H1OXfyGnu) ## 後記 - 遇到今年疫情爆發,剛好有三個月的練習時間,這三個月的LAB練習可以說是很扎實阿,覺得看惡意程式有稍微輕鬆一點了 XD - 考試時間48小時,在度過12小時的瘋狂提權後,終於拿到最終的Secret,由於剩下36小時,把剩餘的時間做更完整的截圖及報告的撰寫。 - 在學習的過程中,總會發現新的漏洞可以適用在考試的LAB裡面( 因為是 Windows 嘛 : )像是很夯的印表機弱點 Printnightmare,或是以 EfsRpcOpenFileRaw 攻擊為基礎,利用模擬system token 都能直接讓 Windows 淪陷。可以想像一下你的 IIS 主機服務都會有 SeImpersonatePrivilege 的權限。如果被上傳Webshell,就可以直接變 System : ) - 強烈建議可以試試 BloodHound 針對不同的網域使用者及機器做物件的收集,可以發現很多看不到的委派權限。 - 感謝 [billy](https://hackmd.io/@0xbc000) 大大對於 LAB中的問題不厭其煩地解說。 - 考完後約兩天就收到通過通知 效率變快了!  
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up