网络安全初学者指南
一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:460500587
微信公众号:计算机与网络安全
ID:Computer-network
学习网络安全技术,需要学习哪些知识,先学什么?这是很多初学者的共同疑惑。下面,就这个话题展开探讨。
另外,如果你专门为了入侵他人而学习网络安全技术,请转变思想,并认真阅读《中华人民共和国网络安全法》,珍惜当下,遵纪守法,穷死不犯法。
一、基本技能
1、编程基础
编程在计算机领域称得上是必备技能了,这里将简单介绍一些适合新手入门学习的编程语言以及各种技术所需的编程语言。
(1)Python
Python是一种解释性脚本语言,它拥有众多的“库”。Python功能强大而且简洁,还可以将其他语言的模块轻松联结起来,故又被称为“胶水语言”。由于Python需要的代码量极少且易于学习,其程序源代码对于使用者完全开放,在开源软件工作者和编程初学者中具有极好的声誉。学习Python对人们日后的网络编程学习,以及Web渗透中部分工具的使用具有重要意义。
目前Python主要分为2.x与3.x两个版本,两者在语法上略有差异,且各有优缺点,大家可以根据自己的需求学习不同的版本。
(2)C语言
C语言是一种极其重要和流行的编程语言,具有极高的可移植性——同样的代码在Linux、Windows、Mac OS系统上都可以运行;它的运行速度极快,可以充分利用计算机的优点,表现出只有汇编语言才具有的精细控制能力。对于初学者来说,C语言是最容易上手的一门“大型”编程语言,C语言也与病毒分析和逆向技巧有重要联系。
(3)汇编语言
汇编语言是计算机的底层语言,大部分计算机的汇编语言基于X86指令集,计算机可通过汇编程序将汇编代码转化为机器码——计算机可以直接执行的代码。汇编可以使人们更清晰地了解计算机的运行原理,同时也对软件漏洞分析、逆向分析以及病毒机制的理解具有重要意义。
(4)JavaScript
JavaScript是一种脚本语言,在Web前端中担任着重要的角色,但它也是造成XSS(跨站脚本攻击)、CSRF等漏洞的罪魁祸首之一,所以说JavaScript是学习渗透测试和前端安全的一门必修课。
2、命令提示符
命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。
在Windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行,比如输入shutdown -s -t 30就会在30秒后关机。在Windows系统中,按Win+R键,输入cmd并回车,就可以调出cmd窗口。
许多应用在命令提示符窗口进行操作会更加简洁,比如输入Python可以启动Python解释器(前提是已搭建了Python环境),学会命令提示符的常用用法和语法后,可以写出批处理(*.bat)文件,来进行许多原始而又简单的操作。
类似地,Linux系统的Shell则是Linux的命令提示符,称为命令行,一般以终端方式打开。Linux的图形化界面虽然没有Windows易用,但是它在命令行方面比Windows更加成熟,大家可以尝试使用Linux的一些发行版,例如Ubuntu、Debian等,熟悉Linux系统对于提升工作效率是大有裨益的。
3、虚拟专用网络
虚拟专用网络(Virtual Private Network,即VPN),VPN能够让其他人连接到企业网络或内部网络,通过一个公用网络建立一个临时的、安全的连接,这是一条穿过混乱的公用网络的安全、稳定的隧道。同时VPN能提供高水平的安全性,使用高级的加密和身份识别协议保护数据,阻止没有被授权的用户接触数据。而在渗透测试中,使用VPN则可以进入一些无法正常访问的网络环境,从而进一步开展渗透测试。
4、虚拟机
虚拟机(Virtual Machine)指通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
简单来说,虚拟机就是操作系统中的一个沙盒,在沙盒之中执行操作的时候主系统是不会干扰到外部系统的,可以说是安全测试中必不可少的工具。
从20世纪五六十年代IBM提出虚拟机技术开始,虚拟机技术随着互联网的发展,日益成熟。目前,比较流行的虚拟机软件有VMware、VirtualBox和Virtual PC,它们都能在Windows系统中虚拟出多个计算机系统。当需要在其他系统环境测试软件或以另一个系统作靶机来测试某漏洞时,则可以在自己的同一台计算机上安装两个或多个操作系统,例如可以同时安装Linux与Windows操作系统,并且在虚拟机与物理机之间共享文件、应用程序及网络资源等,这将极大地提高工作效率。
接下来,我们以VirtualBox软件为例来介绍一下虚拟机的安装方法。
VirtualBox是一款常用的开源的虚拟机软件,它具有操作简便、界面简洁等很多优点。图1是在Windows环境下运行VirtualBox的界面。
图1 VirtualBox主界面
单击“新建”按钮,会弹出如图2所示的界面,这里需要键入虚拟机的名称以及选择所安装系统的类型和版本。
图2 为虚拟机命名并选择镜像的系统类型与版本
之后,单击“下一步”按钮进入内存分配界面,如图3所示。在安装每一个虚拟系统的时候,都要为其分配相应大小的内存,这些内存用以支持虚拟系统的运行及虚拟系统中程序的运行。
图3 为虚拟机分配内存
虚拟机系统为Windows XP时,为其分配256M的运行内存足够支持虚拟机中的常用操作。当然,所能分配的最大内存不能超过物理机内存的剩余部分,毕竟虚拟机内存是无法凭空虚拟的。
除了分配内存,还要给虚拟系统分配硬盘。硬盘是一个载体,如同主系统安装在主机的硬盘上一样,我们要给所安装的虚拟系统分配一块虚拟硬盘。分配硬盘有两种方式,一种是固定大小,另一种是动态分配,如图4所示。
图4 为虚拟机设置虚拟硬盘类型
顾名思义,动态分配模式下,给虚拟系统分配的硬盘空间会随着虚拟系统的增大而增大,在该模式下,新建硬盘很快,而且不需要消耗太大空间,分配给虚拟系统的硬盘大小会随着逐渐使用而增加。
而固定大小模式,则是为虚拟系统分配固定的空间,在空间足够时,虚拟系统可以流畅地运行,如果虚拟系统所占的空间大于或等于所分配的硬盘内存,则会出现错误。如图5所示,VirtualBox软件会根据所选择的系统类型默认一个硬盘大小,可供参考。
图5 为虚拟硬盘命名并分配大小
单击“创建”按钮,我们可以看到创建过程,如图6所示。
图6 创建虚拟硬盘
至此,我们的虚拟硬盘就建立完毕了。之后在VirtualBox的主界面可以看到左侧的管理列表出现了刚刚创建的虚拟系统。单击选中左侧的系统,单击启动栏上的“启动”按钮,便可以进入创建的虚拟系统中,如图7所示。
图7 开启虚拟机
在刚才的操作之中,我们在VirtualBox中创建了一个“空位”,接下来就可以通过镜像文件来安装系统了。
二、学习方法
高效的学习方法可以帮助我们节省时间和精力,有的思维方式甚至能帮助我们突破思维枷锁,所以,学习一些学习方法是十分必要的。
1、思维导图
思维导图(Mind Manager),又称心智图,是一种表达发散性思维的有效的图形思维工具。它的创始人东尼·博赞(Tony Buzan)拥有“全世界最高创造力IQ”的头衔。思维导图有利于人脑的扩散思维的展开,影响力极大,新加坡甚至将思维导图列为小学必修科目,大量著名大型企业也逐渐开始使用思维导图。
思维导图所运用的方法是一种将发散性思维具体化的方法,它提供一个关键点,即父节点,然后发散出任意多个子节点,这些节点又可以与其他节点相连,形成可视化记忆结构,在管理大型项目或渗透测试等需要全局掌控的环境下非常实用。图8是一个简单的网络安全的思维导图雏形。
图8 一个简单的网络安全的思维导图雏形
绘制思维导图的软件有很多,各种平台均有丰富的软件可供选择,当然,在白板或草稿纸上也可以很好地展现思维导图。
2、曼陀罗思考法
所谓曼陀罗思考法,与上文的思维导图一样,是一种能够开发创意、发现问题、提高效率的思维方式,它主要应用于制作备忘录与理清思路。
一般的曼陀罗思考法笔记分为9个区域,它的特点是让人依托惯性思维和直线思维,在曼陀罗笔记的视觉影响下,人们会从各个方面对主题进行思考,此时潜意识会被激发,灵感会比平时更容易被大脑捕捉。图9为一个简单的曼陀罗笔记格式,相信你看一遍就能在纸上还原它了。
图9 一个简单的曼陀罗笔记
曼陀罗笔记有“四面八方拓展型”和“围绕型”两种使用方法,它们都是从最中间的一点开始,思考“5W”(Who、What、Why、Where和When),这在逻辑编程和信息搜集中有奇效。
3、番茄工作法
番茄工作法(The Pomodoro Technique),是一种时间管理方法,由弗朗西斯科·西里洛(Francesco Cirillo)于1992年创立,这种方法的规则大致如下。
(1)记录要完成的任务,写在纸上或记录在你的电子设备中。
(2)每4个番茄钟为一组,每组30分钟,30分钟内专注于一项工作,不允许做任何无关的事并自行安排最后几分钟休息,每4个番茄钟安排15~30分钟休息时间。
(3)番茄钟不可以分割。
(4)在该番茄钟完成时,画一个×,若由于不可抗力或人为因素放弃了该番茄钟(哪怕还剩1分钟就结束了),都不能画×,这个番茄钟应该算没有存在过。
(5)休息时间不要用番茄来规定。
(6)根据自身调整方法。
利用这种高专注的工作(学习)方法,我们不必再为时间担心,“几小时一晃而过却什么也没干”的情况不会再出现,长期坚持还能大幅度地提高集中力和注意力,增强决策意识、大局观与决断力。另外,当一个个番茄钟被完成时,你会发现有一种独特的自豪感。
管理番茄钟的软件在网络上有各种各样,也几乎全平台支持,大家可以根据自己的需求,选择适合自己的番茄钟管理软件,如果您有兴趣,不妨尝试一下用自己拿手的编程语言写一个番茄钟软件。
三、写在最后
本文介绍了一些学习网络安全技术的基础技能和经典的学习方法。方法与技能有无数种,希望大家能增强独立思考能力,自己总结规律,循序渐进、举一反三、触类旁通,这样才能更好地掌握知识技能。
微信公众号:计算机与网络安全
ID:Computer-network