相信未来

你若相信,便是未来


  • Home

  • About

  • Archives

  • Search

DEF CON CTF 29 Final of Tea Deliverers

Posted on 2021-08-11 | Edited on 2021-08-13

介绍

今年 DEFCON 的决赛名额仍然维持在了 16 个,分别如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DiceGang             [via pwn2win]
HITCON ⚔️ Balsn
Katzebin [winner of DEF CON CTF 2020 as A*0*E]
mhackeroni
NorseCode
春秋GAME-Nu1L
ooorganizers
pasten [via hxp CTF]
Plaid Parliament of Pwning
PTB_WTL
r3kapig
Shellphish
StarBugs
Perfect ⚔️ Guesser [via HITCON CTF + PlaidCTF (!)]
Tea Deliverers
侍

A*0*E 变成了 Katzebin,也吸纳了新的成员的参与,赛后发现他们竟然在现场的似乎就有80人左右。

pasten 似乎每年都能从 hxp CTF(C3CTF)中获取到 DEFCON Final 的名额,但是在决赛的时候却不怎么好好打。。

国内今年又多入围了 春秋GAME-Nu1L 队伍,可见国内的队伍实力越来越雄厚。

今年 Perfect ⚔️ Guesser 非常猛,拿到了两个外卡赛的冠军。

NorseCode、ooorganizers(怀疑搞事)、StarBugs 似乎是比较陌生的队伍。此外, PwnThyBytes and WreckTheLine 还联合为了 PTB_WTL。

只是今年没有看到日本的队伍(TokyoWesterns、Binja)入围决赛。

赛前准备

考虑到今年的疫情,我们觉得今年的决赛仍然是会以远程的方式举行,所以大家很早就考虑在决赛的时候聚在一起打比赛,并提前做一些准备。今年我们还拉上了 NESE 等战队的人参与。赛前我们大概分了几个小组

  • Bin 组,主要负责二进制逆向与漏洞利用,由 kelwin、brieflyx、我来协调。主要考虑了
    • 考虑到 DEFCON Final 的题目大都是大型的逆向,所以考虑准备逆向协作分析(IDArling)工具,但是因为时间的原因咕咕咕了。
    • 为了更好地管理 Patch,我们还制定了 Patch 规范。
  • KoH 组,主要负责 KoH 题目,由 zzh、mcfx 来协调。
  • 平台支撑 & 运维 & Web 组,主要负责比赛过程中网络、平台支撑、web题目,由zTrix、youfu、wdeilim、gml来协调。主要准备了
    • Flag submit system、比赛数据可视化等一套系统

除了一些基本的准备,赛前还让大家统一使用了一下平台支持组开发的平台,以便于在比赛过程中快速实现批量攻击。

虽然和去年一样,都是远程比赛,但是今年主办方把比赛时间切换到了拉斯维加斯时区

1
2
3
4
5
Capture the Flag Hours (all times local to Las Vegas):

- Fri, Aug 6, 10am-8pm, set up begins at 9am
- Sat, Aug 7, 10am-8pm, set up begins at 9am
- Sun, Aug 8, 10am-2pm, set up begins at 9am

这意味着我们国内的比赛时间变成了

1
2
3
day1:8月7日(周六)凌晨0点到8月7日上午11点(第一个小时网络配置时间)
day2:8月8日(周日)凌晨0点到8月8日上午11点(第一个小时网络配置时间)
day3:8月9日(周一)凌晨0点到8月9日凌晨5点(第一个小时网络配置时间)

绝大部分时间都是凌晨,所以需要切换时区。此外,为了应对长时间作战的情况,我们把人大概分成了三波,在尽可能确保每个题都有人做的情况下,也确保大家的精力。

本来大家想得好好的,一起去北京打比赛。可是,疫情突如其来,打破了之前的计划,导致不得不临时再次制定计划,最后人员就位于不同区域,主要有

  • 北京(人员主要集中在北京)
  • 上海
  • 美国
  • 以及一些零零散散的地方

为了更好地远程协作,我们还开了视频会议。由于疫情原因,我没有去北京,但是为了能够集体协作,我去了上海。

Day1:08 月 07 日

比赛第一天开始时,大家基本都在线。刚开始时,主办方的网络出现了一些小故障,然后比赛稍微延迟了一下。不过这个倒是小问题,大问题是比赛一开始的时候,几乎所有的 AWD 题目都被泄漏了。当时大家人都傻了。。更为刺激的是,看到题目的时候,就更震惊了,一堆vmm的题目,一个系列,一共 5 道题。当时比赛放出的题目以及泄漏的题目一共有 8 道,要知道 DEFCON Final 一般决赛也就 10 道题左右,这一下子基本上就差不多泄漏完了。虽然第一年 ooo 办比赛的时候也泄漏过题目,但是却没有泄漏过这么多题目。不过或许这也和疫情有关吧。

从另外一个角度来看,原先想好的三波作战就稍微有点被打破了,开始摇人,基本上都投入了战斗,经过分析大概确定了 ooows 系列题目的放题顺序、cooorling、barbmetal、ooopf 等题目的大概意思。后来 ppp 告知了主办方赛题泄漏的事情,主办方说也会做一些调整,并明确说明有题目没有泄漏。虽然主办方说是这么说,但是大家仍然不敢懈怠,所以就分工开始看不同的题目。在大概分析了题目后,我们仍然尽可能维持了原先每一波的计划。

在分析了题目之后,为了协作更加方便,我们上海的几个人(youfu、gwynbleidd、shyoshyo、我)决定做 ooopf 题目,因为这个题目相对来说比较独立。在逆向分析的过程中,虽然也发现了漏洞,但是还没有逆清楚具体解析执行的过程,然额 StarBugs 就打出了一血,这时候立马开始看流量,对流量进行复现,并根据我们发现的漏洞又写出了一个 exp。此外,我们也针对相应的漏洞进行了修复。但是,最后仍然没有完全补上,仍然在被 Katzebin的独家 exp 打。。

比赛过程中,我们还发现了另外一个可能可以利用的路径,但是在比赛过程中并没有利用成功。

与此同时,KoH 小组也投入了 zero-is-you,不过最后我们并没有的太多的分数,PPP 在这道题上拿到了800+分,实在是恐怖。。

Riatre 很快发现了 barb-metal 的任意地址读,并迅速打出了一血。在修复漏洞的过程中,主办方给了 hint,然后 Riatre 立马就提交了 patch,但是发现还是能够被打。到了最后,虽然修好了,但是题目 bad 了。

第一天结束的时候,主办方召集了大家,说是发现有队伍在 patch ooopf 时提交了能通过检查,但是会 dos 服务的 patch,并希望大家能够自首。后来我们内部讨论一致觉得不是我们,毕竟我们没乱搞,而且最后结束的时候我们还在被打😭

第一天比赛结束后,我实在是顶不住了,就去休息了。。。当然还有一波新的人在 7 号早 8 点左右投入了战斗,开始搞 ooows 系列的题目。当然,这一阶段主要的题目是 p92021。

(画外音:到了酒店后,我基本上直接就倒床上睡觉了,但是没想到真的热,后来到了晚上想开灯的时候才发现没有插电、空调也没开。。然后开了空调就继续睡了,差一点就睡过了,好在晚上 11 点的时候醒来了。)

Day2:08 月 08 日

比赛第二天开始后的 captain meeting 中,主办方说防守 dos 服务是 PPP 干的,由于 PPP 最初提醒了他们泄题,所以没有过多的惩罚,只是让他们丢失了对应的防守分,但是感觉上 PPP 并不会干这样的事情,调整之后可以很明显看到他们分数变化。

主办方同时说会放出一个新的 KoH,以及ogx,broadcom。

早上一开始没多久,StarBugs 就打出了 ooows-p92021 题目的一血(不过我们有 nop free 的 patch 🦆,这简直和 2019 年的场景一毛一样,写利用真滴难,patch 几秒钟。)后来没多久,这个题目我们也可以打了。

没多久 KoH 题目 www 就被放出来了,这个题目和内网渗透测试相关,PPP 仍然是强势领先。。。他们的分数涨的简直不可思议。不过后来我们队伍也渐渐地听到了怎么玩(在视频会议中听见北京的人的大笑声 23333

我们上海这边基本都投入到了 ooows-ogx 这个题目上,但是由于我们并没有 ooows 系列题目的前期经验,仍然需要了解这个系列的题目具体是如何工作的。cxm 、youfu 分别搭建了这个题目的环境。虽然逆向分析了很久,仍然没有特别搞清楚里面的工作逻辑。在我们分析的过程中,这份宁静又被 StarBugs 打破了,这简直是不可思议。。

我们开始尝试修补漏洞,可以 patch 的 binary 本身就很小,主办方还限制了只能 patch 一个字节,所以说应该比较好 patch。虽然中间有短暂的时间只被一个队伍打,但是后来就又被多个队伍打了。最后全场没有一个队伍可以防御成功,这就离谱。到了这题目快下的时候,我们终于复现了流量。比赛结束后,大概确定这题目应该是修不好的。。

ooows-broadcooom大概在 5 点左右的时候放了,这显然就是一道作业题。

在第二天结束后,captain meeting 中,主办方公布了最后一天的题目 hyper-o 和另外一个 KoH shooow-your-shell。显然,最后一天有 3 个作业,而最后一天就只有 4 个小时,每轮 2.5 min,想想也真的是刺激。。同时,主办方也宣布了下一届要换人了(似乎带有一点点遗憾)。

有意思的是,最后的两个作业题是通过 discord 放的(说明主办方也在一直 check 会不会出现锅

然后差不多我们上海地域就差不多就又开始休息了,不过这次就没有回酒店了,而是随便找个地方躺下来休息,毕竟最后一天要冲刺。

Day3:08 月 09 日

Day2 大家大部分人都没有睡太多时间。我们上海这边的为了尽可能方便,选择投到了 shooow-your-shell 这个题目中,并这个题目不需要太多的背景知识。基本上,这个题目很快我们内部就达到了正常意义下的最优解(其它队伍制作的搞笑截图如下)。不过大家还是尽可能地找出一些其它更好的最优解。

同时,我们也考虑了一些策略(当时我们在考虑要不要稳定当老二,因为感觉老大不好当啊,后来意识到老二也不能好好当,所以就索性具体情况具体搞了)。而且,我们感觉主办方的 history 同步总有可能出锅,最后也确实好像出锅了。。

比赛过程中,我们惊讶地看到 StarBugs 用了几个字节就完成了对应的功能,当时总感觉是同步的问题,后来发现很多队伍都这么打了,觉得事情不简单,,最后发现确实可以利用几个字节再次读取内容,执行 shellcode。。。

broadcooom 和 hyper-o 的漏洞利用进展并不是很顺利,不过漏洞都找到了,patch 也都 patch 好了。其中 StarBugs 又再次打了 hyper-o 的一血,Katzebin/PPP 打了 broadcooom 的一血。

比赛结束后,我就立马坐火车回杭州了,毕竟还要继续上班。差不多开始上班的时候,获知了我们是第三名,当时觉得不可思议。感觉上我们可能会苟在第四名,毕竟 StarBugs 那么猛。。。Katzebin 再一次拿到了第一,PPP 拿到了第二。

(据说我们是在最后超过了 StarBugs 跃升为第三的。)

赛后总结

自身队伍

  • 我们的平台支撑小组非常给力,快速批量攻击提交,数据可视化等等。
  • DEFCON 考察的底层能力、逆向能力仍然欠缺,需要恶补。
  • 虽然群里大概有60人,但是真正参与比赛的也就 30 人左右,所以之后考虑拉人还是要考虑找真正会投入的。
  • 视频会议沟通感觉还行,但在具体沟通时还会存在一些问题,消息同步不到位导致做一些无用功。

其他队伍

  • PPP 和 Katzebin,人力差距悬殊。。

请自行脑补一下 80 人左右的阵容。。

  • 赛后才知道 Starbugs 其实是若干支韩国队伍组成的,怪不得这么凶猛。。
1
r00timentary got 4th place in DEF CON CTF 2021 Finals as team StarBugs (with CodeRed, GYG, SED, and a few more friends). Congratulations to the winners, and we thank @oooverflow for organizing the great CTF!

DEF CON 比赛

  • DEFCON 仍然是非常重视逆向、底层基础的比赛,和国内的风格不太一样。
  • 网友对于 DEFCON 29 CTF 的总结。
  • oooverflow 四年主办方,结束了,带着一丝伤感。Zardus 也是感慨良多。
1
2
Players, it was an honor to play with you in these four years.
We hope our successors will be as lucky.

我第一次参加的 DEFCON Final 比赛就是 OOO 举办的,也是 OOO 举办的第一届比赛,此后每一年也都参加了。虽然,比赛过程中或多或少会出现问题,整体而言,主办方还是非常 nice 的,是真心想把比赛办好的。今年的 virtualization stack 系列的题目更是如此,可能这也是他们想在结束任期内搞一点大的吧。

下一届主办方

会是谁?

DEF CON CTF 27 Final 游记

Posted on 2019-08-14 | Edited on 2021-08-11

介绍

今年再次作为 Tea Deliverers 的成员参加 DEF CON CTF 27,这次我们在 DEF CON Quals 以第 8 名的成绩较为惊险地获得了决赛名额。与去年不同的是,今年主办方没有再次提供 25 个决赛名额,而只提供了 16 个参赛名额,入围决赛的有

Team Name 决赛资格 Introduction
A*0*E DEF CON Quals 由腾讯赞助,主要包括浙大的 AAA 战队,复旦大学的 ****** 战队,上海交通大学的 0ops 战队,腾讯的 eee 战队,可谓是超级大联队。
CGC DEF CON Quals Cykor + GYG + Codered = CGC,韩国组成的一个联队。
HITCON⚔BFKinesiS DEF CON Quals & PlaidCTF 又是一个超级大联队,由 HITCON和 BFKinesiS 组成,其中 HITCON 是老牌强队,而 BFKinesiS 则是由台大 Balsn、交大 Bamboofox、中央大学DoubleSigma 以及中科院 Kerkeryuan 组成。两者在去年都入围了 DEF CON CTF Final,今年联手,感觉就是为了🏆而去的。
hxp DEF CON Quals 也是一个比较早期的 CTF 战队了,一直在举办 hxp CTF,今年将从 ESPR 处接手举办 36C3 比赛。
KaisHack GoN DEF CON Quals 不熟悉。。。
mhackeroni C3CTF 意大利超级大联队,https://twitter.com/mhackeroni
Plaid Parliament of Pwning DEF CON Quals 来自 CMU 的老牌强队,多次获得 DEF CON CTF 的冠军。
r00timentary DEF CON Quals 成员主要来自 Georgia Institute of Technology ,听说今年 jinmo、setuid 等人也在这个队伍里。
r3kapig 0CTF 近两年中国新生的战队,战队成员来自于中国很多高校、同时还有韩国队员。
saarsec RuCTFE 不熟悉。。
Samurai DEF CON Quals 可谓是史诗级老牌队伍了。。。
Sauercloud DEF CON Quals 德国超级大联队,https://twitter.com/Sauercl0ud
seoulplusbadass DEF CON Quals 韩国队伍,不熟悉。。由 Seoul Electric Decomposer(SED) 、PLUS、BoB、LeaveCat 战队组成。
Shellphish DEF CON Quals 老牌强队,团队产出了 Angr 这样的利器。
Tea Deliverers DEF CON Quals 我们战队啦~
TokyoWesterns DEF CON China 有来自于东京的一群人构成~

今年有一些比较有意思的是

  • DEFKOR00T,去年在 DEF CON CTF 中获取了今年的决赛资格,但是他们好像没有继续组联队。其中 DEFKOR 几乎完全不参加了,听说好像是 lokihardt 不打了,不太清楚具体的原因。
  • Dragon Sector 虽然在 HITCON CTF 获得了决赛资格,但是他们最终并没有参加决赛。今年 7 月份在 WCTF 上交流时,他们说其他队伍人都太多了,而他们队伍人非常少,所以不打算参加。但他们可能会去现场。比赛结束后,我好像在 PPP 组织的 party 上看到了 Dragon Sector 的成员。

赛前准备

由于 kelwin 比较忙,所以今年就让我带队过去了。由于是第一次带队过去,没什么经验,所以提前向 kelwin 和 BrielflyX 咨询了相关的建议,做了一些准备。

在去比赛前,我们简单聚了一把,有人提出了一个有意思的问题:”这次比赛是想要打前一半,还是后一半呢?”,我们都没啥答案,所以大家也都比较佛系了。不过虽然是这样,该准备的还是要准备的。主要分配了以下任务

  • 我在比赛前充分调研了已有的搭建内网的方法,尽可能确保国内和现场之间的连接不丢包、延迟较低,最后延迟稳定在 160ms 左右,基本不丢包。
  • 我让 kericwy 以及 wdeil 尝试搭建了 Flag System。
  • 我们还在比赛前仔细测试了 IDArling,确保大家能够进行逆向合作,但在比赛过程中,还是出现了一些问题,所以还是需要改进呀。与此同时,似乎大佬们都不太喜欢这样的工具。。感觉任重道远。。
  • 今年由于各种原因,能够去现场参加比赛的人相对较少,所以最后就让 kericwy 负责后勤了。

各种原因主要有

  • 有的人工作了。。
  • 由于特殊原因,今年战队很多人的签证都跪了,要么是被拒签,要么是签证时间很长。。
  • 同时又有一些人要准备出国,所以在申请一些交流、留学签,导致了护照没法取回来,所以即使之前 10 年签仍然有效,也无法参加。

由于国内有一部分人没法去,所以我们在国内也组了一个场。

在准备买酒店房间的时候,就比较尴尬

1
2
3
4
Time/place. DEF CON will be held August 8-11, 2018 in Las Vegas, Nevada, USA. 
Our game will run August 9-11. More details can be found at https://defcon.org.
Due to reasons, we currently do not know which exact hotel the CTF will be hosted in.
We will let you know as soon as possible.

主办方说由于某些原因,他们也不知道场地在哪里。。可那时候离比赛开始没多久了。。后来去了现场才知道好像是 DEF CON 忘了给 DEF CON CTF 划分场地了,这就有些尴尬了。

8 月 2 号的时候主办方,突然通知说要我们准备材料

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Hello teams!

We hope you are excited, because DEF CON is one week away! Here is some information to help you finalize your infrastructure setup. Organizational info (badge pickup, etc.) will be sent out shortly.

- The game will start at 10am on Friday morning. Eight people per team can get in to set up starting from 9am.

- If all goes well, you will have four tables, arranged in a square, with eight chairs inside them. You may not have more than eight people at the table. This is a hard limit, and if you violate it, we will disqualify you. Where the rest of your team hacks from is up to you.

- We will provide the compute to host services.

- We will run one power cable and one ethernet cable for each team. You will access the game over the ethernet cable using good old-fashioned ipv4. We plan to provide internet access over this same link, however, this depends somewhat on the hotel's cooperation, so please be prepared for the contingency where we don't have internet, have filtered internet, or the world suddenly switches to FreeBSD and ipv6.

- Please come equipped to display video over HDMI (i.e., bring a monitor with HDMI input and an HDMI cable).

See you in Vegas!
- OOO

其中,似乎第四条他们去年也说了。。然而不知道他们会咋搞。

还有很奇怪的是让我们准备一个显示器,然后本来我们就有打算要给 NUC 配个显示器,所以趁机也就买了。当时猜测是要联机打游戏,当然是瞎猜的。最后比赛的时候主办方竟然真的准备了 20 台老旧的 x box 游戏机,还有手柄,让大家联机打古老的游戏。

晚上的时候,我闲着无聊又刷了刷机票,结果发现,机票钱竟然比我当时买的还便宜!!!

8 月 7 日

最后去现场的人只有 8 个人,其中

  • 国内 6 人:iromise、zzh、M4x、Riatre、kericwy、equation314。
  • 国际 2 人:没有 Nickname 的 sdzhq、ProfFan。

其中只有我、kericwy、Riatre 之前去过 DEFCON CTF,其他人都是第一次去,所以我们这次可谓是有点惨淡了。不知道下一年会怎么样,希望下一年有所改善吧。

国内的人几乎都乘坐达美航班去的,相对来说比较顺利。

中间发生了有意思的事情是 cxm 突然收到了邮件说签证 issue 了,但是时间不太来得及,所以就没来了。

本来以为在西雅图转机的时间只有 1 小时多一点,需要进行百米冲刺,最后发现其实不需要进行冲刺。但整个过程还是比较惊心动魄的,刚下飞机的时候发现排队过海关的队伍非常长,想着这怕是凉凉了。之后工作人员引导我们去自助,速度极快,可是我和 equation314 拿到的票据竟然被打了×,心里有点虚,感觉要被海关问很久了,结果最后海关问了一些比较平常的问题就让我过去了(还让我解释 DEFCON 是啥玩意)。

而 kericwy 则由于一些特殊原因,自己单独选了航班,最后在美国的时候,到拉斯维加斯的航班取消了,错过了百度组织的晚宴,但同时开到了更好的车。

没有 Nickname 的 sdzhq 和 ProfFan 则是乘坐各自的航班来到了拉斯维加斯,相对来说本次比较顺利。

ProfFan 是 TUNA 的成员,然后还有一个国外的 TUNA 成员听说 ProfFan 来了,所以就坐飞机来面基了。我们大概在下午 2 点左右的时候差不多就集合了,然后大家一起出去吃了顿饭,就回去休息了。

然而本来我打算休息,结果回去后就开始和 TUNA 的两位成员开始倒腾一些奇奇怪怪的东西了。。

今天主办方还发了邮件通知大家要准备各种各样的系统

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Attention, Hackers!

In the future, there are no vulnerabilities in _/any/_ platform, not **just** GNU/Linux. In order to prepare yourself for a view of the future of bug-free computing, there are a few tools you'll need to bring from the past. It is _/highly/_ suggested to take all of the following with you.

Microsoft Windows + Visual Studio

- If you don’t have a proper install, https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ can probably work in a pinch
- https://visualstudio.microsoft.com/vs/community/

MacOS + XCode + iOS SDK

- If you don't have a physical Mac in your hands, don’t fret. https://github.com/foxlet may have a solution for you
- https://developer.apple.com/news/releases/

Any GNU/Linux distribution with proper toolchain + Android SDK

- https://www.debian.org/
- https://gcc.gnu.org/
- https://clang.llvm.org/
- https://developer.android.com/studio

FreeBSD (comes with toolchain)
- https://www.freebsd.org/

While we can't tell you exactly what the future will bring, and you may not need everything listed on your journey, it's better to come prepared, and you may need more of these tools than you think!

See you... in the future!
OOO

看到的时候有些惊讶,因为似乎这是第一年这么整,但是由于需要准备的东西太多了,所以大家都普遍以为大多数是幌子,但即使是这样,我们还是分别准备了这些系统。

晚上是百度的晚宴时间,我们就高高兴兴地去晚宴了,百度送了参会者一个小礼品。然后大家就坐下来准备吃了,当然也遇到了各位大佬,吃的差不多的时候,大家就开始随便交流了。最后,我们问了 slipper 关于比赛的事情,很奇怪,slipper 听问题的时候竟然捂着脸。当然,他并没有回答我们。。。

晚宴后,我们一起合了个照

(今天一整天,没有 Nickname 的 sdzhq 几乎一直在惦记着早茶。

晚宴回来后,简单安排了下明天的事情,然后就睡大觉去了。

8 月 8 日

早上起来和老司机一起去吃了 Subway 的早餐,感觉还可以,然后回去收拾收拾,去找主办方领 badge 了,今年的 badge 相比于往年的 badge 小一些,是圆形的。然后回来后大家就开始捣鼓 badge 了。下午的时候,就有人在 github 上公布了 badge 的固件。。

领完 badge 后,我们就准备去采购物资了。由于让 kericwy 租了车,所以他就开着车带着我们去了比较远的 China Town 买东西,毕竟那里的东西更加适合吃一些。。最后我们采购了一大堆东西,结果才需要 200 刀,所以非常推荐了!由于 99 超市(好像主要称呼为大华超市,不过我觉得 99 也可以)。之后我们还去了比较远的 128 超市买了热水壶。买完东西的时候差不多已经到了中午了,所以我们就顺便再旁边找了家日本拉面,感觉那是真的好吃。

买完物资回来后,没有 Nickname 的 sdzhq 总是在说我买了三大盒草莓,说这个极其难吃。他问怎么没有买可乐,但可乐只有玻璃瓶装的,所以我说我们没有买。然后没有 Nickname 的 sdzhq 一直在强调玻璃瓶的墨西哥进口可乐才好喝。这我怎么知道,下一次一定要让口味挑剔的选手自己去超市买吃的。

下午回来后,由于某些原因,套房马上不能 check in,所以我们就把吃的先搬回我的屋子里了。之后大家就各自随便去玩了。后来我和 M4x 去找 shellfish 的维护 CTF Wiki 的 mahaloz 简单交流了之后该如何把 Wiki 建设的更好。进入他们屋子后,我比较震惊,因为发现他们一堆队员都拿着电脑在搞东西,而我们战队的则不知道跑到哪里去了 0.0 。和 mahaloz 交流完后,我和 fish 又简单交流了一下,他说明天只有 Linux 服务,然后说 Monitor 是没有用的,当时我信了。后来真正开始比赛的时候,才发现自己被骗了。。

晚上到了套房后,一会老司机来了,老司机都惊了,连感冒都不顾了,马上开启了抖音开始拍小视频了。不过一会他又走了。之后我们凑在了一起简单讨论了下比赛的事情,这时候由于国内的人的时间都还合适,所以大家就一起凑在一起讨论了一下。结果发现还是有一些东西需要准备,所以又熬夜准备了准备。

8 月 9 日

到了比赛现场后,发现我们被 ppp,HITCON⚔BFKinesiS 和 r00timentary 包围。这就非常刺激了。

今年的比赛规则与去年几乎保持一致同时有 Attack & Defense 题目和 King of The Hill 题目。和去年不一样的是,今年并没有出现去年题目泄漏的情况(也可能是我们没有发现)。

我把网络搭建起来后,确保远程可以访问后,就开始做题了。国内的选手有的选择同步到拉斯维加斯时间(所以是真正的电竞选手),所以也开始做题了。

开场的时候,放了两道题

  • telooogram
  • ropship

其中 telooogram 是个 IOS 题目,表示自己并不会,所以就不看了。

1
2
3
4
5
6
7
8
9
10
11
12
13
each team is provided with an image running telooogram.
each team's username is "teamXX" (eg team04), where XX is your team id (base 10)
the voice protocol is exposed via telooogram.oooverflow.io on port 44XX, where XX is the team id
patches go through an "app-review process" and may have high latencies at times
submissions go through the normal interface.
iPhone:~ root# sw_vers
ProductName: iPhone OS
ProductVersion: 12.4
BuildVersion: 16G77
iPhone:~ root# uname -a
Darwin iPhone 18.7.0 Darwin Kernel Version 18.7.0: Fri Jun 21 22:24:15 PDT 2019; root:xnu-4903.270.47~7/RELEASE_ARM64_T8010 iPhone9,1 arm64 D10AP Darwin
just fyi it's running the armv8 slice
your two test team accounts were emailed to you in the 8th, if you don't have them, come find us....

一会 f1yyy 就看到了栈溢出什么的,然后就果断 patch 了。但是我们坑在了主办方其实昨天给我们发邮件说了该题目的账号信息,但是并有找到。所以现场还专门问主办方要了题目信息。。

1
2
3
4
5
Test team accounts for telooogram
CLOSED
Sat @ 1:46 AM
Tea Deliverers-
It is said that > your two test team accounts were emailed to you in the 8th, if you don't have them, come find us.... But we didn't receive the email.

下面基本就是 riatre、f1yyy、CC 、marche147 等人在搞了。到了下午的时候 HITCON⚔BFKinesiS 就拿到了该题目的一血。然后没多久,我们也可以打了。似乎 A*0*E 在刚写好一份 exp 的时候, telooogram 就下线了。。

但是比较坑的是,我们很早就 patch 好了这个题目,但是由于主办方 patch 出现了问题,导致一直没有部署成功。

我就加入到了搞 ropship 的队伍里,这个题目是一个比较古老的游戏,是让我们在一个随机的 binary 里构造一系列的 ROP 来攻击对手,从而得分。还没有搞一会,就出了新题 aoool。因为 ropship 已经有足够的人再搞了,所以我就跳到 aoool 了。。ropship 这题我们没有很好的思路,最后就选择了打表做了,但真正开始打的时候已经比较晚了,所以并没有得什么分。。到了比赛结束之前,ropship 也关了。

而 aoool 这题目就比较蛋疼了,c++逆向,还有语法解析,状态机等一堆东西。。

不过有意思的是,与去年不同的是,今年主办方搞了一个类似于 AFL 的炫酷界面来展示攻击的情况。我就一直在逆这道题了。

到了下午 5 点左右的时候,主办方又放了一道题目 ai-han-solo,与图像识别有关,我没有做这道题,所以不太清楚具体的情况。

晚上开会的时候,和往年一样,主办方的分数榜有问题,所以主办方晚上又继续修了。。

也就是今晚比赛结束的时候,主办方就留了两道题 aoool 和 ai-han-solo 。由于只有这两道题目,所以 kericwy 载着一部分人去了滋味成都吃饭。到的时候只剩下 4min 钟点餐时间了,所以我们迅速点了一波。🍚是真的好吃啊。

晚上的话,一部分人在搞 ai-han-solo,一部分人在搞 aoool。ai-han-solo 情况不清楚,aoool 大家逆的都挺头大的,marche147 和 brieflyx 搞出了所有 token,猜出了 server 配置文件的格式,explorer 搞出了 mode osl,wupco 搞出了正确的脚本语句,kelwin 搞出了 type confusion,f1yyyyyyy 一锤定音搞出了exp。所以最后还好,还是有 exp 了。

8 月 10 日

几天开场前,主办方叫 captain 开会,然后主办方说了分数榜的问题,不过对我们队伍没有什么影响。但是有意思的是,主办方给了我们一个 xbox!!!当时都惊了。说上面运行着一个服务,我们需要做一些操作来得分。其实这个服务就是主办方魔改后的游戏:dooom。

比赛开始的时候,很多队伍都可以打 aoool 了,然后我们发现我们的 aoool 的 exp 总是被抄作业,,所以就想了想办法来避免这种情况。后来我们还抄了一些其他人的作业。

我继续加入了 dooom 这个游戏中,由于每轮主办方都会推送固件,所以就考虑抓流量 dump 题目的 binary。

下午 1 点左右的时候 saarsec 就搞定了 dooom,可其他队伍都还在摸索过程中。我继续搞这道题,后来 Riatre dump 出了 binary,然后大家都开始分析。然而 riatre 分析地太快了,所以我就开始准备玩游戏了,手动玩了好几把,感觉非常有意思,之前还非常困,玩了一会就不困。我还手动玩到了第二名,拿到了一些分数。不过过了一会就下线了。

(抄来一张图

之后又放了新题 babi,rust 逆向; mirror-universe,与 LISP 相关。

mirror-universe 放出来没多久,PPP 就 FB 了,然后接下来就是疯狂打全场,,,一直打到比赛结束。。似乎都没有其他队伍搞出来,这也奠定了他们冠军的位置。

然后主办方又放了一个新题 bitflip-conjecture,描述如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
===============================================================================
Definition:
A snippet of assembly code is N-Flip Resistant if its output remains
constant (i.e., it produces the same output and exits with the same
return value) even if ANY combination of N bits are flipped.
One-flip Conjecture:
The x86 architecture is such that it is possible to write any arbitrary
program (of any length) in a way that is 1-flip resistant.
- Balzaroth (Vegas 2019)
===============================================================================
It is now your turn to provide a proof for this Conjecture, which has puzzled
hackers and security researchers for hundreds of years.
Provide a shellcode (max 200 bytes) that prints ‘I am Invincible!’ and
then terminates with exit code zero.
Points are assigned based on how close you are from a complete proof
(i.e., based on how many bit flip your code was able to withstand)
-------------------------------------------------------------------------------
But first, how do you want the registers initialized before executing the code?
1. I like all my registers set to zero
2. I want them pointing to the middle of a 64KB R/W region of memory)
3. Dont bother. Leave them as they are

这个题目是让我们输出一个字符串,同时我们应该尽可能确保程序在随机 flip 一个比特后,仍然能够正常工作,得分为 1000-x,x 为 flip 后,程序不能正常工作的情况数。

然后我们现场的几个人就开始搞这个题目了,不过由于手速问题,我们比赛快结束时,才刚刚排名稍微靠前,拿到了一些分数。比赛结束时,我们搞到了 992。

比赛快结束的时候,主办方公布了一道 wasm 的题目:super smash ooos,不过是 preview 的题目。

比赛结束时,又去开了会,和惯例一样,主办方的积分榜仍然出现了问题。

晚上回去的时候简单讨论了一下,然后讨论着时间就过去了很长时间,所以晚上就随便吃了点。。

晚上的话,我和 zzh、equation314 等人一直在搞 bitflip-conjecture,我们从 992 一直升到了 998,在 Riatre 的帮助下,在 3 点左右的时候升到了 999 ,然后就一直卡着,直到早上也没有搞出来。。我们以为这个 999 肯定是不行的。。

现场以及国内其他人的话在搞 mirror-universe 和 babi、super smash ooos 题目,不过直到早上也没有什么很好的进展。心情有点低落。

8 月 11 日

今天到了现场后,主办方通知说和往常一样,今天也会封榜,不会有任何的信息。封榜前的分数榜如下,我们当时排在第三名。

不过开场没多久,主办方就放了一个 web 题目:jtaste。web 大佬们开始干活了。

主办方还宣布,bitflip-conjecture 这个题目需要至少 999 分才能拿到分数,我们觉得心态有点炸,因为感觉有队伍已经 1000 分了。

同时,开场没多久,意大利队就把 wasm 搞定了,拿到了一血,一直打到了比赛结束。我们感觉有点凉,估计肯定要被他们超了。。

但是到了 11 点多的时候,我们通过暴力把 bitflip-conjecture 搞到了 1000 分!!!然后主办方宣布我们是第一个搞到 1000 分的,当时我们都异常高兴。

比赛后,我们在现场和其他队伍进行了简单的交流,然后 PPP 说他们组织了晚宴,邀请大家参加,还有 T 恤可以领。

我们进行了合照,然后由于太累了,所以就去酒店睡觉了。。。

后来,他们把我给搞醒了,说我们被邀请去参加闭幕式,然后我就瞬间起来去参加了,因为我们最后似乎真的拿到了第三名。但是没有 Nickname 的 sdzhq 说主办方在发了 twitter 之后立马就删了,不清楚是什么操作。

比赛最后的分数榜如下,HITCON⚔BFKinesiS 全场表现都非常出色,打出了很多一血,但是最后还是被 PPP 搞下去了。

我们获得了第三名。

我们终于站在了台上了。

颁奖结束后,大家一起聚餐去吃饭了。这个过程比较艰辛,我们先去了凯撒宫的自助,然后发现需要排队两个半小时,然后我们就放弃了,之后就又打车去了滋味成都,结果发现滋味成都也需要等一个小时。而这时候老司机通过麦香搞到了一个骚操作,可以直接在凯撒宫的自助地方进行插队,于是我们打车又回去了。之后就开开心心地开始吃自助了。但是自助好贵啊。

有点难受的是,自助还没有吃多久,PPP 的晚会就开始了,我们大概在 9 点半的时候,前往了 PPP 的 party。

在 PPP 的 party 上见到了很多大佬,闲聊了一会后,我去找 mahaloz 交流了交流 CTF Wiki 的事情,尝试拉了拉其他人。此外,Yan 问我有没有时间参加 12 月份左右的 CTF Workshop,我说还不太确定。之后我在闲逛的时候,突然被别人拍了肩膀,然后开始聊了,聊着聊着才知道是 Robert Xiao,有点尴尬。由于英语不够好,聊着聊着就开始用中文开始交流了。但是后来和 没有 Nickname 的 sdzhq 交流后才知道我错过了一些重要信息:比如 Robert Xiao 已经建了一个 CTF Team,以及他也打算做安全。Robert Xiao 说 PPP 都是来自于 CMU 的人员,包括毕业的和没有毕业的。他们每次比赛都会让 5-6 个新的队员上场,尽量让新队员拿到黑 badge。我和 没有 Nickname 的 sdzhq 都感叹他们非常团结,因为他们队伍里很多人都毕业了,要么当老师、要么开公司去了,但是一旦到了打比赛的时候,都会聚到一起,来打比赛。比如今年他们有很多老人都来参加比赛, 再次夺冠。最后在 PPP Party 聊到 1 点左右才回去。

8 月 12 日

大家收拾东西,然后准备回去,我们一起去 North outlets 逛了逛,我什么都没买,其他人有的人买了点东西。不过中间确实被打车坑到了,浪费了很多时间,导致不能好好逛。所以一定要提前安装好 Uber。之后我们到机场的时候时间已经比较紧张了,不过还好,最后还是赶上了飞机。我们也与 没有 Nickname 的 sdzhq 分开了,他去 USENIX Security 开会了。

总结

这次比赛的过程中,主办方比去年改进了不少,不过还是出现了一些问题

  • telooogram 的 patch 出现了一些问题。
  • 分数榜出现了一些问题(这个去年也出现了)。
  • 网络中间出现了一些小问题,不过都快速修复了。
  • 。。。

我们这边的话

  • 国内人员非常给力,但是还是有人咕咕咕了。。。
  • 现场人员真的有点少。
  • 虽然提醒大家带了外套,但现场还是很多人感冒了,影响了很大的战斗力,下一年需要改进。
  • 一定要让口味比较挑剔的选手去超市买吃的。
  • idarling 仍需改进。
  • Flag System 仍需完善。

Hello World

Posted on 2019-01-27

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

iromise

iromise

你若相信,便是未来

3 posts
1 tags
RSS
GitHub E-Mail
© 2015 – 2022 iromise
Powered by Hexo v3.8.0
|
Theme – NexT.Pisces v6.7.0