文章目录
一、自学网络安全学习的误区和陷阱
1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习
我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多
一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少
2.不要把深度学习作为入门第一课
很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:
【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣
【2】深度学习对自身要求高,不适合自学,很容易走进死胡同
3.不要收集过多的资料
网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频
网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看
二、学习网络安全的一些前期准备
1.硬件选择
经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!所以,不要打着学习的名义重新购买机器…
2.软件选择
很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习
至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java…
很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员
(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)
3.语言能力
我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)
比如说:肉鸡、挂马、shell、WebShell等等
三、自学网络安全学习路线
重点内容
扫描技术概述
常见的扫描技术
一、扫描技术概述
1、什么是扫描器
扫描器是一种自动检测远程或本地主机安全性弱点的程序。它集成了常用的各种扫描技术,能自动发送数据包去探测和攻击远端或本地的端口和服务,并自动收集和记录目标主机的反馈信息,从而发现目标主机是否存活、目标网络内所使用的设备类型与软件版本、服务器或主机上各TCP/UDP端口的分配、所开放的服务、所存在的可能被利用的安全漏洞。据此提供一份可靠的安全性分析报告,报告可能存在的脆弱性。
2、网络扫描器是一把双刃剑
安全评估工具
系统管理员保障系统安全的有效工具
网络漏洞扫描器
网络入侵者收集信息的重要手段
扫描器是一把“双刃剑”。
网络扫描器可以用于检测和纠正漏洞和安全问题,但同时它也可以被黑客用来探测网络中的弱点和漏洞,并进一步利用这些漏洞进行攻击。因此,使用网络扫描器必须非常谨慎,并且需要采取适当的防护措施,以确保网络的安全性。
3、为什么需要网络扫描器
由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷
由于系统管理员的疏忽或缺乏经验,导致旧有的漏洞依然存在
许多人出于好奇或别有用心,不停的窥视网上资源
4、扫描的重要性
扫描的重要性在于把繁琐的安全检测,通过程序来自动完成,这不仅减轻了网络管理员的工作,而且也缩短了检测时间。
同时,也可以认为扫描器是一种网络安全性评估软件,利用扫描器可以快速、深入地对目标网络进行安全评估。
网络安全扫描技术与防火墙、安全监控系统互相配合能够为网络提供很高的安全性。
5、网络扫描器的主要功能
1、扫描目标主机识别其工作状态(开/关机)
2、识别目标主机端口的状态(监听/关闭)
3、识别目标主机操作系统的类型和版本
4、识别目标主机服务程序的类型和版本
5、分析目标主机、目标网络的漏洞(脆弱点)
6、生成扫描结果报告
6、网络扫描器与漏洞的关系
网络漏洞是系统软、硬件存在安全方面的脆弱性,安全漏洞的存在导致非法用户入侵系统或未经授权获得访问权限,造成信息篡改、拒绝服务或系统崩溃等问题。
网络扫描可以对计算机网络系统或网络设备进行安全相关的检测,以找出安全隐患和可能被黑客利用的漏洞。
7、扫描三步曲
一个完整的网络安全扫描分为三个阶段:
第一阶段:发现目标主机或网络
第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息
第三阶段:根据收集到的信息判断或者进一步测试系统是否存在安全漏洞
二、常见的扫描技术
1、主机扫描技术
主机扫描的目的是确定在目标网络上的主机是否可达。这是信息收集的初级阶段,其效果直接影响到后续的扫描。
常用的传统扫描手段有:
ICMP Echo扫描
ICMP Sweep扫描
Broadcast ICMP扫描
Non-Echo ICMP扫描
主机扫描技术是一种网络安全测试技术,用于识别网络中的主机并评估它们的安全性。以下是一些主机扫描技术:
-
端口扫描:通过发送TCP或UDP数据包到目标主机的不同端口,识别网络上运行的服务并评估其安全性。
-
操作系统指纹识别:通过分析目标主机的TCP/IP协议栈的响应来确定其操作系统类型和版本。
-
漏洞扫描:使用已知漏洞数据库来扫描主机上已知的漏洞,并通过发送相应的攻击载荷来验证这些漏洞是否可利用。
-
主机发现:使用各种技术,如ARP扫描、DNS查询和ICMP ping来识别网络中存在的主机。
主机扫描技术可以帮助网络管理员识别网络中存在的安全风险,从而采取措施加强网络安全性。
2、ICMP echo扫描
实现原理:Ping的实现机制,在判断在一个网络上主机是否开机时非常有用。向目标主机发送ICMP Echo Request (type 8)数据包,等待回复的ICMP Echo Reply 包(type 0) 。如果能收到,则表明目标系统可达,否则表明目标系统已经不可达或发送的包被对方的设备过滤掉。
优点:简单,系统支持
缺点:很容易被防火墙限制
可以通过并行发送,同时探测多个目标主机,以提高探测效率(ICMP Sweep扫描)。
ICMP echo扫描是一种网络扫描技术,它利用Internet控制消息协议(ICMP)中的“回显请求”和“回显应答”信息来探测所选目标主机是否在线。这种扫描技术是一种被动扫描方式,其基本原理是向目标主机发送一个“回显请求”的ICMP数据包(ping包),如果目标主机在线并能接收该请求报文,则会返回一个“回显应答”的ICMP数据包。
ICMP echo扫描有以下优点:
- 操作简单,容易实现;
- 非常快速,可以快速扫描整个网络;
- 不会造成网络拥塞;
- 不需要对目标主机进行端口扫描,因此可以避免被目标主机的防火墙或入侵检测系统检测到。
然而,ICMP echo扫描的缺点也是显而易见的,它只能检测目标主机是否在线,无法检测主机上的开放端口或服务,因此不能对主机进行深入的漏洞检测。
3、ICMP sweep扫描
使用ICMP ECHO轮询多个主机称为ICMP SWEEP(或者Ping Sweep)。
对于小的或者中等网络使用这种方法来探测主机是一种比较可接受的行为,但对于一些大的网络如CLASS A,B,这种方法就显的比较慢,原因是Ping在处理下一个之前将会等待正在探测主机的回应。
扫描工具Nmap实现了ICMP sweep的功能。
ICMP sweep扫描是一种扫描方法,它使用Internet控制消息协议(ICMP)发送Echo Request消息到目标网络的所有IP地址。如果目标主机处于活动状态,它将返回Echo Reply消息,这表明该主机存在。通过收集所有回复,可以推断出活动主机的数量和它们的IP地址。与其他扫描方法不同,ICMP扫描不会发送TCP或UDP数据包到目标主机的端口,因此不会触发防火墙或入侵检测系统的警报。然而,由于许多网络设备和主机都允许ICMP通信,因此ICMP扫描成为了对网络进行识别和映射的常用工具。
4、Broadcast ICMP扫描
实现原理:将ICMP请求包的目标地址设为广播地址或网络地址,则可以探测广播域或整个网络范围内的主机。
缺点:
只适合于UNIX/Linux系统,Windows 会忽略这种请求包;
这种扫描方式容易引起广播风暴
Broadcast ICMP扫描是一种网络扫描技术,使用ICMP (Internet Control Message Protocol)在网络中发送广播消息并侦测响应,以发现网络上潜在的主机。这种扫描通常用于确定合法的IP地址范围和发现网络拓扑。
在此扫描中,扫描器发送ICMP广播消息,该消息被发送到子网的所有IP地址。然后,扫描器侦测所有响应,并记录回复的IP地址。通过分析响应的IP地址,扫描器可以确定扫描的子网中的活动主机。
这种扫描技术可能会被视为一种安全漏洞,因为它可以让攻击者发现企业网络中存在的所有活动主机。因此,网络管理员通常会对此类扫描进行监测,并采取措施来防止恶意扫描。
5、Non-Echo ICMP扫描
Non-Echo ICMP扫描是一种利用ICMP协议进行的主机扫描技术。与常规的Ping扫描不同,Non-Echo ICMP扫描不发送ICMP回显请求(Echo Request),而是发送其他类型的ICMP报文(如ICMP时间戳请求、ICMP地址掩码请求等),以避免被目标主机过滤或防火墙阻挡。
Non-Echo ICMP扫描可以用于发现目标主机的存在、确定主机的操作系统、识别网络设备等。但它也存在被防火墙或入侵检测系统检测到的风险,因此在进行扫描时应审慎使用,遵守相关法律法规和道德规范。
一些其它ICMP类型包也可以用于对主机或网络设备的探测,如:
Stamp Request (Type 13)
Reply (Type 14)
Information Request (Type 15)
Reply (Type 16)
Address Mask Request (Type 17)
Reply (Type 18)
6、端口扫描技术
TCP/IP协议提出的端口是网络通信进程与外界通讯交流的出口,可被命名和寻址,可以认为是网络通信进程的一种标识符。
进程通过系统调用与某端口建立连接绑定后,便会监听这个端口,传输层传给该端口的数据都被相应进程所接收,而相应进程发给传输层的数据都从该端口输出。
互联网上的通信双方不仅需要知道对方的IP地址,也需要知道通信程序的端口号。
当确定了目标主机可达后,就可以使用端口扫描技术,发现目标主机的开放端口,包括网络协议和各种应用监听的端口。端口扫描技术包括以下几种:
全扫描
会产生大量的审计数据,容易被对方发现,但其可靠性高。
半扫描
隐蔽性和可靠性介于全扫描和秘密扫描之间。
秘密扫描
能有效的避免对方入侵检测系统和防火墙的检测,但使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息。
认证(ident)扫描
需要先建立一个完整的TCP连接。
FTP代理扫描
隐蔽性好,难以追踪。但受到服务器设置的限制。
7、全扫描
全TCP连接是TCP端口扫描的基础。
扫描主机尝试(使用三次握手)与目标主机的某个端口建立正规的连接。
连接由系统调用connect()开始。如果端口开放,则连接将建立成功;否则,返回-1,则表示端口关闭。
8、半扫描
TCP SYN
在这种技术中,扫描主机向目标主机的选择端口发送SYN数据段。
如果应答是RST,那么,说明端口是关闭的,按照设定继续探听其他端口;
如果应答中包含SYN和ACK,说明目标端口处于监听状态。
由于SYN扫描时,全连接尚未建立,所以,这种技术通常被称为“半连接”扫描。
9、秘密扫描
TCP FIN
TCP FIN扫描技术使用FIN数据包探测端口:
当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,且返回一个RST数据包。
当一个FIN数据包到达一个打开的端口,数据包只是简单丢掉(不返回RST数据包)。
由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽的多。
FIN数据包能通过监测SYN包的包过滤器——TCP FIN扫描又称作秘密扫描。
10、认证(ident)扫描
认证(ident)协议一般用于网络连接过程中服务器验证客户端身份,因而监听TCP 113端口的ident服务应该是安装在客户端的,并由该TCP连接的服务端向客户端的113号端口发起认证连接。
连接过程:当客户端向服务器发送某个连接请求后,服务器便先向客户端的TCP 113端口发起连接,询问客户端该进程的拥有者名称,也就是问问“现在要连上我的这个家伙,在你那儿是什么身份”。服务器获取这一信息并认证成功后,记录下“某年某月某日谁连到我的机器上”,再建立服务连接进行通信。
认证扫描(Identification Scanning)是一种计算机安全技术,用于检测并识别网络中各种系统和设备的身份信息,例如操作系统类型、开放的端口和服务、网络协议等等。这些信息可以帮助安全专家确定可能存在的安全漏洞和攻击面,并采取相应的措施来保护系统和网络不被黑客入侵。认证扫描工具通常使用自动化的方法执行扫描,并提供详细的报告,展示系统的漏洞和安全威胁,以帮助组织改进网络安全。