CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。
the quieter you become,the more you can hear
由于最近参加的比赛比较多,而最惨的就是最近参加的线下攻防赛,所以特来与大家分享一下线下攻防战的惨痛教训!
1
网络环境
不同的公司举办的比赛有不同的形式,我就从我参加过的一些比赛来说说共同点和不同点吧
主要形式就是每个人有一台攻击机,N台靶机,在整个比赛中需要一边攻击其他队伍的靶机,同时修复我方的靶机
能否连接外网是很关键的问题,如果不能连接,那么就需要你具备足够的支持储备,一般不让连接外网也不让带任何个人资料。
靶机和攻击机的网络关系可能是在同一个网段,有的是NAT转换之后映射到一个能访问的网段
2
参赛设备
如果允许使用外网,一般就是自己携带笔记本电脑
如果不允许使用外网,一般就是主办方为大家提供相同的虚拟机。
第一种可能会比较适合大家去打,毕竟是自己熟悉的环境。
第二种其实更加考验个人实力,毕竟面对的是全新的机器,没有个人的东西,这就很考验大家掌握知识和工具使用的能力,还有就是编程能力。
第二种主办方会提供Kali系统的虚拟机,一般都是通过 B/S 架构进行使用,有的厂商真的很垃圾,网络会非常非常卡!
还有就是靶机永远都是Linux系统,有的是Centos,有的是Ubuntu。
3
比赛要求
说到比赛要求,每次都很迷 ......
因为我参加的每一个厂商似乎都没有给出详细的界限,他们一般会给出一个很模糊的界限,比如: 不允许修改服务的配置文件
这就是一个很不清晰的界限:
修改用户默认密码算不算的上是修改配置文件?
还有我用nc开一个端口,之后把这个服务关掉行不行?
还有就是能不能将相关漏洞文件删除掉?
!!!!!!
因为我几次比赛都遇到了那种直接把网站给删掉了,之后厂商也没有能力检测到
!!!!!!
所以说这种比赛的要求是很迷的,如果能省事的时候尽量省事!
4
关于修复靶机
有的比赛是攻击之前有一段特定的时间来进行靶机的修复,这段时间是不允许登陆攻击机的,也就是说只能远程SSH连接到靶机上进行修复
有的比赛是上来就是同时攻防,所以抢占先机比较重要!我们这次就很尴尬,因为前30分钟我的网络不通,之后工作人员去取,取了30分钟。。。,我们其他两个队友没搞明白如何登陆,因为描述实在是不太清楚,而且把端口换了,我们都没有发现(画在界面上,也没有标明白这就是端口),后来还是在工作人员的帮助下进行的。。。
5
关于攻击
上一小节我们说到抢占先机,这个真的是太重要了,因为这种比赛都会在你的Web的CMS中使用默认弱口令,比如admin/admin,取得先机的人可以先进入其他人的后台,之后可以进行种马,持久化。没错,我们在那30分钟里就遭遇了这些,等我们进去的时候,发现我们的网站的密码都被改了,我们自己都进不去!!!害得我们最后去数据库进行了更改,这才改回来。。
上面只是小插曲,只是为了说明一下抢占先机的重要性,顺便帮自己的失败找一个小借口,接下来要说具体的攻击要怎么做了
入侵任何一台主机的方法都是一样的,就是找到所有可能接触到内部的途径
当然在比赛中当然就是从端口入手,首先就是Nmap扫描端口,不同的厂商有不同的导向,比如我们之前参加的蓝盾的比赛就是从各个端口都有可能进行攻击,后来参加的深信服的比赛就是只能从Web进行攻击
######
我们先来从各个端口来进行攻击吧
以下端口常被用来作为攻击向量
21 ftp
蓝盾的那场比赛我就用FTP的一个漏洞攻击了全场几乎所有的主机,这个端口一般设置为漏洞都是采用了之前已经确定为不安全的版本的软件,比如Proftpd v1.3.3,vsftpd v2.3.4都是存在RCE漏洞的,或者允许匿名登录,之后可以读取文件。
22 ssh
其实22端口很少设置为攻击向量,只不过大家都喜欢把它作为攻击的目标罢了,一般关于SSH的攻击也就是爆破弱口令,一般很少取得成效
23 telnet
这个端口和FTP的21基本差不多都是一些有漏洞的版本导致RCE漏洞
80 http
这个就是我们经常提起的web渗透了,一般都会放置一个比较知名的CMS,一般网上都会有现成的EXP
3306 mysql
mysql的攻击一般也就是弱口令,爆破后可能会有权限直接读取flag.txt
5901 VNC
这个端口和ftp也是类似的
对于以上的这些,msf+nmap用来作为攻击工具再适合不过了!!
########
只从web进行攻击
有些厂商是只允许从web进行攻击的,就是说多余的服务都是不开启的,对于这种攻击方式可能更加像真实的网络,毕竟现在基本上有安全意识的就是只开放80和443端口
遗憾的是这种攻击都是使用了已经被爆出漏洞的CMS的旧版本,导致直接EXP就可以拿下了,之后直接做持久化控制就好了,这样一来比赛也就没有什么意义了,因为变成了我们不是在比谁的web能力强,而是变成了谁的exp更多,谁更快,这就又说到了之前的抢占先机。
我对于这种的建议就是要么使用简单的脚本,足够比赛之中代码审计的,要么就使用一个没有被爆出漏洞的CMS,这样比赛才有意义!!
6
持久化控制
对于持久化控制,每个人都有不同的方案!
如果是各个端口攻击的,用msf就可以了
主要说一下对于只有Web的,那就是后门与后门之间做斗争了,在这个方面可是展现实力的时候!
数字越大越NB
1.在根目录下放置一个php一句话
2.在一个隐蔽的目录下放置一个php一句话
3.在在一个隐蔽的目录下放置一个php一句话,并且把文件名改为了以 . 开头的
4.使用文件包含的php木马
5.将生成的木马文件时间属性(MAC时间)修改的
6.在index.php中直接写php的恶意代码的
7.用脚本把木马写到每一个文件中的
........
(骚操作....)
n.无文件攻击(msf),迁移到默认进程中(因为靶机是不能关机的),不断反弹shell
7
骚操作
骚操作一般都是大佬选手的耍无赖行为。。。
这次比赛也是让我学到了一些骚操作,特意与大家分享
不想做任何评价