錯過五年,我終於踏進 OSEE 的世界

前面我想已經有許多篇 OSEE 心得了,多數內容應該就不再多做贅述,有興趣的同學可參考下列幾篇
- EXP-401 (OSEE):用五天課程訓練通透十年的知識體系
- 從 Web 狗的視角看 OSEE — 從 0.1 開始的 Advanced Windows Exploitation 考試
- EXP-401 課程 && 第二次考試心得
前言
這邊主要是以平常有在碰 Windows 的人的角度出發。老實說,大約在 5 年前就對 OSEE 這張證照略有所聞,而當時也剛好開始學一些 Windows Pwn 的相關知識,出一些 CTF 題目給大家玩玩,順便增進 Windows 知識,當時也學了一些有關 Windows Kernel 的利用技巧,不過剛開始學時也處處碰壁,花了好一段時間才慢慢學會怎麼去好好搞一個 Windows Kernel Exploit。在得知有這張證照之後,便下定決心未來某一天一定要拿到這張證照。
大約在 2019 左右,打 CTF 漸漸的提不起興趣,慢慢的開始玩玩不同的東西,在過往 CTF 題目中,Windows 一直很少出現,但在真實世界中,卻是隨處可見,於是便開始了研究 Windows 這項旅程。在剛開始接觸 Windows Pwn 及 Windows Kernel 時,多數資源都偏舊,很多在 Windows 10 上就不能運作,在這一年,我花了許多時間逆向,慢慢了解 Windows 上的漏洞該怎麼去利用,也寫了幾個教學投影片作為紀錄。而在 2020 年開始加入 DEVCORE 之後,每一年都會訂自己的年度目標,而 OSEE 跟在 Pwn2Own 中攻破 Windows 就一直在我的目標清單中。OSEE 這張證照很特別,一定得飛去現場上完課之後才能去考試,那時候上課地點也只有 Black Hat USA,然而 2020-2022 間,剛好就遇上疫情爆發,無法直接飛出國去上課,而我的目標也漸漸地從 Windows Kernel 的漏洞利用,轉往 Windows Kernel 漏洞挖掘。但在這兩年間,卻挖不太到漏洞,2022 也頂多在 DFSC 上,挖到了幾個淺而易見的洞,但接下來很長一段時間就沒有產出了。這時也開始迷惘是不是不太適合挖 Windows Kernel,因為這個原因 2023 年初時,讓我更想拿到 OSEE 這張證照,想要證明自己在 Windows 上,還是有一定的能力的,不過當年可能是疫情關係,那年沒開課。很快地就來到 2024 年,OffSec 終於來到亞洲區開課了,並且在台灣有開 OSEE 課程,大幅省下了機票費,研究組的幾位夥伴也剛好有興趣就一起報名了這門課。
上課
課程內容我就不多說了,在 EXP-401 (OSEE):用五天課程訓練通透十年的知識體系 應該都有詳細介紹每一天所上課的內容,這篇只著重在個人心得方面。
時間很快地就來到 2024 年 8 月,五天課上下來,不得不說,真的非常扎實,對於課程內容我想絕對對得起它的價錢。不論從課程的設計、題目及講師,都有非常高的品質。很後悔當初 2019 有機會去 Las Vegas 時,沒有去報名這門課,如果當初有先報這門課,我想在後面漏洞利用方面就不會卡太多時間,因為課程中提到了許許多多我當初在研究 Windows 漏洞利用時所遇到的問題。個人覺得上課好玩的地方,就是跟大家一起解 Extra Mile,就很像以前大家在寫 CTF 一樣,有一定的挑戰性,甚至有人為了 Coin 而整夜沒睡把它解完,不過我還是建議大家認真上課,可以節省很多看書的時間。
課程內容另一個重點包括了「穩定的漏洞利用」,也非常有價值,這算是以往在打 CTF 不太會注意的事情。在現實的漏洞利用上,不論是在紅隊或是 Pwn2Own 上,通常都不允許你失敗,一旦打失敗就很有可能 BSoD 或是服務中斷,而這門課也很重視這一點,算是我在這們課中所學到最多的部分。
考試
老實說,安排完考試後,其實還蠻擔心會不會考不過,如果平常都有在碰 Windows 還考不過,可能就是我的問題了。但剛好那段時間也在準備 OffensiveCon 演講,實在沒太多時間準備,多數還是靠這幾年玩下來的基礎來考試,另外這也是我第一次考 OffSec 系列的證照,難免也會各種擔心,會擔心我會不會看不懂題目要幹嘛,報告會不會寫太爛等等的。
時間很快地就來到了 2025-05-31 05:00,時間實在不是很好,腦袋還是很昏沉的狀態,光是環境設定就弄了一小時。而題目就如官方範例報告中所述,分別就是 User Land 跟 Kernel Land 的題目。由於平常都在碰 Windows Kernel,我就決定先解這題,不過因為太常碰了,一看就知道題目要做啥,雖然中間自己 Exploit 寫錯沒發現多花了一點時間,約花 3 個小時才搞定。
而另外一提 User Land 的題目則相對麻煩一點,除了要 Code Execution 還要 Sandbox Escape,也必須寫出不依賴任何版本的漏洞利用,題目敘述很清楚,而題目中也會有一些引導幫助你解題,你會很清楚的知道下一步該做甚麼,只要你一步一步慢慢來就可以完成。其實這題就很像在打 CTF 題目,這題我大概花了 16 小時左右解決後,就去睡覺了。
而隔天醒來後就開始寫報告了,這時候我並沒有立即結束考試,因為考試必須要一步一步截圖,所以我還是跟著昨天的步驟慢慢寫報告,截完所需要的圖,報告寫完後才結束考。由於前面有因為報告沒有過的先例,這份我寫的特別認真,也花了 16 小時寫這份報告,總頁數寫完大概有 256 頁吧。
考完試之後,大概一週後就順利收到通過的通知。
題外話,後來也和通過的同學們聊一下題目,發現原來我看錯題目了,其實不需要寫出不依賴任何版本的漏洞利用 ……
題目記得看清楚一點。
結語
想考五年的 OSEE 總算入手了,總算完成了一直擺在預定清單,卻一直沒有完成的項目。
這幾年很常聽到大家說 OSEE 很難、很貴,實際上來說,如果平常有在打 CTF Pwn 題或對於 Binary 有一定程度了解的人,我想應該沒甚麼問題,可以直接上課,考試稍微複習一下即可。而如果平常很少碰 Binary 或漏洞利用,建議可以先學習一下 OSED 的內容,我覺得至少要會手動疊出 ROP 會比較適合一點。不過,比起考試,這門價值多數還是在課程上,如果你想學習 Windows 漏洞利用、想知道外面 APT 組織都是如何利用這些漏洞,還有看懂他們是怎麼去利用的,我想這門課應該非常適合你。
而今年 DEVCORE 也有繼續推出 OSEE,機會難得,可以省下不少機票錢也不需要調時差,如果有興趣的同學可以好好把握機會,詳細內容可參考 https://training.devco.re/2025。