热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一个虚拟机里承载了7年间所有DefConCTF的比赛试题

DefCon世界黑客大会,又名电脑黑客秘密派对,诞生于1992年,于每年7月在美国的拉斯维加斯举行。参会者除了来自世界各地的黑客,还有全球各大网络安全公司的代表以及美国国防部、联邦调查局、国家安全局等

t012f647c7138cde7a7.jpg

DefCon世界黑客大会,又名电脑黑客秘密派对,诞生于1992年,于每年7月在美国的拉斯维加斯举行。参会者除了来自世界各地的黑客,还有全球各大网络安全公司的代表以及美国国防部、联邦调查局、国家安全局等政府机构的官员。而DefCon CTF夺旗赛是DefCon世界黑客大会的总决赛,它也代表着目前世界上最顶尖的网络安全技术水准。

在过去6年间,我一直在收集、汇总有关DefCon CTF的比赛题目及相关信息,并想通过一种合理的方式将它们展示出来,为的是给今后想要参加DefCon世界黑客大会的选手提供一些有价值的参考信息,帮助他们能够更好地融入这个比赛。

借着DARPA(美国国防部高级研究计划局)的网络挑战大赛落幕,以及第24届DefCon CTF夺旗赛进行之际,我将向读者介绍我所有掌握的信息。由于最近我比较繁忙,总结出来的信息不是太完整,但这并不影响读者阅读,其中还是有很多有价值的信息的。

最新版本的虚拟机(V0.1.0)的下载链接为:https://drive.google.com/file/d/0B_Jd5opFbnddOG1HekdZUTNENnM/view?usp=sharing

此版本是于2016年8月8日推出的,相关文本的修正情况请查阅:https://www.reddit.com/r/netsec/comments/4wprce/7_years_of_defcon_ctf_finals_challenges_in_one_vm/d68xmjg

什么是DefCon CTF?

DefCon CTF是DefCon世界黑客大会的总决赛,是一项持续时间较长的黑客夺旗赛。它代表着世界上最顶尖的黑客技术水准,有着“黑客奥林匹克运动会”的美誉。首届DefCon CTF夺旗赛起源于1996年的第四届DefCon世界黑客大会。2002年,在第十届DefCon世界黑客大会上,一些黑客对CTF的竞赛模式进行了修改,便形成了今天的我们所看到的CTF。而在2005年的第十三届DefCon世界黑客大会上,由于Kenshoto公司将目光重新聚焦到游戏上,并提出了要加强二进制软件及其补丁的研发力度的要求,大会再一次对CTF的竞赛模式进行了细化。

相关的竞赛流程和规则每年都会有所不同,但总的可以归结为以下几点:

1.  参加CTF夺旗赛的队伍数量为8—20支。其中,每个队伍都会获得由主办方提供的专用局域网。网络端口的分配以及相关参数的设置由赛事主办方完成;

2.  网络以及邮件服务器也是由主办方创建,同时,在比赛开始之前,他们会对相关网络功能进行调试,保证参赛选手能够正常使用;

3.  参赛队伍之间可进行攻防模式的角逐,即:参赛队伍在网络空间中互相进行攻击和防守,挖掘网络服务漏洞,并攻击对手服务来得分,修补自身服务漏洞进行防御,以避免丢分,也被称为夺旗模式。

4.  因为在比赛中所使用到的通常是二进制编译文件,这也就意味着,在攻防过程中,这些二进制文件可以被编辑为十六进制文件;

5.  CTF中所说的“旗子”,实际上就是一些带有字符标记的文本(例如:0e63d4223b01d9aba596259dc155a174),类似的文本其实代表了一些敏感数据(例如:队伍的专有信息以及成员的个人资料等);

比赛结束时,每支队伍的最终得分将会以“uptime * value of flags”的形式给出。在某些年里,队伍所取得的“旗子(flag)”的分值都相同,而在有些年份中,对于一些修补难度较大的漏洞,当有队伍拿到该漏洞所代表的“旗子(flag)”时,获得的分数会更高。而“uptime”指的是分给每支队伍的网络服务的可用时间占比(系统能够自动判断队伍的使用时间,同时采用轮换的方式使用。在每个事件间隔内,每支队伍都可使用不同的网络服务。)

在CTF领域,我们将这种CTF比赛模式称为“全方位模式”或“攻防交替模式”,意为:每支队伍都必须进行攻击和防御。这种比赛模式不同以往广受欢迎的“Jeopardy-Style”(解题模式)。解题模式是晋级DefCon CTF夺旗赛之前的资格赛。随着比赛模式的不断改进,现在,DefCon CTF夺旗赛已经被称为世界范围内水平最高、难度最大、观赏性最高的黑客竞技大赛了。

文件存储的位置:

接下来,我将会为读者介绍我所收集到的虚拟机工具及CTF试题:

1. 基于FreeBSD 开源操作系统的虚拟机的下载地址为:https://drive.google.com/file/d/0B_Jd5opFbnddOG1HekdZUTNENnM/view?usp=sharing

在该虚拟机中,包含了历年CTF夺旗赛中的一些竞赛题,感兴趣的读者可以去挑战下。(初始的用户名为:root;密码为:defcon)

2.   在GitHub社区上,有一个介绍CTF比赛的详细知识库。里面包含所有历年CTF的竞赛题、虚拟机配置文件、以及一些说明文档。

这其中有些题目不是太完整。由于缺少必要的安装包、说明文档等,有些项目无法正常运行(我还在继续寻找相关的源文件)。有些注意事项在文档中没有记录(例如:如何建立自己的FreeBSD虚拟机),但其中大部分的项目都还是可以正常运行的。

我曾经完整地观看了第十三届(2005年举办)和第二十届(2012年举办)DefCon世界黑客大会的所有比赛。比赛的数据是用Kenshoto和DDTEK来存储的。比赛的现任主办方,Legitimate Business Syndicate公司值得人们称道的一点是:在每年的CTF比赛结束之后,它都会在GitHub社区上报道有关CTF的情况,包括比赛项目、团队情况以及比赛花絮等等。 有了Legitimate Business Syndicate公司的帮助,我就可以省去很多搜索的时间。在这里,我要对Legitimate Business Syndicate公司表示感谢。

值得注意的是,从第十四届DefCon世界黑客大会(2006年举办)开始,我们就没再看到由Kenshoto公司推出的竞赛游戏了。这是因为它们在Solaris操作系统中运行,相较于FreeBSD系统来说,它的兼容性要差一些。如果一些黑客想要重新尝试基于Solaris操作系统的竞赛项目,那么可以参考我所发布的,与这些项目相关的二进制文件。如果有人成功地做到了,请及时与我联系,我将会在此网页上加上你的操作链接。

我是如何使用这些文件的?

在建立虚拟机的过程中,你必须要确保与CTF相关的功能与网络服务能够实现。为了能够实现与服务器进行交互,你需要建立一个与该服务器端口相连的套接字连接。如果你使用的是Unix或Linux系统,那么可通过一个叫netcat的网络命令来完成上述步骤。(可编译为:nc:xxx.xxx.xxx.xxx yyyy,X表示你的IP地址,Y表示网络端口号码)。如果你使用的是Python或Ruby语言,那么可通过编译如下的一个脚本来实现该功能:

http://p1.qhimg.com/t012731b66af081f996.png

http://p9.qhimg.com/t01c8fc667e29f7f3b1.png

当然,上述步骤只能帮助你建立与服务器的连接。这个竞赛项目要求你要在每个网络服务中,都能找到漏洞,并对其进行修复。为了达到这一目的,你需要重新编译原先的可执行文件。

能够满足逆向工程行业标准的工具是IDA Pro(交互式反汇编器专业版)。同时,你可以使用Hooper和最近发布的Binary Ninja来代替。如果你不想进行付费使用,那么可以选择使用Binary Ninja prototype。因为该软件是开源软件。Radare是另一款可供用户选择使用的开源软件。如果离开了objdump来讨论反汇编器的实用性,这其实是没有任何意义的。因为在你的Linux工具库中,很容易就能获得该工具。

为了能够让很多新手很好地掌握如何寻找、修复漏洞、修改错误代码,我发布了一篇博文,在其中详细介绍了相关的情况。

我是如何报告bug情况或请求帮助的?

请将你所遇到的bug,发布在GitHub社区的虚拟机教程板块中,我会给予回复。我不能保证及时地进行回复,但我会尽力去做。一旦成功地修复了漏洞,我会在第一时间发布出来,并对之前版本的内容进行更新。

原先的虚拟机版本有什么改动吗?

现在还没有。不过我会尝试着去做一些改动,并会及时发布这些改动。

相关视频链接:https://youtu.be/C8hD8b1SERw



推荐阅读
  • 开发笔记:Python之父重回决策层
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之父重回决策层相关的知识,希望对你有一定的参考价值。在GuidovanRossum(吉多· ... [详细]
  • kafkamanager(cmak)安装及使用
    1.软件下载kafka-manager工具目前改名为cmak,下载地址为:https:github.comyahooCMAKreleasestag3.0.0.5现在 ... [详细]
  • SSL协议、TLS协议,使用哪一种更安全?
    在金融银行业,保护机密信息的安全至关重要。由于财务记录完全通过在线数据库维护,因此实施保护客户、银行和金融机构免受黑客攻击的安全功能比以往任何时候都更加重要。安全套接字层(SSL) ... [详细]
  • 参加我们的第七届年度调查。有些来了又去了,但是今天有数百种Linux发行版运行良好。发行版,程序包管理器和桌面的结合为Linux用户创建了无数的定制环境。尽管存在一些共性,但我们也 ... [详细]
  • Java的核心库提供了大量的现成的类供我们使用。本节我们介绍几个常用的工具类。Math顾名思义,Math类就是用来进行数学计算的,它提供了大量的静态 ... [详细]
  • WebBrowser控件(1)
    WindowsPhone7内置了一个强大的网络浏览器,该浏览器的内核是基于桌面版的InternetExplorer7(Mango版基于InternetE ... [详细]
  • 以下内容|尾部_quarkus实战之一:准备工作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了quarkus实战之一:准备工作相关的知识,希望对你有一定的参考价值。欢迎访问我的GitHub ... [详细]
  • 本文分析和介绍了GLo ... [详细]
  • python基础(二、pycharm安装、卸载)
    3.在Ubuntu中安装PyCharmPyCharm的官方网站地址是:https:www.jetbrains.compycharm注意:安装时不要使用root用户安装,否则后期使用 ... [详细]
  • 编程语言是从哪蹦出来的——大型伦理寻根现场
    Hello,我是Alex007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫Alex的人太多了,再加上每天007的生活,Alex007就诞生了。聊一聊编程到底是啥,怎 ... [详细]
  • centosFedoraRHEL•整改方法:•验证检查:1、查看etclogin.defs,访谈询问当前所设置的密码长度及更换周期 ... [详细]
  • [软件工具]最新最好最全的软件大全一起打包下载了[永远留种]
    软件下载列表:  安全防毒/QQ病毒专杀工具XPQQKav2006新春版.exe805.14KB  安全防毒/SymantecAntiVirus10. ... [详细]
  • Shiro 简单了解
    Shiro简单了解简单用过SpringSecurity安全框架后,再试试另一个安全框架——Shiro。1.Shiro简介ApacheShiro是一个强大且易用的Java安全框架:S ... [详细]
  • The“travellingsalesmanproblem”asksthefollowingquestion:“Givenalistofcitiesandthedistancesb ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
author-avatar
北京馨香海棠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有