安全扫描技术是一项重要的网络安全技术分为网路安全扫描技术和主机安全扫描技术,网络安全扫描主要是针对系统中的不合适的设置和弱口令,以及同其他安全规则抵触的现象进行扫描,主机扫描主要是通过执行一些脚本文件来模拟对系统进行攻击的行为记录系统的反应,从而发现其中的漏洞。
一次完整的安全扫描分为3个阶段:
1.发现目标主机或是网络
2.进一步搜索目标信息,包括操作系统类型,运行的服务以及服务软件的版本等。如果是网络还可以进一步发现该网络的拓扑结构,路由设备及主机的信息。
3.根据搜索到的信息来判断测试系统是否存在安全漏洞。
端口扫描技术和漏洞扫描技术是网络安全扫描技术中的两种核心技术,比较成熟的网络扫描器有nmap和nessus等。
扫描的基本原理:
对于网络中的计算机而言,一个端口就是一个潜在的通信通道,也就是入侵通道。向目标主机的icp/udp服务端口发送探测的数据包,并记录目标主机的反应,扫描的目的1)发现开放的端口 2)了解主机操作系统信息3)了解软件或是服务版本4)发现脆弱的软件版本。
扫描技术的主要种类:
TCP全连接扫描:通过3次握手建立完整连接如果目标端口处于监听状态则会响应扫描主机的syn/ack请求,如果关闭则会返回rst的响应,这种扫描比较准确但是容易被目标主机察觉,记录。
TCP半连接(syn)扫描:只完成前两次握手,在第三次时中断,这样不容易被目标主机察觉记录,但是可能会出现漏报,特别是在网络差的时候漏报比较严重。
此外还有udp扫描,标志获取扫描,欺骗扫描,标示扫描,ftp反弹扫描,操作系统的指纹扫描,源端口扫描,主机扫描(主要用ping,容易被防火墙限制)等,包分片也是一种扫描方式,包分片功能有助于包穿过包过滤设备并逃避入侵检测系统的检测。将tcp或是udp分成多个包,增加访问控制设备检测端口扫描信息的难度,当前大多防火墙和ids都能对原始包进行重组后评估,但旧的缺乏这种功能。
扫描软件snmp介绍:
1.snmp是一个网络探测和安全扫描的程序,系统管理者可以利用这个软件扫描大型的网络。
2.snmp会列出扫描到的主机端口的列表,每个端口有open,filtered和unfiltered。open代表目标主机能够在这个端口使用accept()系统调用接受连接。filtered代表有防火墙,包过滤或是其他网络安全产品掩盖了端口,不知道是否打开。unfiltered表示这个端口是关闭的。
安装snmp:
[root@localhost Server]# yum install -y nmap-* --nogpgcheck
扫描的参数:
-sT TCP连接方式,容易被记录发现
-sS 半扫描,发送syn请求。
-sP 只是扫描主机是否运行。
-sU 扫描某台主机提供哪些UDP服务
-sR 确实是否是RPC端口,获得防火墙信息
通用扫描选项:
-P0 不需要ping主机适合icmp被防火墙禁掉的网络扫描
-f 使nmap使用碎片ip数据包发送标志位
-v 详细信息
-p<端口范围> 扫描的端口范围
-D 诱饵扫描,可以有效防范路由跟踪等。
-S<ip地址> 地址伪装
第一步:发现活动主机
[root@localhost ~]# nmap -sP 10.10.10.0/24
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2012-04-09 23:16 CST
Host 10.10.10.1 appears to be up.
Host 10.10.10.222 appears to be up.
MAC Address: 00:50:56:C0:00:01 (VMWare)
Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.653 seconds
第二步:扫描端口
[root@localhost ~]# nmap -sT 10.10.10.0/24
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2012-04-09 23:16 CST
Host 10.10.10.1 appears to be up.
Host 10.10.10.222 appears to be up.
MAC Address: 00:50:56:C0:00:01 (VMWare)
Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.653 seconds
[root@localhost ~]# nmap -v -sT 10.10.10.0/24
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2012-04-09 23:18 CST
Initiating ARP Ping Scan against 10.10.10.0 [1 port] at 23:18
The ARP Ping Scan took 0.21s to scan 1 total hosts.
DNS resolution of 1 IPs took 0.03s.
Initiating ARP Ping Scan against 254 hosts [1 port/host] at 23:18
The ARP Ping Scan took 5.11s to scan 254 total hosts.
DNS resolution of 1 IPs took 0.03s.
Initiating Connect() Scan against 10.10.10.1 [1680 ports] at 23:18
Discovered open port 22/tcp on 10.10.10.1
Discovered open port 53/tcp on 10.10.10.1
Discovered open port 111/tcp on 10.10.10.1
Discovered open port 946/tcp on 10.10.10.1
The Connect() Scan took 0.03s to scan 1680 total ports.
Host 10.10.10.1 appears to be up ... good.
Interesting ports on 10.10.10.1:
Not shown: 1676 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
111/tcp open rpcbind
946/tcp open unknown
Initiating Connect() Scan against 10.10.10.222 [1680 ports] at 23:18
Discovered open port 3389/tcp on 10.10.10.222
Discovered open port 445/tcp on 10.10.10.222
Discovered open port 135/tcp on 10.10.10.222
Discovered open port 139/tcp on 10.10.10.222
The Connect() Scan took 1.38s to scan 1680 total ports.
Host 10.10.10.222 appears to be up ... good.
Interesting ports on 10.10.10.222:
Not shown: 1676 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-term-serv
MAC Address: 00:50:56:C0:00:01 (VMWare)
Nmap finished: 256 IP addresses (2 hosts up) scanned in 6.972 seconds
Raw packets sent: 509 (21.378KB) | Rcvd: 1 (42B)
通过扫描可以确定那个主机开的端口较多服务较多,很可能是网关。
第三步:识别主机的 操作系统:
[root@localhost ~]# nmap -o 10.10.10.1
结论:
1.端口扫描首先发现活动主机,然后活动端口,从而确定重点关注的主机,确定操作系统寻找突破口。
2.除了常用的扫描选项外应配合其他的选项,保证不被对方发现,引起反追踪。
3.应该知道一些常用的端口。