网络扫描是基于网络的远程服务发现和系统脆弱点的一种发现技术。
扫描可分为基于主机的扫描和基于网络的扫描,有时也被动式与主动式策略
网络扫描主要分为:端口扫描、类型和版本扫描、漏洞扫描、弱口令扫描和web漏洞扫描和系统配置扫描等几大类。
端口扫描
一个端口开放说明远程主机开启了一个服务,这可能是一个潜在的通信通道甚至是一个入侵通道。端口扫描就是找出目标主机或目标设备开放的端口和提供的服务。为下一步攻击做好准备。
在TCPUDP服务端口发送的探测报文,记录和分析响应报文以判断目标端口处于打开还是关闭状态
分为:TCP和UDP
tcp端口扫描包括全连接扫描和半连接扫描,除了全连接扫描之外,其他都是隐蔽扫描
端口的扫描也分为:慢速扫描和乱序扫描
全连接扫描
最基本的扫描方式,也称为TCP connect 扫描,TCP connect()扫描:这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。
如果端口是关闭的话,就会返回RST报文,如果有防火墙的保护的话,就不会返回报文。
应用程序接口(又名:应用编程接口,外文名:Application Programming Interface),简称API,是软件系统不同组成部分衔接的约定。
半连接扫描
所谓半连接(SYN)指与目标的指定端口在建立TCP连接时仅完成前两次握手。连接没有建立,所以不会在日志文件中就不会记录。半扫描分为SYN扫描和IP头部Dumb扫描两种方式。
如果端口是关闭的话,就会返回RST报文,如果有防火墙的保护的话,就不会返回报文。
B必须没有任何其他网络通信,这样才是准确的
FIN扫描
不依赖TCP的三次握手报文,而是TCP的FIN标记,发送FIN报文,如果发送的时候收到RST报文的话。端口就是出于关闭的阶段。如果端口是关闭的话,就会返回RST报文,如果有防火墙的保护的话,就不会返回报文。
FIN扫描的话更加隐蔽,但是容易得出错误的结论。因此需要FIN和SYN结合。
ACK扫描
可以确定目标主机是否在线或者,目标主机是否是打开防火墙
因为无论端口开放还是关闭,都会返回RST
NULL扫描
将发送的报文中的所有标记都配置为0,如果目标中没有返回任何报文,表示端口处于开放状态或者防火墙保护,如果目标返回RST标记的报文,表示端口处于关闭状态,如果返回ICMP不可达报文,表示端口被防火墙保护。
XMAS扫描
Xmas 扫描将发送的报文中的FIN、URG、PSH标志置为1如果目标没有返回任何报文,表示端口处于开放状态或者被防火墙保护,如果返回ICMP不可达报文,表示端口被防火墙保护。
TCP窗口扫描
当FIN、ACK、NULL 和XMAS扫描返回RST标记的报文时,窗口扫描通过检查返回报文中的窗口值是否为0来判断端口是否打开。有些操作系统实现时,对于关闭端口,报文的窗口值为0,而对于打开的窗口,报文的窗口值为正数。
自定义扫描
自行组合前面的6个标志位,形成自己定制的扫描类型。
UDP端口扫描
UDP扫描发送数据长度为0的UDP报文给目标端口,如果收到ICMP端口不可达信息,表示目标端口是关闭的,如果收到其他的ICMP不可达的信息,表示该端口被防火墙保护。UDP扫描的挑战是怎样使它更快的加速,因为开放的或保护的端口很少相应,只有等待超时然后继续发送报文,以防止偶尔的报文丢失,由于大部分的系统默认情况下限制ICMP端口不可达消息的发送速率,所以只有限制UDP扫描的速率以获得正确的扫描结果。
IP协议的扫描
ip协议的扫描指检测是目标的支持哪些协议,本质上说,它不是端口扫描,因为它遍历的是IP协议号而不是TCP或者UDP端口号。IP协议扫描和UDP扫描类似,它遍历的IP协议头部中表示协议类型的8比特,发送数据长度为0的IP报文,如果收到协议的任何响应,表示目标支持该协议,如果返回ICMP不可达报文,表示不支持该协议,如果返回其他ICMP不可达报文,表示端口被防火墙保护。
常用的躲避方式有:
1.诱饵隐蔽扫描
2.IP假冒
3.端口假冒
4.Mac 地址假冒
扫描工具
经典的扫描工具有Nmap
Nmap端口扫描命令选项
1.网卡查看
命令:nmap -iflist
2.nmap指定特定网卡给目标主机发送数据包,如下图所示。
-e 后跟指定发送数据包的网卡。
命令:nmap -e 指定的发送数据包的网卡 ip/domainEg:nmap -e eth0 192.168.1.30
3.伪造或者掩盖攻击方主机IP地址进行渗透测试扫描,如下图所示。
命令:nmap -D 伪造的IP 目标主机IP
Eg:nmap -D 192.168.1.33 192.168.1.30 -D后可以紧跟多个伪造的IP,多个伪造IP之间使用“,”隔开
例如:nmap -D 192.168.1.33,192.168.1.56 192.168.1.30
4.快速扫描,如下图所示。
-T:时序(1-5)-F(fast):快速扫描-Pn(端口扫描,不发现主机)
命令:nmap -F -T4 192.168.1.30
- SYN扫描(-sS),又称为半开放扫描,SYN扫描不建立完全连接,用来判断端口状态的一种手段,如下图所示。
命令:nmap -sS -T4 IP
Eg:nmap -sS -T4 192.168.1.30
6.FIN扫描(-sF),又称为秘密扫描,如下图所示。
命令:nmap -sF 192.168.1.30
- ACK扫描(-sA),如下图所示。
命令:nmap -sA IP
Eg:nmap -sA 192.168.1.30
8.Windows扫描(-sW),如下图所示。
命令:nmap -sW IP
Eg :nmap -sW 192.168.1.30