終於到了鐵人賽最後一天 XD 自從 angelboy 跟 Orange 的文章之後,瀏覽數開始多了起來,害我也不隨便亂寫了 QQ 我很遵從「今日事、今日畢」的原則,所以每天鐵人賽的主題都是當天才想的 (逃),但今天是從開賽就確定有要寫了 XD
就在上星期的周末,10/12~10/14 ,今年的 HITCON CTF 剛剛結束 (Day12 介紹過 HITCON CTF,大家可以溫故知新),今天就來詳述一下這場賽事經過
首先要先抱怨,辦一場 CTF 真的是很累、又沒有利益的事 QQ 所以大家每年都會猶豫到底要不要繼續辦 T__T 今年也是猶豫一陣之後,最後大約在 8 月左右確認今年會繼續辦,而且還要重啟 HITCON CTF final,大家就開始分工籌畫各自的工作,以下是辦 CTF 會遇到的一些問題:
Orange
在百忙之中抽空擔任,在一面準備 BlackHat + DEF CON + DEVCORE CONF 還要出題的情況,不愧是我們的隊長 (worship)往年我們都可以準備接近 40 道題,但今年一直到九月底,總共也才登記了 22 道題,其中真正出好了題目還不到一半 = =,也難怪 PM 在 channel 中一直提醒大家 HITCON 快到了,題目要趕快出 ... 我也很擔心今年會不會就這樣砸了招牌 QQ
一直到比賽前兩個星期,不得不說大家臨時抱佛腳的能力還是很強的 ,感謝學生時期的訓練 XD 題目開始陸續就定位,但我們的註冊網站還沒好...XD 原因是我們的 fullstack engineer (你猜得沒錯,就是 Lays) 剛好到日本玩樂去了,只能利用晚上回飯店的時間趕工網頁 XD 更尷尬的是 ctftime 上放的註冊時間不知為何放了一個超早的時間,只好趕快修正成預定的一個星期前,希望沒有引起誤會 QQ
到比賽前幾天 angelboy 終於搞定這次的 Windows Kernel 題 Breath of Shadow,但解題環境異常麻煩 XD 討論後決定讓參賽隊伍寄信過來後,再手動幫隊伍啟用解題環境,為此 Lays 還幫網站加了一個 team token 的新功能,在前一天大家才把整個流程順一遍,可惜最後只有一隊成功用上 XD 而 Orange 出完了三道題之後覺得自己的 web 題出得太少,後來一直出題到接近開題時間的早上十點,終於生出了第四題 Virtual Public Network,算是對自己今年的 Pwnie Award 致敬 XDD
BTW,由於這次我們 Misc 數量偏少,jeffxx 的 EV3 還一度難產 QQ 在前一個星期我把原本打算出的困難 heap 題改成研究有沒有好玩的 Misc 題,最後雖然有想到梗,但一直到比賽開始才成功做出 POC...QQ,在考慮到缺乏驗證的情況下可能會有 unintended solution 拖垮整題品質,就決定還是不放出來了,希望之後有機會可以讓大家玩玩 QQ
以下節錄今年大家的出題狀況:
10/12 早上 10:00 比賽終於開始,大部分的隊伍很快就從 vim 的密室逃脫 - Welcome 之中成功解放 XD,首殺由 TokyoWesterns
獲得,而其他一開始放出的題目有:
Lost Modulus Again 是除了 Welcome 以外最早被解出的題目,由越南隊伍 pwnphofun
解出,這是一道相對其他 crypto 簡單的 RSA 題 (但我還是不會做)
接著 Virtual Public Network 很快就由 Balsn
解出,接下來解出的也是台灣隊伍 10sec
,想必大家都學習過 Orange
的分享 XD 不過其他國際隊伍也陸續跟上,這道題算是對參賽隊伍比較友善的新手題
Balsn
可以參考 Day19 的介紹EmojiVM 系列題 也是大家的喜聞樂見的題目,PPP
很快就拿下 reverse 部分的 firstblood,Tea Deliverers
也解出來 misc 的 firstblood,不過 pwn 的部分相對困難,一直到下午才由 PPP
拿下首殺
PPP
可以參考 Day14 的介紹,目前 ctftime 第三名的隊伍Tea Deliverers
有在 Day21 提到,是 blue-lotus
的繼承者 (?),目前 ctftime 上排名第六跟著被解出的題目是 PoE I - Luna,由美國隊伍 RPISEC
解出,Bounty Pl33z 緊接在後由 justCatTheFish
解出,接下來就到了第二波放題時間 XD:
Lost Key Again 再次由 Balsn
獲得首殺,接著也解決掉 EV3 Player,這兩題都只花了一個多小時就解掉,最後 LazyHouse 在將近 6 hr 之後也被解出,達成了第二波題目的首殺小滿貫 (?),充分展現 ctftime 上排名第一的實力
在這之間 Tea Deliverers
首殺了上一波的 Suicune,不算出人意料,因為他們有連續兩年 FlareOn 挑戰最快通關的成員 Riatre
(雖然不知道是不是他做的 XD)
Lays
今年第 12 個通關,退步四名 (逃)接下來發生了一個插曲,HITCON CTF 的網站慘遭 DoS 攻擊.....= =,兇手根據 IP 來源推測是在 2017 年因為 share flag 被我們 disqualified 的摩洛哥隊伍,導致放題時間延後半小時 = = 這波放出的題目是:
這波題目最早被做出的是 Revenge of Welcome,由台灣隊伍 FLAGiarism
解出,這題也是要離開 vim,但 vim 被限制在只能編輯的模式,很像平常工作會不小心按到什麼而無法退出的感覺......XD
約兩小時後被 ToykoWesterns
解出,這是 angelboy
前一個晚上靈光一閃出的題目 XD,不得不說這題的確設計得很有趣,在簡單的 pwn 之後限制只能執行 system(hex_string)
要如何 shell out ? 大家可以思考看看 XD
ToykoWesterns
可以參考 Day22 的介紹,目前 ctftime 第四名的隊伍Very Simple Haskell 沒多久也被 Tea Deliverers
解出,這題也是相對簡單的 crypto 題,但要讀得懂 Haskell 會造成一些麻煩 XD
接著是本次最好玩 (?) 的逆向樂高題 EV3 Arm,這題由韓國隊舞 KaisHackGoN
奪得首殺,這題要從封包裡擷取出 firmware 之後分析樂高做了什麼事情,大家一定要看一下隨題目附上的 影片,此外他們也拿到了 Crypto in the Shell 的首殺
這波的 web 題 Luatic 和 GoGo PowerSQL 都是被俄羅斯的老牌戰隊 Bushwhackers
解出,這幾年他們打得特別兇,目前今年在 ctftime 上佔據第十名
接著由我設計的 Netatalk 也被 r00timentary
拿下首殺,這題是 CVE-2018-1160 的 1day 利用,會在今天的例題詳細說明,Netatalk 在他們解出之後,隔了十幾小時才有第二隊解掉 QQ
r00timentary
在 Day15 有提到過,他們和 DEFKOR
聯隊成 DEFKOR00T
於 2018 年拿下 DEF CON CTF 冠軍,在 2019 年的 DEF CON CTF 也獲得第 8 名的成績在下一波放題前最後被解出的題目是 not so hard RSA,由 LC↯BC
解出,這題應該是本次第二難的 crypto 題目,最後只有 6 隊成功解出
LC↯BC
解出對大家來說絲毫不意外,因為他們隊伍中有可能是目前 CTF 圈最強的 crypto 之王 hellman
,之前就在念密碼學博士班,不知道畢業了沒... XD (疑似在多年前也是 ACM 選手)經過比賽時間 24 hr 之後,放出本次 CTF 最後一波題目:
來自波蘭的 Dragon Sector
很快就解掉了 heXDump,他們到目前為止已經進入前 20 名,慢慢追上了前面領先的隊伍
Dragon Sector
有不少成員已經在資安公司上班,發表許多令人佩服的研究,是 2014 和 2018 的 ctftime 年度冠軍,今年排名第二,是 Balsn 是否能奪下年度冠軍的頭號敵人 XD接著從開場就放到現在的 dadadb 終於被 Shellphish
給解掉,BTW,這題是 angelboy
在今年 WCTF 2019 時解他們成員出的 Windows 題無功而返,進而做出報復社會的舉動
Shellphish
在 Day15 有稍微提到,用自己開發的 AEG angr
在 CGC 得到不錯的成績幾乎跟 dadadb 同一時間,Balsn
也拿到了 One Punch Man 的首殺,這邊發生了小插曲是我沒有在 description 上附上 flag 的位置,但其他道題目有放,這樣著實造成了大家解題的一些困惑 QQ 之後會注意這個問題
r00timentary
和 nbz
接著分別拿到 Core Dump 和 的 firstblood,後者的解題隊伍只有 3 隊,是今年 HITCON 最難的 crypto 題 XD
10sec
首殺了 Buggy .Net 反超 BalsiFox
,就此成為台灣隊伍的第一名 (Balsn
算國際隊伍 XDD) ,之後又解了 穩定自己的定位到結束
至此為止魔王題剩下從一開始就放出的 PoE 系列題 和 Breath of Shadow,因此我們陸續放出了第一次 hint ... 但顯然是沒什麼效果 XD 就當大家以為為了 Breath of Shadow 做的前置作業 (team token, request wesite, setup script) 都白費之時,LC↯BC
firstblood 了 Breath of Shadow,讓 angelboy
感激到痛哭流涕 (X)
angelboy
發現自己的封包是錄 service port,但因為這題是 local privilege escape,參賽者會用別的方式把檔案抓進 VM,所以錄 service port 一點幫助都沒有 XDD,後來大家開始研究要怎麼把 exploit 安全的從 Windows VM 裡尻出來......LC↯BC
真的是 CTF 搞事王,太多黑歷史......XD最後的八小時就沒有人再解出新題目,PoE II - Cord 和 PoE III - TPU 成功做為大魔王守擂到最後 XDD
但真正刺激時候才開始......XD 接下來這八小時之間每過幾分鐘就有隊伍解出題目,導致排名撲朔迷離,沒有到結束之前都不知道到底哪些隊伍能進前十名得到決賽資格,而一直處於領先地位的 Balsn
也開始岌岌可危,KaisHackGoN
、r00timentary
、ToykoWesterns
、PPP
等隊伍都幾乎一度要超車,以為 Balsn 就要幫助台灣守住冠軍時,中國隊伍 A*0*E
在最後四小時左右一口氣解出 Netatlak, dadadb 兩道難題,最後再解掉 LazyHouse 成功反超拿下最後冠軍......
A*0*E
是從 XCTF 聯賽培育出的大聯隊,分別由 0ops
、AAA
、eee
、******
等隊伍成員集結而成,0ops
有在 Day21 提到過而除了冠軍爭奪戰以外,決賽門票也是異常精彩,基本上最後八小時後五名可以說是大洗牌......,原本一度要超越 Balsn
的 r00timentary
竟然掉出了前十名,率先解出 dadadb 的 Shellphish
也因為該題經過動態分數下降的原因,也掉到了淘汰區邊緣
這是 !SpamAndHex
的成員在約結束前半小時的 tweet:
但後來 RPISEC
送了一題 One Punch Man 把第十名的 Shellphish
給擠了下去,可是才沒高興多久,Dragon Sector
又在最後十分鐘時解出 GoGo PowerSQL,將原本第 10 名的 RPISEC
給踢出了決賽名單外,最後成功拿到決賽門票......XD
10:00:02 itszn curse you dragon sector
10:00:11 Redford itszn: sorry :D
10:00:22 Redford but that's valis fault!
Shellphish
在最後十五分鐘時申請了 Breath of Shadow 題目的嘗試,可惜最後 exploit 似乎並沒有拿到 flag,如果拿到又會再次回到十名內把 r3kapig
給擠出去......XD這 48 小時的激鬥可以到 HITCON CTF 的網站看分數趨勢 XD
從前面提到的三個難題,應該大家可以理解辦 HITCON CTF 其實對大部分的成員來說沒有任何的實質利益,之所以還願意繼續辦,只是因為大家真的是喜歡 CTF,沒有在工作後忘記初衷,同時也不希望 HITCON CTF 這些年建立的品牌就這樣消失在歷史洪流 QQ 但大家也真的快撐不下去了 T___T
標題「在相同規則下磨練自己的能力,絞盡腦汁比拚成果,從中獲得的經驗才是最寶貴的」,一直以來都有聲音質疑打 CTF 只是遊戲,並不代表反映在資安上的真正的成就,我同意一半,CTF 的確大部分只是出題者設計過的情境,真實世界的 exploit 並不一定這麼剛好能 leak data 之類的,但在學習 CTF 的路上,其實就像做數學練習題一樣,可以熟悉加減乘除乃至三角函數,而能不能真正應用在現實上,就是八仙過海、各顯神通了
話說回來,雖然 CTF 現在入門有點痛苦,但是希望大家也不要輕易放棄,從中真的可以學到不少東西 :D 最後歡迎對 CTF 有熱情,而且覺得自己已經學習了一定程度,只是找不到隊友的人可以找我們問問,說不定有機會成為隊友 (?)
今天是要老王賣瓜介紹自己出的題目 Netatalk XD
其實不是第一年在 HITCON CTF 出題,由於有正職在身,沒有時間從頭設計題目,因此都會盡量從跟工作有關聯的方向設計題目,今年這題其實也是在去年工作時處理 Insident Response 時遇到的 case,但經過深入研究後,發現了這個 CVE 有原揭露者沒想到的 exploit 方式,是我到現在出題為止最滿意的一題,從迴響上來看也是最好的一題 XD
內容請直接參考我的 blog,這篇文章已經突破 9000 字了,這邊再放出題的心路歷程大家也看不下去吧...XD
完結灑花(?
特地為了訂閱這系列註冊帳號的路過
覺得這個系列超有趣的 不考慮明年再寫一波嗎(X
感謝支持 XD
明年沒有題材好寫啦 QQ
BTW,文章有稍微更新後半段的內容,記得回來再看一次
恭喜~身為 Orange 高中學弟,曾經被說過不錯喔密碼很複雜喔QQ雖然一直沒有正經地入門但一直覺得資安很有趣,而且又被你寫得更有趣!
感謝不嫌棄 QQ
後面瀏覽數開始多的時候比較有認真寫,不然前面就只是當自己的讀書筆記...XD
BTW,文章有稍微更新後半段的內容,記得回來再看一次
參賽立馬變成砲灰orz
可是看到排行榜覺得莫名熱血,可以跟世界上的好手們競爭的感覺!
很喜歡看戰報,也希望下次比賽能解出一題
拍拍,剛開始都這樣子 QQ
我一開始也都解不出來,大約是打到第三場 CTF 才第一次解出題目
最近剛進入資安職場的萌新
onboard之後,發現前輩們都on-site了..
資料翻過一次又一次
很無聊來網路上翻翻文章
結果看到了作者大大系列的文章
結果默默地看完了 (不小心當成小說在看XD
第一次看完完整系列~~
所以辦了個帳號...
就為了留下足跡XD
以此證明一個被放生的菜鳥在還沒進入戰場前的悠閒