网络扫描与防御技术
扫描技术基础
什么是网络扫描器
网络扫描器可以通过执行一些脚本文件来模拟对网络系统进行攻击的行为并记录系统的反应,从而搜索目标网络内的服务器、路由器、交换机和防火墙等设备的类型与版本,以及在这些远程设备上运行的脆弱服务,并报告可能存在的脆弱性。
网络扫描器是一把双刃剑
扫描器是一把“双刃剑”。当它被用作安全评估工具时,是系统管理员保障系统安全的有效工具;当它被用作网络漏洞扫描器时,是网络入侵者收集信息的重要手段。
为什么需要网络扫描器
由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷。
由于系统管理员的疏忽或缺乏经验,导致旧有的漏洞依然存在。
许多人出于好奇或别有用心,不停的窥视网上资源。
扫描的重要性
扫描的重要性在于把繁琐的安全检测,通过程序来自动完成,这不仅减轻了网络管理员的工作,而且也缩短了检测时间;同时,也可以认为扫描器是一种网络安全性评估软件,利用扫描器可以快速、深入地对 目标网络进行安全评估;网络安全扫描技术与防火墙、安全监控系统互相配合能够为网络提供很高的安全性。
网络扫描器的主要功能
扫描目标主机识别其工作状态(开/关机)
识别目标主机端口的状态(监听/关闭)
识别目标主机操作系统的类型和版本
识别目标主机服务程序的类型和版本
分析目标主机、目标网络的漏洞(脆弱点)
生成扫描结果报告
网络扫描器与漏洞的关系
网络漏洞是系统软、硬件存在安全方面的脆弱性,安全漏洞的存在导致非法用户入侵系统或未经授权获得访问权限,造成信息篡改、 拒绝服务或系统崩溃等问题。
网络扫描可以对计算机网络系统或网络设备进行安全相关的检测,以找出安全隐患和可能被黑客利用的漏洞。
扫描三步曲
一个完整的网络安全扫描分为三个阶段:
第一阶段:发现目标主机或网络
第二阶段:发现目标后进一步搜集目标信息, 包括操作系统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主 机的信息。
第三阶段:根据收集到的信息判断或者进一步测试系统是否存在安全漏洞。
网络安全扫描技术包括 PING 扫描、操作系统探测、穿透防火墙探测、端口扫描、漏洞扫描等。
1、PING扫描用于扫描第一阶段,识别系统是否活动。
2、OS探测、穿透防火墙探测、端口扫描用于扫描第二阶段,OS探测是对目标主机运行的OS进行识别,穿透防火墙探测用于获取被防火墙保护的网络资料,端口扫描是通过与目标系统的TCP/IP端口连接,并查看该系统处于监听或运行状态的服务。
3、漏洞扫描用于安全扫描第三阶段,通常是在端口扫描的基础上,进而检测出目标系统存在的安全漏洞。
一个典型的扫描案例
1、Find targets
选定目标为:192.168.1.18
测试此主机是否处于活动状态,工具是用操作系统自带的ping,使用命令:ping 192.168.1.18
2、Port Scan
运用扫描工具,检查目标主机开放的端口, 判断它运行了哪些服务。
使用的工具是 Nmap 4.20
扫描命令:nmap 192.168.1.18
我们将重点关注SMTP端口
25/tcp open smtp
3、Vulnerability Check
检测 SMTP 服务是否存在漏洞
使用漏洞扫描工具 Nessus 3
4、Report
Nessus发现了目标主机的SMTP服务存在漏洞。
常见的扫描技术
TCP/IP相关知识
TCP 报文格式
TCP控制位
URG: 为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。
ACK: 为确认标志位。如果为1,表示包中的确认号是有效的。否则,包中的确认号无效。
PSH: 如果置位,接收端应尽快把数据传送给应用层。
RST: 用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到 的一个分段明显不是属于该主机上的任何一个 连接,则向远端发送一个复位包。
SYN: 标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该 数据包为连接请求,如果SYN=1而ACK=1 则表示接受连接。
FIN: 表示发送端已经没有数据要求传输了,希望释放连接。
正常TCP通信过程:
建立连接
数据传输
断开连接
ICMP协议:
Internet Control Message Protocol,是IP的一部分,在IP协议栈中必须实现。
用途:
网关或者目标机器利用ICMP与源通讯;当出现问题时,提供反馈信息用于报告错误。
特点:
其控制能力并不用于保证传输的可靠性;
它本身也不是可靠传输的;
并不用来反映ICMP报文的传输情况。
常用网络命令
PING
Ping是最基本的扫描技术。ping命令主要目的是检测目标主机是不是可连通,继而探测一个IP范围内的主机是否处于激活状态。
ping是一个基本的网络命令,用来确定网络上具有某个特定IP地址的主机是否存在以及是否能接收请求。
Ping命令通过向计算机发送ICMP回应报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接。
ping在安装了TCP/IP协议后可以使用
-n: 发送ICMP回应报文的个数
Traceroute
Traceroute,跟踪两台机器之间的路径,显示中间的每一个节点的信息。这个工具可以用来确定某个主机的位置。
traceroute 命令旨在用于网络测试、评估和管理。它应主要用于手动故障隔离。
-f