以往參加的的 CTF 類型都是 Jeopardy,屬於解題式,碰巧在寫學校的爬蟲,翻翻學校的網頁意外發現 IRCON Summer Camp 2018,最後一天有 King of The Hill 的 CTF,想說機會難得,但又找不到隊友…,只好持著當砲灰的心態一人參戰。
什麼是 CTF
CTF 大概分成三種模式
- Attack Defense
參賽者各自都需要維護一台主機,,主機上會有各種服務,要盡可能防止其他隊伍攻擊,不讓服務中斷,在維護自己主機的同時,也可以攻擊其他對手的主機來獲取分數。 - Jeopardy (解謎式)
目前比較常見的比賽形式,通常會有以下幾種題目分類。
Web 網頁
Forensic 鑑識
Crypto 密碼學
Pwn/Exploit
Reverse 逆向
MISC 不歸屬在以上幾類 - King of Hill
會有幾台主機在線上,奪下主機控制權,換上自己的Flag。
IRCON King of The Hill
對於今天的活動,是既陌生又期待,一個人扛著兩台筆破筆電,兩台筆電都活在這個世上差不多有8-9年了,其中一台 Ram 才 2G,且原生還是搭載 Windows XP,兩台唯一的共通點都是低階筆電,系統還是在競賽前幾天才灌上 Windows10 / Kali。
比賽開始之後,透過 Windows 10 打開 Ubuntu Shell 才發現已經掛了不知道多久,沒有 Ubuntu 的 Shell
現在全指望另一台筆電上的 Kali,然而裝 Kali 那一台規格更老舊,跑什麼都慢…。
起手式
首先就是整個題目網段全部用 nmap 掃一次,接著看主機上開了那些 Port 再用瀏覽器看有開 80 Port 的頁面提供什麼資訊,或是查看有哪些可能可以利用的 Port 作嘗試。
b374k
這是讓我破蛋的一提 b374k 的 WebShell,題目一開上去就是目錄檢視,然後發現一個 b374k 的 PHP,連上之後發現要密碼,簡單的亂猜之後得知密碼是 123456,就不小心拿到 Shell 破蛋,一口氣也拿了同類型的題目五題還六題,然後有一台被搶走…
當我換上 Flag 之後,手忙腳亂的,做出了三種結果。
- 直接刪除 b374k 後門
- 後門丟著沒處理
- 後門放著,並修改後門的密碼。
然後哪一台做了哪些事情完全不知道。
RDR
透過瀏覽器直接連上就看見 rdp:user/123456
由於失去 Ubuntu Shell 的 Windows 10 終於又有戰鬥能力了,立馬透過遠端桌面連過去,但還遇到了權限的問題,於是參考 DuckLL 網紅型駭客大大的文章得知要用 CVE-2016-0051 來提權。
由於發現了 DuckLL 大大的文章…
發現題目大部分好像都差不多,就開始順風了!! (疑?)
提權之後,真正的問題來了,在 Linux 環境下有 vi、nano 等編輯工具,windows 下該怎麼編輯啊!!!還好最後還是成功換上自己的 Flag,並且修改了主機上的密碼,RDP 因為手速太慢,就只拿下了這一台,期間 Flag 還被換掉一次,雖然不知道是不是還有其他洞被打,但還是透過 RDP 在連回來換上自己的 Flag 直到比賽結束。
SMB MS17-010
其實這一題也是參考 DuckLL 大大的文章,用了 Metasploit 拿下,最後卡在不知道怎麼關 SMB 關掉,主機紛紛被搶回去,僥倖的是有一台他們自己反鎖了,查到的指令都是透過 PowerShell,但在 Metasploit 得到 Shell 的狀態下 PowerShell 就掛了。
最後關閉 Service 的方法是在賽後找到的,但不確定是否可以成功。
https://support.microsoft.com/en-us/help/2696547/how-to-detect-enable-and-disable-smbv1-smbv2-and-smbv3-in-windows-and
Vul Mail
這一題還是參考 DuckLL 的文章使用 CVE-2016-10033 來攻擊,但問題在成功把網頁拿掉,卻不知道怎麼變成自己的 Flag,完全不知道漏洞是什麼實作的,時間有限的情況下,看Source Code也不是、不看也不是,完全不知道自己在幹嘛,總之這一種題型被我打著打著就被打壞了,不知道有沒有成功換上自己的 Flag 的隊伍。
WordPress
其中一題是頁面一連上,就出現很帥的 CLI 的指令畫面,但應該是寫好的 Script 在跑,就在比賽快結束的時候,無聊改一下 URL 才發現是 WordPress,版本也不是最新的,不過也接近比賽尾聲,就沒有多嘗試些什麼,結論是猜測,不知道是否為 WordPress 的題型。
心得總結
上午場穩穩拿了第二名,到了下午結束直接變成倒數第二名,整個競賽過程都著重於攻擊,置換上自己的 Flag 之後就不知道該幹嘛了,連 Port、 Firewall 怎麼透過指令去操作都不知道,有幾題明知道可能是弱密碼,卻沒有現成的腳本來爆破,甚至連字典檔都不知道要去哪裡生,此外對提權也是懵懵懂懂。
除了腦不給力之外,下次參加這種比賽可能要先準備一台比較可以的筆記型電腦了,競賽過程中跑個 OpenVAS 就完全死機,還要拔電池重開機,囧爆了,由於 OpenVAS 不能跑,大部分都是單純看 Nmap 掃到的 Port 去找對應的漏洞,有些題目甚至完全沒有想法。
主機的狀態監控也很重要,從頭到尾根本不知道搶了幾台主機,又有幾台被搶走,拿下之後就放生了,雖然主辦單位有提供記分板畫面,但他不會寫佔領的是哪一台,只有貼心彈幕,工作人員就像賽評一樣,透過彈幕還製造滿多笑點,今後如有還有要打這種比賽可能要先寫一隻 Monitor 來監看 Flag 了。
沒有任何 King of The Hill CTF 的經驗
對於結果也很滿意了
雖然其他組可能也一樣QQ
第二名,至少曾經有擁有過,就像是首殺 FLAG{Hello World} 一樣QQ
阿不對首殺 Hello World 會第一名…
總之感謝主辦單位舉辦 King of The Hill 類型的 CTF。