从最开始学这个专业开始已经过了有两年了,虽然技术不咋的,但是对这个专业还是有点自己的想法。
现在呢,为了帮学校出去比赛啥的,还是写点教程,一方面是帮后面的学弟们快速入门,另一方面是记录下自己所学的一些知识,所以这些东西也是基于信息安全的比赛写的。
行了,不说多了,直接开始。
根据比赛赛题的相关内容和自己学习时走的弯路,果然还是要优先说明一下要学哪些东西,这些东西先后顺序的话是由浅入深,至于自己的学习进度就自己安排。
第一部分:入门级
一:系统
1.windows
windows这玩意说实话大家都会用,现在基本都是用win10,可能有的还在用win7,中间夹着的win8估计没啥人用。。。不过这不是重点,那么明明大家都会用的系统为啥要在这里提到,原因嘛,,,比赛需要。。。(感觉说了一堆废话)
平时大家用的都是一些windows的基本操作,甚至可能很多东西都是用鼠标完成(没错,就是传说中的“增删改查”),比赛时远程终端用的比较多,而终端的系统版本和包含的内部环境是不会在发布赛题这段时间之前公布的,鉴于这种不确定性,考虑使用纯命令界面是最安全的,这就要熟练的使用命令提示符。
当然,虽然命令提示符基本可以解决一切问题,但是系统版本是一个很重要的事,就目前来看,比赛时可能会出现的系统主要是老系统,比如2003server这种。。。(好吧其实我也想吐槽,都快0202年了,还在用十几年前的东西)。那么问题就来了,现在xp有些人都没见过,2003服务器系统估计也没见过,,毕竟就算有公司用这种服务器系统,但是才开始学的也没上过班,既然比赛要出现这玩意,那就还是得学。。。
2.linux
“啊,这是什么玩意!”估计这是学计算机新人的第一感觉。。不过都来看博客了,应该也不至于不知道linux是啥,就算真不知道,抱歉,为了比赛,不知道也得知道。
这个linux嘛一方面学基本的命令啊什么的,说白了就是类似于学windows基本操作,另一方面就是系统,系统的话,,很开源,,开源道什么程度呢,,,比赛这边要学习包括kali,ubantu,centos这三种比较常见的系统,,,其中kali是最主要的,信息安全嘛,怎么也要搜集信息嘛,搜集信息就要扫描啊什么的,kali里面有很多东西,对,很多,慢慢扫,而且不能只抱着一种工具扫,或许用习惯的工具在比赛的时候就被阉割了,就好比平时一直练得弓箭,上了战场却不给你弓,给你弩,虽然都是可以射的,不过平时没用过还要现场学,而队友都不会,自己摸索又花时间还不一定摸索得出来,这种情况难不成还去问敌人?哦对了,比赛的时候没有手机没有外网,百度?不存在的。
二:网络
首先说明一下,这里说的网络是最基本的网络基础,包括数据的传输啊,编码啊,协议啊,,,,,,这些东西基本都是很基本的理论知识,不一定要很精通,但是一定要了解,因为对这些理论的了解程度决定了在操作水平相同的情况下赛场上能解决问题的深度,上面说过,赛场上百度啥的,想都不要想,所以当比赛时出现啥子问题,网络基础的重要性就体现出来了,简单的举个栗子:D,,第一次出去比赛的时候有点紧张,设备当时都是没有连接的,需要自己动手把设备连起来,网线也要自己做,那么水晶头线序怎么排,设备ip地址怎么配,远程连接交换机防火墙端口怎么接、工具怎么连,这些都是涉及网络基础的,当时就是因为ip地址配错了导致赛前半小时熟悉环境的时间被浪费了,现在回忆起来都觉得我**是不是**。
另外,网络这方面的话也是配置交换机、路由器、防火墙这些玩意的基础中基础,所以网络很重要,平时看不到,用时吓一跳。
第二部分:上手级
一:系统服务
大部分人看到这个估计会一脸懵逼。。“这啥玩意,刚才不是有系统了嘛!!”
不好意思,这个标题,重点在服务上,系统只是附带的。。。为什么这样说,,,因为优先要了解服务的具体内容,然后再根据系统来对比其中的区别。而这里提到的服务,主要是服务器对客户端提供的服务,比如DHCP、DNS、WEB等,鉴于目前的比赛,内网渗透的内容不多,关键在于WEB渗透。WEB的话,主要是了解包括但不限于目录和文件的作用,数据库,网站类型这些东西。
二:交换路由和安全设备配置
终于到了说比赛里面能实操拿分的内容的时候了,太难了。。。
1.交换路由
讲道理,这个其实可以划分在网络里面,不过嘛,交换路由的配置在模拟环境和现实环境下可能会存在出入,其次的话,根据比赛的设备的不同,配置也可能不同,所以这个就需要在现实设备中纯手动解决,而解决这些问题是网络基础之上的内容了。
2.安全设备
这是一些很特殊的东西,基于网络,但是是网络里面另提取出来的一个重要部分,其主要作用是保护网络安全,设备的话包括防火墙,行为日志这些。。。总结一下的话,,交换路由配置是为了能够通讯,而安全设备则是在能通讯的基础上保证网络的安全。
三:编程
这就开始编程了?是的,没错,不要怀疑,不过这不是什么很高端的编程,毕竟这还是上手级难度,不会出现像黑魂那样开局3分钟就来一个boss来劝你游戏退款。
编程的内容只需要学些python,了解一些基本的变量、函数、类、模块和基本的语法格式就行了,比赛让你从程序里面填东西,而不是写东西,这就好比完型填空,缺啥填啥,有规律可以找,而不是写作文,,,不过在有些人看来貌似写作文要简单一点。。。
演示一下:
a = 1
x = input("x=")
if x == str(1):
print("x=a")
if x != str(1):
print("x=b")
上面是原版代码
a = 1
x = input("x=")
if x == str(1):
print("x=a")
if FLAG != str(1):
print("x=b")
这是比赛题的代码,他会要求你提交FLAG的值使得文件可以正常运行(因为有的代码是可以运行,但是运行到一半会报错,正常运行就是不报错),这时候只需要把x作为FLAG提交了就有分了,所以其实不需要很高的编程技巧,不过这只是举例子,具体填什么请根据脚本内容来,当然,他也可能把导入的模块名作为FLAG,这个就要稍微记一下了。
第三部分:加强级
一:逆向
这个我不想说些啥,自己学汇编,学完再学C,搞不好在这个过程中顺便把缓冲区溢出搞明白了。
二:渗透
刚才系统服务里面讲了有关WEB渗透的一点东西,但是渗透的话不止是WEB,内网渗透也是很重要的东西,内网渗透涉及到了包括网络、交换路由防火墙、编程这些东西,比较综合,但是为什么说它难度较高,主要是因为很难找到可以直接测试的环境,而现有的环境和个人保有的技术差距较大,简单点说,找了各种资料学了渗透,但是找不到可以去渗透的点,好不容易找到一个,然而又渗透不进去,就这种情况,至于那些有环境的我真的是羡慕。
三:CFT
夺旗,检测技术和加强思维能力,信息安全比赛和它有些许雷同之处,不过CTF要难很多,可以作为提升性的练习项目来玩。
第四部分:补充内容
这一部分主要说一些要注意的东西
根据比赛内容,可能会出现系统加固、环境加固(加固网站啥的),这方面的话就是知识的广泛程度的问题了,比赛题出了之后也可以根据赛题找一下相关的加固方式。
比赛方赛前给出的内容不要全信,最好不要抱有侥幸感,比如“这个东西应该会有”,最好考虑一下“如果这个东西没有该怎么办”。
现场可能会出现各种各样的问题,这八成是墨菲在作怪,解决问题的方法很多,冷静思考总会有的,当然,能解决到什么程度取决于技术层次和经验,说不定原来和朋友出去上网时弄的一些奇葩操作会在现场出奇效。
比赛给的卷子和答案不一定是对应的,不好意思,虽然我说flag是上面那个,但它就是下面那个。
该说的差不多就这些,后面会慢慢发布一些具体的技术内容,本篇就这样 :D
By:MelonNys