Defcon CTF交流 publish
2020-03-01 56浏览
- 1.知道Web安全论坛KCON交流 Blue-Lotus战队 Defcon 20 CTF资格赛回顾 清华大学NISL实验室, Blue-Lotus黑客竞赛战队 @清华诸葛建伟 1
- 2.Defcon CTF竞赛 o 全球最有影响力的黑客竞赛 – “黑客奥运会” n 1996年开始,已成功举办16届 n 组织者:DDTek(2009-Present) o Defcon 20 CTF n Quals – 资格赛 o Challenges Solving o 10支队 + 10支其他CTF冠军队 晋级 n Deathmatch – 拉斯维加斯 淘汰赛 n Final – 决赛 CTF (offense & defense) o Defcon黑客会议现场 2
- 3.梦想中的拉斯维加斯决赛现场 3
- 4.Defcon CTF资格赛制 o o o o o o o Grag bag (网络分析题) Urandom (随机题) Binary l33tness (二进制逆向 分析) Pwnables (渗透攻击题) Forensics (取证分析题) 100-500分 第一个解题队 开出下一题 4
- 5.Blue-Lotus(“蓝莲花”战队) o 清华大学网络与信息安全实验室(NISL@TU)参加黑 客竞赛的队名 永不凋零的 蓝莲花 o 首次参赛:2010年12月iCTF’10 n 启蒙队:disket(UGA,Prof. Kang Li) n 首次战绩: 35/72 o iCTF’11战绩:23/87 n Metasploit原创书大结局场景 5
- 6.Defcon CTF参赛征集外援帖 6
- 7.外援出现了! 7
- 8.我们的参赛队员分布 8
- 9.CTF开赛 – 6.2 8:30am [Blue-lotus] 早点&零食区 [Blue-Lotus]清华总部 [Syclover] 成都信息工程学院 9
- 10.0.01h – 旗开得分 o o o o o Grab Bag 100: Hack the planet_ 2006: Hack the ______ 2007: ____ the planet 2008: Hack ___ planet 2011: ____ ___ ______. o 2012: Hack the planet_ G100Writeup:http://netsec.ccert.edu.cn/blog/2012/06/04/69310
- 11.0.01h – 旗开得分 (Hack the planet经典台词的电影-Hacker) 11
- 12.0.5h - 梦幻开局, 200分, 并列第1 o Urandom 100: n How many developers;) did it take to secure Windows 8? o 当时解题思路 n Google Windows 8发布会视频 - 是否微软某 高管提到Win8安全开发团队人数 n 平均团队规模60-70人:人肉暴力猜解1-100未果 o 最终解决:程序暴力猜解-答案152 n Slow Down?!! o Why 152? (注意developers后面的奸笑) U100Writeup:http://netsec.ccert.edu.cn/blog/2012/06/05/71912
- 13.悲催的零分八小时 – p100 op100:MIPS指令架构远程栈溢出 n 很快fuzz出漏洞点和缓冲区长度 n 搭环境本地动态调试:Qemu + Linux-mips n 缓冲区地址(覆盖返回地址)一直变化:ASLR o 指向堆栈的寄存器?一直未找到:放弃 o 解答关键:利用binary中的write()探测出缓冲区地址 o 不足 n 对非主流平台与环境的不熟悉:学习MIPS指令、 搭环境花了很多时间 n 思维定势:jmp esp(指向栈空间)绕过ASLR P100Writeup:http://netsec.ccert.edu.cn/blog/2012/06/04/70913
- 14.悲催的零分八小时 – b100 o Binary l33tness 100: 给一个binary,recover my key n 一个加密mac.h,一个sshd,一个ssh nGoogle:skynet ssh backdoor n mac.h(后门记录日志文件)解密(xor 0xff) 这个Key曾经不是 Key?!!! B100Writeup:http://wcf1987.iteye.com/blog/155053014
- 15.悲催的零分八小时 – b100 (con’d) o 眼皮底下“视而不见”的key:谁也没有想到这就是key 这个Key据说是曾 经的Key?!!! 15
- 16.b100受骗中 insight-?/fish:发 现后门加密后的密码, key可能是解密后的 原文密码吧 ./john /root/ Desktop/ hash.txtAli:真的是破解crypt ()的明文后门密码吗? 就凭我的小Air,40小 时能破出来吗? 16
- 17.悲催的零分八小时 – f100 o 一个Linux文件系统,find the key o 落入了出题者的陷阱 n 包含软件包只有1个.c文件,十数个.x文件分析:编译执行? n 预编译头文件二进制中包含汇编源码:分析汇编? n 浪费大量劳力和时间,却毫无收获,郁闷! o Writeup n blkls -sf100:sleuthkit取证分析工具集中检查文件系统工具 n Slackspace:包含删除文件的”松散”扇区 F100Writeup:http://sysexit.wordpress.com/2012/06/03/defcon-20-ctf-prequals-2012-forensics-300-writeup/#comments 17
- 18.悲催的零分八小时 - f200 o Forensic 200: 一个相机存储卡,recover the key n n n n n WinHex恢复出7张图片文件,并修复JPG 走上歪路:Google Map找出海景照片拍摄地? 两张图片显示内容相同但二进制不同图片 对比分析,居然没想到使用隐写检测工具stegdetect 不过还需要猜测加密口令-ddtek (只有4个队解出F200) 18 F200Writeup:http://netsec.ccert.edu.cn/blog/2012/06/15/769
- 19.f200图片对比后出现的3D效果 19
- 20.开饭了!开饭了!Fish:等我搞 定b200,再…
- 21.扭转局势的突破 – b200 o 提供样本,与远程运行实例交互获得key o 分析过程 n n n nFile:FreeBSD 32-bit IDA Pro反汇编、反编译 -> 理解程序逻辑 绕过简单的权限控制 -> Nop相关代码破解 Callback()关键函数最后的代码 输入数据通过测试,则发 送Key过来,否则Sorry B200Writeup:http://netsec.ccert.edu.cn/blog/2012/06/17/77921
- 22.扭转局势的突破 – b200 o Callback( )函数中的 输入测试一 o 读入4组4字节 o 与4个整数 验证码对比 o 通过则进入 下一测试 o Easy搞定 22
- 23.扭转局势的突破 – b200 两个输入的 string要不相同 两个输入string经 过crypt()函数计算 判断两个输出 string却要相同? 23
- 24.扭转局势的突破 – b200 o crypt()函数到底是什么Hash算法呢? o 发现Rijndeal算法(AES)的S-Box n AES-based MAC?! 找哈希碰撞 n side-channel collision attack n known-message scenario n time and memory complexity 24
- 25.扭转局势的突破 – b200 o Fish的突破 n v5.key[0] = 0x14B62D86u - 原先认为是使用的密钥 n Tangle Hash Function!!! n Google “Tangle Hash collision” 25
- 26.扭转局势的突破 – b200 o 构造能够满足测试条件的输入 o 获得key: 437f085141d357c5d28850d5119aacb5 26
- 27.扭转局势的突破 – p200 o FreeBSD远程exploit o 关键漏洞函数逻辑分析 网络获取输入 流,写buffer, 明显的栈溢出 重点怀疑 对象Kelwin:10 = 0A !!! 这是个堆栈保护, 要覆盖buffer到返回 地址,必须要覆盖protection, 保持protection不变会结束循环,死结! 这在干吗? 27
- 28.扭转局势的突破 – p200 oZhugejw:不要着急,让我们画图仔细分析栈空间内存布局与 程序逻辑,可能会找出一条活路 oKelwin:我知道了!循环变量index在覆盖途中, 可以进行精细 控制跳过protection。lycan, 快来搞shellcode! … sp+228h sp+224h sp+220h sp+21Ch sp+1Ch sp Ret-add Ret-add … Ret-add protection ox02 ox02 index ox00 ox0b ox0C buffer shellcode … P200Writeup:http://netsec.ccert.edu.cn/blog/2012/06/04/69928
- 29.第一天的战绩 – 700分(3x名) 比赛中场技术统计 • • • • • • • • • • 解题:5/10 得分:700/1600 第1名:9/10 第1名:1400/1600 最高名次:并列第1 最低名次:6x+/5xx 当前名次:3x/5xx 最长板: binary 最短板: forensic 最闲组: grab bag 29
- 30.势如破竹追分日-g组显身手(g200) o 解压后是MACOS上的jpeg,缩略图中原始图片链接 o Diff发现解压图片比原图多了一段数据,DNS请求 o Scapy构造相同DNS请求包,修改源IP,发给目标 o dig -t ptr 13.12.11.10.in-addr.arpa @140.197.217.85 -b ::#31337 o DNS应答:dan.kaminsky.kung.fu. G200Writeup:http://netsec.ccert.edu.cn/blog/2012/06/05/71930
- 31.势如破竹追分日-g组显身手(g300) o 找出矩阵 规律,求出 PIN码 o 10秒限制 n This is semi-real. o 编程解决 oBalance:$92387409 825702370 12935.32 G300Writeup:http://netsec.ccert.edu.cn/blog/2012/06/09/76031
- 32.第2天15pm-首次进入首页榜单 18.Bluelotus:120032
- 33.势如破竹追分日-p组稳步前进(p300) o FreeBSD服务程序exploit – 理解程序逻辑 o 通过验证码 o 将网络输入读入 ptr[] o 函数处理ptr[] o 拿去直接运行 33
- 34.势如破竹追分日-p组稳步前进(p300) o 理解对输入ptr[]的 处理函数逻辑 n 根据4个字节组合的 INT型按大小重新排列 n 经典的快速排序实现算 法 o 编写一个”升序”的 Shellcode o 耐心、细心插花 P300Writeup:http://netsec.ccert.edu.cn/blog/2012/06/04/71534
- 35.势如破竹追分日-f组终于突破(f300) o Strings分析下载文件 n D-Link DIR-815 Firmware n 硬件Firmware分析题 o Binwalk分析 n 压缩格式为 squashfs + lzma o firmware-mod-kit分析 n ./extract-ng.sh /root/Desktop/ makeFirmware/f300 n rootfs n /home/dlink/key.txt F300Writeup:http://insight-labs.org/?p=37135
- 36.势如破竹追分期-g组再次发力(g400) oGb400:What is Jeff Moss’ checking account balance? 没有明显的SQL注入 输入单引号 36
- 37.势如破竹追分期-g组再次发力(g400) o 手注技巧 n 列出表名、列名:union select table_name,column_name,'c','d',1,'f’ from information_schema.columns n 列出所有Customer:union select email,password,username,lastname,id,firstnam e from customer o No Jeff Moss’s account??? n Jeff Moss = Dark Tangnet o 登录Dark Tangnet的账号,key = 0.00 G400Writeup:http://netsec.ccert.edu.cn/blog/2012/06/09/76237
- 38.第2天20:30pm - 拉斯维加斯诱惑 Two teamsprequalified:• European Nopslead team • leetmore 11.Bluelotus:220038
- 39.最后关头的奋力竞争 – u300 o Stanford在线算法课程的期末作业 o 服务端给出10万个uint16_t数,编程给出 10秒钟内的快速排序算法最优解,通过 网络送回解答 o 我们有NOI金牌获得者助阵 o 网速不够太坑爹:拿到Amazon云主机跑 U300Writeup:http://netsec.ccert.edu.cn/blog/2012/06/04/69039
- 40.最后关头的奋力竞争 – b300 o Pcap文件:1个简单的TCP连接,10字节数据(密文) o EXE文件 n x86 PE文件? OpenVMS/Alpha可执行文件! n 动态分析:Alpha虚拟机+OpenVMS镜像,没有License! o 静态分析:IDAPro n key为四字节Dword (四字节按一定规律与明文xor得到密文) n 还原出部分明文为“XXX7tXXXX!” o 新的提示:“What time is leet?” n [insight]LittleFather:我猜1337? 错, 我又猜l337? 又错 n 我再猜L337? 终于对了! (L337tmnow!) B300Writeup:http://insight-labs.org/?p=36840
- 41.最后关头却强弩之末 – b400 o 硬碰硬的逆向工程分析题目(FreeBSD x64) n 反调试技术的爆破 n Gdb动态调试结合IDAPro静态分析 n 程序逻辑的理解 -> 求解满足一些数学约束 集合的0-63数字序列 n 编程解出序列,发给目标服务器,得到key o Fish一人的坚守 n N个小时, N>8? n 强弩之末的Fish à B400Writeup:http://netsec.ccert.edu.cn/blog/2012/06/05/74941
- 42.p400千钧一发的时刻Kelwin:我花一通宵才搞懂了 p400,写程序构造浮点数序列 满足条件,本地exploit成功了, 为啥远程地址不对了Shellcode 被改了!只剩半个小时了怎么办?Bobo:擦!我也搞 不清楚了,我们瞎 猫抓耗子,瞎碰吧! 试试0xXXXX这个 地址Kelwin:YES! 400分进账!人 品不错!排名进 首页了! 42 P400Writeup:http://netsec.ccert.edu.cn/blog/2012/06/05/723
- 43.通往拉斯维加斯的钥匙-f400 o Windows内存镜像分析,HBGary say waht? n HBGray VS. Anonymous n strings, grep:关于PGP加密邮件破译的挑战 n 思路:找出内存中的PGP私钥,对发现的若干PGP加密邮件 进行解密,key在解密邮件中 o 纠结在如何找PGP私钥上 n Volatility内存镜像分析工具: pgp.exe /gpg-agent.exe -> 通过进程内存恢复找出内存栈中的key(Time!) n 定位了keyID:EC1B51DB, key ID与私钥的联系,没找到 oWriteup:n 找到公钥dump,公钥与私钥RSA n参数 n Photorec工具直接恢复 43
- 44.6.4 8:30am 比赛结束 比赛全场技术统计 • • • 解题:14/24 得分:3600/7000 最终名次:19/5xx • • 第1名: 4900/7000 入围分: 3900 (12) • • • 优势: binary, 1000/1500 弱势: forensic, 300/1500 一key之差: f400 19. Blue44lotus:3600
- 45.认识下入围的国际强队 Rank Team Name Country CTF Team Name Country 1 Hates Irony 美国 DC19冠军 欧洲 2 PPP CMU, 美国 European Nopslead Team 3 侍 ? sutegoma2 More Smoked Leet Chicken 俄罗斯 4 PhDays (etc) 日本 5 shellphish UCSB, 美国 NCCDC Team Hillarious UW, 美国 6 TwoSixNine ? oCTF Team Vand ? 9 our name sucks 0ldEur0pe 德国 法国 RuCTFE HitB A SiBears TSU俄罗斯 10 ACME Pharm NW, 美国 KAIST GoN 韩国 11 WOWHACKERPLUS Codegat e 韩国 HackerDom 12 Routards Nuit du Hack URFU,俄罗 斯 法国 Ebay slot CashCOW?! ? 资格赛入围 其他CTF赛冠军入围 45
- 46.感受与经验教训 o 有趣&挑战: 享受过程 o 输在缺少实践经验和交流沟通上 n 有时甚至对key视而不见,对题目描述和思路的理解 n 取证分析:缺乏实践经验和支持工具,被 f100&f200打击了信心与士气 n 没有针对解题思路的brainstorm与有效沟通 o 仍然停留在业余水平 n 首次参加defcon CTF资格赛,临时决定 n 只安排了一次集中讨论,无实践集训(以赛代练) 46
- 47.CTF竞赛与国际积分排名(ctftime.org)Bluelotus:75/1152 78.733 47
- 48.黑客CTF“大满贯”赛事 o “大满贯”赛事 n n n n n n Codegate(2月/4月):韩国主办,冠军奖金2千万 PlaidCTF(4月):美国CMU主办,冠军奖金$2K iCTF(12月):美国UCSB主办,冠军奖金$2K Hack.lu(10月):卢森堡黑客会议,德国主办 GiTS(1月):shmoocon黑客会议 … o 总决赛: Defcon CTF(6月/7月) 48
- 49.寻找志同道合竞赛伙伴 o Blue-Lotus黑客竞赛战队:永不凋零的蓝莲花 n 参加黑客CTF大满贯赛事,以赛代练 n 争取明年Defcon CTF突破性成绩 o Blue-Lotus Chaos Club n 我们欢迎各色黑友,只要你乐于接受挑战 n 急需增强力量:取证分析, Web安全, 漏洞分析与渗透攻击 o 希望明年defcon ctf能够与更多中国战队并肩作战 n 安全专业学生:学习的最好机会! n 安全公司团队:锻炼团队技术能力与配合默契的免费培训课程! n Let’s trade hintsJ, just kidding 49
- 50.CTF竞赛资源 o 链接资源集合http://t.cn/zW2mXMAo o o o o o o o Defcon 20 CTF赛题集锦:http://repo.shell-storm.org/CTF/Defcon-20-quals/Blue-Lotus团队writeup:http://hi.baidu.com/casperkid/item/3aaa7d26a08b8e4146996289其他writeup集锦 nhttp://devpsc.blogspot.jp/2012/06/defcon-20-quals-writeup-collection.html(需翻 墙) nhttp://d.hatena.ne.jp/Kango/20120604/1338815574(日本) nhttps://sites.google.com/site/ctfcentralorg/home/defcon-20-ctf-qualsCTF赛事与团队积分排行:http://ctftime.org/CTF比赛列表: nhttp://ctf.forgottensec.com/wiki/index.php?title=Main_Pagenhttp://captf.com/practice-ctf/'>http://captf.com/practice-ctf/