http://f4l13n5n0w.github.io/blog/2015/05/05/jing-yan-fen-xiang-oscp-shen-tou-ce-shi-ren-zheng/
“120天的旅程即將結束,以一場歷時24小時沒有選擇題的考試,收獲屠龍路上第一座里程碑。…” 這是我通過OSCP認證考試時,第一時間的感受。自豪和欣喜之情不亞於2008年我拿下CCIE R&S的時候。 關於 PWK (Pentesting with Kali Linux) 和OSCP (Offensive Security Certified Professional),我想很多人會覺着陌生。但說起Offensive Security,BackTrack,Kali,NetHunter和Metasploit,圈里的朋友應該就熟悉多了。
作為在老外圈子里備受推崇的滲透測試技術類認證,國外從業人員對它的介紹和評價已經足夠豐富了:
http://netsec.ws/?p=398
http://www.jasonbernier.com/oscp-review/
http://leonjza.github.io/blog/2014/11/22/trying-harder-oscp-and-me/
http://www.securitysift.com/offsec-pwb-oscp/
http://wp.sgrosshome.com/2014/07/22/offensive-security-certified-professional-my-experience-and-review/
http://www.primalsecurity.net/0x2-course-review-penetration-testing-with-kali-linux-oscp/
https://www.rcesecurity.com/2013/05/oscp-course-and-exam-review/
http://buffered.io/posts/oscp-and-me/
http://www.hackingtheperimeter.com/2014/12/introduction-id-wanted-to-take-on-oscp.html
然而,遺憾的發現,並沒有關於這個認證的中文介紹。也許是因為語言問題,也許是因為這個認證還在起步階段沒有宣傳吧。但是不同於CEH等一系列的紙上談兵,這是一個真槍實彈的學習經歷。不同於現在火熱的Web攻擊,這個認證更偏重於傳統的內網滲透技術。
關於教材
300多頁的教材涵蓋了所有從基礎知識到進階的滲透測試技巧(當然不是深入)。所以對於沒有滲透經驗的朋友(但還是需要基本計算機和網絡的知識,如果有編程基礎會更好但不是必須),這是一個很好的入門級課程。關於這個課程的具體內容可以查看這里。
關於PWK Labs
相對於其他認證課程來說,OSCP與眾不同也是最吸引人的是它設計詳實的Online Lab(包括4個子網,57台主機/服務器,每一台主機/服務器都包含Offensive Security團隊在真實工作環境中遇到的漏洞)。我的起點是VPN連接到Public Network中的一台主機,終點是滲透進入到Admin Network。 57台設備(除掉網關/防火牆)都是目標,都存在漏洞可以被攻破並獲得最高權限。所以獲取所有設備的最高權限(ROOT/SYSTEM)並讀取證明文件(proof.txt或者network-secret.txt)也就是終極目標。在實現這個終極目標中,你不僅會學習各種exploits利用,弱密碼,Web漏洞以及一系列提權技巧和漏洞利用。除了技術層面,更重要的是你能學到耐心和思路。漏洞就在那里,如果沒找到只能是因為不夠仔細和耐心,”TRY HARDER”是整個課程的標語。每攻破一個主機,都需要在后邊自主的學習,查資料,有時還需要靈光一閃的運氣。更難得的是,lab里邊50多台主機服務器不是獨立無關的。有時候你需要攻破特定主機並從中獲取相應信息才能幫助你攻破其他的主機。而整個Lab里的高潮恐怕要算是端口轉發(port forwarding)和Pivoting(實在不會翻譯,類似於利用跳板進入不可路由網絡)。
關於考試
OSCP的認證考試也是另類的存在,考生擁有24小時的時間(實際是23小時45分鍾)去完成考試,具體如何分配時間由考生自己決定。題目是5台主機(隨機抽取),目標是攻入並拿到最高權限(ROOT/SYSTEM)。戰利品有local.txt(一般權限可得)和proof.txt(最高權限可得),分別對應不同的分數。滿分100分,70分可以通過考試。24小時結束之后,你還有24小時去完成並提交考試報告(需要詳細說明攻擊步驟和里程碑截屏來證明確實攻破並獲得相應權限)。
我的經驗
首先,雖然課程本身是沒有門檻的,但是購買Lab機時還是不便宜的。對滲透了解的越少你所需要的時間就越多,所以我還是建議先對滲透測試有一定了解之后再選擇這個課程,有幾個非常好的熱身網站推薦給大家:
http://vulnhub.com/
https://www.pentesterlab.com/
下面就是我的120天學習經歷
由於不知道水深水淺,一開始買了60天的Lab時間。拿到教材和視頻之后,大概用了一周多的時間把教材和視頻過完,並完成課后練習題(這個時間取決於你的基礎有多少,每天4-6個小時學習的話應該最多不會超過3周)。
終於可以摩拳擦掌進入在線Lab了。我的起點是Public Network里的一台電腦,利用課程里學到的知識對目標網絡進行信息收集和枚舉(enumeration)。Nmap是用的最多的工具之一。目標主機/服務器有着不同的難度,所以我的策略是先從頭開始一個一個過,拿下簡單的,如果沒思路了就留下,開始下一個。過完一遍之后,再翻過頭來做更仔細的枚舉(enumeration)和上網查資料,直到發現漏洞。幾乎所有的主機都存在“已知”漏洞,所以剩下的工作就是仔細挖掘把它找出來。然而現實並不像想象的那么簡單,很多時候的感覺就是“你明明知道漏洞就在那里卻找不到”的崩潰。每一台攻破的機器都包含一個proof.txt戰利品文件用來證明該主機已經被征服,有時候還會發現network-secrets.txt文件用來在control panel里解開不同的子網(IT, DEV and Admin)。有些主機里還包含攻克其他主機的線索,所以對每台被攻破的主機都需要仔細檢查一番,搜集盡可能多的線索。
很快的60天的Lab時間就用完了,我只拿下了30幾台主機並解鎖了2個子網(IT和DEV)。我顯然還沒有准備好考試,於是又續了30天的Lab。這30天里剩下的都是一些硬骨頭了,更多的的利用Pivoting拿下IT和DEV子網里的主機,並解鎖了Admin子網。時間又一次接近尾聲,還剩下不到10台主機(其中包括“著名的”pain,sufferance和humble)。我再一次續了30天,我想拿下所有的主機。最終,除了humble和Admin子網里的Jack(獲得shell但沒能提權)沒有拿下,我攻破並提權了其他所有的50多台主機。我想,我應該去考試了。之后花了我大概一周的時間整理出Lab實驗報告,一共是369頁。
我約的考試是從周五晚上7點開始,時長23小時45分鍾。一共五台目標機器跟Lab里的一樣包含已知漏洞。總分100分,70分過。
晚上8點27分,拿下第一台主機。 10點,第二台主機。 凌晨1點27分,第三台主機也被攻破。 然后一直到凌晨5點多,再沒有建樹。困得不行的我,決定小睡三小時,鬧鈴上到早上8點半起。截止到這時候,我只有50分。 8點半起來繼續研究,終於10點52分,拿下第四台主機(我認為是最難的一台)。 這時已經拿到75分,可以過了。中午簡單的吃了些午飯,回來繼續最后一個主機。
又過了幾個小時的網上搜索,修改和測試,終於在下午2點35分的時候攻破最后一台主機。這時我拿到了100分。在反復檢查和做好所有截屏工作之后,我決定先去好好的睡一覺。24小時的考試結束后,我還有24小時的時間整理和提交考試報告。 一覺睡到晚上9點多,起來寫報告。因為只有五台主機,又有了之前Lab報告的經驗,截屏和記錄工作做的還不錯,報告花了我大概2兩個多小時就結束了。之后就是打包上傳,然后再去睡個好覺 :)
過了一天,收到了下邊的郵件,寫下了開頭的那句話。
最后,感謝IRC里的admin們和所有聊過天,幫助過我的朋友:
- goodbestguy
- haken29a
- loneferret
- bolexxx
- g0tmi1k_
- stormtide31
- Zipkoppie
- B34
最最后,發幾個對Lab和考試有幫助的總結帖子(cheat sheets):