b1o0p 的 def con ctf 2016 记录 - eolfree.eol.cn/edu_net/edudown/spkt/kun.pdf · •...
TRANSCRIPT
b1o0p 的 DEF CON CTF 2016 记录
刘煜堃
蓝莲花(Blue-lotus)
• 由段海新教授与诸葛建伟于2010年12月共同创建
• 寓意是寄托着追求自由、永不凋零的传统黑客与竞
技精神
• 2013年成为华人世界历史上首支成功闯入DEFCON
CTF Final的队伍
Blue-lotus + 0ops = b1o0pBlue-lotus• 清华大学 + 多高校联合
• 去年、前年参加DEF CON CTF决赛获
得第五名
• 队长kelwin
• 由百度赞助
0ops• 上海交通大学
• Codegate 2015 冠军
• 去年首次参加DEF CON CTF决赛获得
第六名
• 前队长slipper
• 由腾讯赞助
• Kelwin• libmaru• cxm• Riatre• BrieflyX• yuf4n• Maskray• lgm• Firesun• ……
• slipper• memeda• neoni• xky• xty• lmq• Hen• 小花椒• md5salt• Azure• ……
关于本届DEF CON CTF
• 人机对抗: CGC比赛冠军Mayhem与14支人类队伍同台竞技
• 采用Cyber Grand Challenge(CGC)的比赛平台
• 使用DECREE环境
DECREE环境• 修改Linux源码,采用基于x86-32的受限平台
• 把ELF文件头从 ELF 改成 CGC 创建了一种新的可执行文件格式• 不支持dynamic linking• 只支持static linking
• Magic page• 启动时内核自动在0x4347c000分配一页,填充随机值• 代替了传统Attack & Defence CTF中的flag文件。
DECREE环境
• 设置了7种系统调用,x86-32的其他系统调用均不可用:• allocate , mmap 的包装• deallocate , munmap 的包装• fdwait , select 的包装• random ,获取随机数• receive , read 的包装• terminate , exit 的包装• transmit , write 的包装
传统Attack & Defence模式简介
• 每个队伍控制一台机器机器,称为gamebox
• 在gamebox上部署着若干服务
• 每个gamebox的初始状态相同
• 攻击其他队伍获得flag得分
• 主办方定时使用checker确认服务可用性
传统Attack & Defence模式 对比 CGC比赛模式
• 每个队伍控制一台机器机器
• 在gamebox上部署着若干服务
• 攻击其他队伍获得flag得分
• 主办方定时使用checker确认服务可
用性
• 提供流量
• 由主办方提供平台接口,队伍不控制机器• 主办方提供比赛题目(Challenge Binary)• 防御:编写IDS规则/给CB打补丁(公开)• 提交Proof of vulnerability由主办方判断攻
击是否成功• 主办方每轮通过poller确认服务的可用性、
以及时间和内存的额外开销• 提供流量
传统Attack & Defence模式计分规则
• 零和游戏
• 受到攻击的队伍丢失一定分数,均分给攻击成功的
队伍
本次DEF CON CTF比赛规则• 逐轮加分
• 评分标准• 每轮某题如果上传CB或IDS,不得分;否则根据以下三个要素加分:
• Security,1或2,防御成功取2,被任意一个队伍攻击则取1• Availability,0~1,由通过poller的比例和内存时间开销计算• Evaluation,1~2,为1+可攻击队伍数/对手数
• 每道题加分为• 200∗ security∗ availability∗ evaluation
• 一轮加分为所有题目的加分之和
策略考虑
• 做好防御非常重要
• 尽可能少的上传CB
• 在被攻击之后再上传CB
• 可以参考其他队伍的CB
赛前准备
• 订套房
• 小套房+amazon折叠桌+宜家折叠椅
• 联系后勤同学
• 沃尔玛采购干粮+饮料
出发!拉斯维加斯
• 分别从北京、上海前往拉斯维加斯
• 再次巧遇TK教主
比赛前24小时
• 比赛分工
• 准备工具• Team-Interface• Pcap Search• Patch• SIG• BinDiff
网络配置
赛前聚餐
悲剧总是常常发生
• 一个同学电脑显卡损坏无法开机
• 另一个同学电脑显示屏损坏
• NewEgg购买新显示屏
• 更换时未拔电池,导致主板损坏
• Macbook AIR + 远程桌面
比赛开始!
• 只有8个badge,8个人去现场
• 9点~10点配置网络,10点~11点测试系统、熟悉系统
• API采用HTTP Basic Authentication,Mayhem也不得
不改接口
• 主办方系统直到下午3点才修复问题
题目清单CSID 时间 描述 大小
LEGIT_00008 day1~day2中午 简单栈溢出 434KB
LEGIT_00003 day1~day3中午 PowerPC模拟器 323KB
LEGIT_00007 day1~day2结束 解释器 467KB
LEGIT_00004 day2~ 菜单题 128KB
LEGIT_00006 day2~ 编译器 492KB
LEGIT_00001 day2~ 多CB通讯 ~380KB x 4
LEGIT_00009 day3~ 加混淆的菜单题 181KB
LEGIT_00002 day3~ 菜单题 391KB
LEGIT_00002
LEGIT_00002
LEGIT_00002
第一天大事记(15:00PM~20:00PM)• LEGIT_00008,程序很短
• Fuzz出了栈溢出,然而lokihardt马上First Blood
• 迅速重放
• LEGIT_00003,PowerPC模拟器
• 文件格式栈溢出,lokihardt继续First Blood
• 重放2个漏洞的POV,原创一个POV
• LEGIT_00007,解释器
• expandtab命令栈溢出,PPP First Blood
• 重放
第一天结束积分榜
第二天大事记(10:00PM~20:00PM)• LEGIT_00003打全场
• PowerPC模拟器内heap overflow,TYPE2 POV,通过寄存器泄露flag,十分隐蔽
• LEGIT_00007打全场• 漏洞1: 下标溢出,相对明显,能打的数量逐渐减少• 漏洞2: UAF,即使看到流量,难以分析漏洞点,PPP删除功能来修补,针对PPP写出POV• 第二天结束时撤下题目,当时我们能打11队(含PPP),PPP能打8队,不含b1o0p
• LEGIT_00004打全场• 多个重放• 任意写0漏洞
• LEGIT_00006• 编译器难以逆向,只会重放
• LEGIT_00001• 接近第二天结束才放出,发现/重放了一个简单栈溢出
第二天分数变化
第三天战况(10:00PM~14:00PM)• LEGIT_00003:继续打全场,2小时后题目下线
• LEGIT_00006:通宵分析无进展,但是已修补已知漏洞
• LEGIT_00001:两个POV,逐渐越打越少
• LEGIT_00009:混战,多个漏洞,各种重放
• LEGIT_00002:原创POV,打大部分队伍,打的时间不长
最终积分榜Team Final Score
PPP 113555
b1o0p 98891
DEFKOR 97468
HITCON 93539
KaisHack GoN 91331
LC↯ BC 84412
Eat Sleep Pwn Repeat 80859
binja 80812
pasten 78518
Shellphish 78044
9447 77722
Dragon Sector 75320
!SpamAndHex 73993
侍 73368
Mayhem 72047
积分曲线
赛后交流• PPP
• LEGIT_00003也写出了一个打全场的隐蔽POV• 编译CGC PYTHON解释器,写PYTHON脚本的POV• 流量自动分类• RSA后门
• DEFKOR• 单打独斗,配合问题多
• HITCON• 擅长PATCH,手工删除PPP后门
• Mayhem• 自动生成LEGIT_00004的任意写0漏洞POV
• Shellphish• LEGIT_00009通过机器解出• PATCH也有后门
闭幕式
下一届比赛
• Custom architecture
• Custom operating system
参考资料• Maskray的Bloghttps://maskray.me/blog/2016-08-26-defcon-24-ctf
• Legitimate Business Syndicate对平台的介绍https://blog.legitbs.net/2016/06/def-con-ctf-2016-is-using-cyber-grand.html
• ForAllSecure评CGChttps://blog.forallsecure.com/2016/07/26/why-cgc-matters-to-me/
• Cyber Grand Shellphish,Shellphish在DEFCON 8月7日Track 2的展示https://media.defcon.org/DEF%20CON%2024/DEF%20CON%2024%20presentations/DEFCON-24-Shellphish-Cyber%20Grand%20Shellphish-UPDATED.pdf
• HITCON的展示http://www.slideshare.net/seiyalee/hitcon-cgcautonomous-hacking-and-patching/1
• RomanGol Liarod的机器的黎明 – 第24届DEF CON CTF总决赛亚军队员访谈
• SpamAndHex的Pek Gabor写的参赛记http://blog.crysys.hu/2016/08/spamandhex-at-the-24th-defcon-ctf-finals/
• DEFKOR的Dongkwan Kim写的参赛记https://kaishackgon.blogspot.kr/2016/08/defcon.html
吃喝
不止于比赛
清华学生网络安全技术协会招新
• 每年有多次出国参加国际CTF大赛的决赛,例如美国、欧洲、韩国、日本等等,我们有赞助商提供费用支持
• 在清华FIT楼有条件优越的实验室场地
• 提供了GoogleGlass、PS4、AppleTV等众多智能设备供大家研究
• 比赛交流共同进步
怎样才能加入协会?
• 我们准备了CTF竞赛领域不同方向的7个简单且
有趣的挑战题,要求报名的同学独立完成其中的
任意2个或多个问题,鼓励尽量多地完成不同领
域的挑战题。
欢迎加入清华大学学生网络安全协会
• 招新报名群 • 协会订阅号