CTF 參加初體驗
CTF 參加初體驗 承蒙朋友邀請,我人生首度參加資訊安全競賽——政府舉辦的資安金盾獎,本來就預期會很難,但沒想到會這麼難,深深感受到有一個世界等著去探索。 在報名時有個小插曲,本人就讀五專,現在是高一的年紀,然而我的學校在報名網被歸類在大專組,這樣我就無法和其他高中的友人 TNPLR 一同參加。為此我寫信去跟主辦單位反應,主班單位就添加了五專部的選項,實在令人感動,可見主辦單位的誠意。 初賽 設備 初賽的設備我覺得挺神奇的,首先不能帶自己的電腦、儲存裝置,手機不能用,主辦單位提供的是一台 Windows 電腦,並且要「連到虛擬機」作答,然而虛擬機還是 Windows,我不懂為何不用實體機就好了? 作答過程不能連上外網,也就是說沒辦法查資料,我本來就夠弱了,沒辦法搜尋就更弱了。只能用 Windows 電腦也是個很大的障礙,工具很不足,Base64 這種基本工具都沒有… 沒網路又不能用線上工具。我在此建議大會,既然使用了虛擬機,就提供 Linux 這個選項,不然對於長年不使用專有作業系統的人來說實在不友善。 題目 雖然只是初賽,但每題都很難,我們在 Crypto、Web 和 Misc 都稍有斬獲,但最終都沒有解出來,全部輸掉。但很神奇的是,在兩週之後,我們竟然收到了決賽通知書,還是從 98 中剩餘的 15 隊。我們推測之後認為應該是題目有錯,導致當天顯示錯誤,但其實有答對,否則不可能隨便挑 15 隊進入決賽。 無論真相為何,既然進入了決賽,就要好好比。 決賽 決賽場地位於張榮發基金會,決賽比五個小時,國高中組有十題題目,題目分數為 100 三題、200 四題、300 三題。試題範圍跟初賽一樣,但沒有特別標注哪題是哪種類型,以下將根據我的觀察進行分類。 設備 決賽使用個人的電腦,並且可以上外網,這樣真的好很多,不需要用彆扭的 Windows,我也先裝好資安方面的 Linux 虛擬機——Kali,但還沒熟悉其中的工具,所以其實沒有很大的幫助。 雖然可以上外網,但比賽禁止與「外部通訊」,意思是不能和隊員以外的人類溝通,我覺得這個用字要再精確一點,因為瀏覽網頁其實也是一種「與外部通訊」,避免造成選手誤會。 既然是比資安比賽,當然就要破解漏洞,在比賽後我想到了一種安全的通訊方式。假設有兩個隊伍 A 和 B,A 事先在賽前跟 B 約好一個通訊埠和一組帳密,比賽開始後,A 在他的電腦架設一個 SSH Server,並使用事前約定好的埠口,然後 B 就用 nmap 掃描區網所有電腦,掃到事前約定好的埠口就代表該主機是 A 隊,然後就可以用約定好的帳密登入進去了。 這個作法有多種安全性,首先,這個過程完全就是操作終端機,看起來跟平常解 CTF 並無二異。第二,因為使用 SSH,所以通訊過程是加密的,主辦單位也不知道。那有了這個通訊方法後,就可以透過把 flag 留在伺服器中的某個檔案的方式來交換答案。 但有個大漏洞是:主辦單位可以發現兩個不同隊伍的 IP 有通訊的行為,雖然不知道通訊內容為何,但還是有可能會因此被舉發,所以好孩子還是不要嘗試喔! TNPLR 他的筆電是學校發的,規定上不能自己改系統,而且是 Microsoft Surface Go,為此他另外帶了一直以來當 NAT 使用的 10 年古董筆電,在賽前晚上灌了 Fedora Server,我也灌了一支 Kali Live USB 給他的 Surface Go 使用,事後證實這支 USB 幫了很大的忙。...