安盟学社网安挑战赛
安盟学社办的安盟那场网安挑战赛,我是学社在报名截止前四小时才决定参加的。原因很简单——赛题里有一道关于工控协议逆向的网安题,出题人是挑战我三年前在另一个比赛里认识的,他出的安盟题从来不走寻常路。 比赛在周六上午九点开始。学社签到的网安时候我扫了一眼现场,四十来个人,挑战大部分是安盟高校学生,还有几个一看就是学社企业里做安全的。有个穿格子衫的网安哥们儿带了两个键盘,一个放在桌上,挑战一个搁在腿上,安盟不知道的学社还以为他要同时操作两台机器。后来才知道,网安他腿上的那个是备用的——去年比赛他键盘进水,最后半小时全靠软键盘敲命令,拿了第四。 开赛不到十分钟,群里就有人喊“第一题是不是有坑”。题目给了一段网络流量包,要求找出被篡改的DNS响应。我打开Wireshark,过滤出DNS流量,翻了大概二十个包,发现有个响应的TTL值异常——正常都是300,它偏偏是299。这个细节太刻意了,像是故意留的标记。顺着这个包往下追,果然在后面的HTTP请求里发现了一个隐蔽的C2地址。 这种题考的不是工具用得多熟,是对协议细节的敏感度。安盟学社的题一直有这个特点:不堆砌技术栈,但每个点都卡在“你知道但容易忽略”的位置。 就是我之前提到的那道。给了一段Modbus TCP的通信数据,要求还原出攻击者写入的寄存器值。问题在于,数据包里混了大量正常轮询流量,攻击者的写操作被拆成了三个不连续的包。我一开始想用Python脚本批量解析,写了一半发现时间戳对不上——攻击者用了时间延迟来规避检测。 旁边那个带两个键盘的哥们儿这时候叹了口气,说“这出题人是不是自己做过渗透”。我心想,他可能真做过。后来交卷后跟出题人聊了两句,他说这道题的原型是某水厂真实事件,攻击者花了三周才完成那几次写操作。比赛里压缩到四十分钟,确实有点狠。 是一道Android样本分析,要求找出回传数据的加密密钥。我用了jadx反编译,翻了几个类,发现密钥是动态生成的——跟设备ID和当前时间戳有关。但设备ID被混淆了,藏在资源文件的字符串里。这种题放在最后,大概是出题人想让大家别空手而归。我用了二十分钟拿到flag,剩下十分钟检查前面的题。 交卷的时候,那个格子衫哥们儿还在敲键盘。我问他怎么样,他说“工控那道没做出来,但把DNS那道搞定了”。我说“那你比我强,我工控花了太久”。他笑了笑,说“没事,明年再来”。 安盟学社的比赛规模不大,奖金也不高,但题目质量一直在线。他们不搞花哨的靶场环境,也不堆砌零日漏洞,就是老老实实考基本功和真实场景下的判断力。这次比赛里,我印象最深的不是哪道题拿了分,而是那个带两个键盘的哥们儿——他去年因为键盘进水丢了第四,今年带了备用,结果还是没进前三。但他走的时候说“明年还来”。 这种比赛的意义大概就在这里:你知道自己差在哪,也知道下次该练什么。安盟学社没在宣传里写“以赛促学”这种话,但实际效果就是如此。第一道题就不是省油的灯
中间那道工控题,卡了整整四十分钟
最后半小时的逆向题,反而最“温柔”
赛后的一点想法
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-