扫描技术
主机扫描
利用ICMP的ping命令进行扫描
ping www.4399.com
表示扫描机和目标机通信正常,并且可以通过回复的TTL值判断对方的操作系统类型:
操作系统 | TTL值 |
---|---|
Linux | 64or255 |
Windows | 128 |
Win7 | 64 |
Windows 98 | 32 |
UNIX | 255 |
(TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,作用是限制IP数据包在计算机网络中的存在的时间)
(TTL可修改)
不可ping的情况
- Request timed out(响应超时)
a) 对方已关机,或网络上不存在此地址;
b) 对方与自己不在同一个网段内(IP,网段与子网掩码 https://network.51cto.com/art/201901/591192.htm );
c) 对方确实存在,但设置了ICMP数据包过滤(如防火墙设置),错误设置IP地址等 - Destination host Unreachable(目标不可达)
a) 对方与自己不在同一个网段内,而自己又未设置默认的路由;
b) 网线出现故障 - Bad IP address
a) 未连接到DNS服务器,所以无法解析这个IP地址;
b) IP地址不存在; - Ping 127.0.0.1
a) 127.0.0.1是本地循环地址,如无法ping,则表明本地机TCP/IP协议不能正常工作 - no rout to host:网卡工作不正常
端口扫描
向目标主机的各个端口发送连接请求,根据返回的响应判断是否开放。
端口是TCP/IP协议定义的。
[IP:端口]作为套接字,代表TCP链接的一个连接端,一般称socket,也用于定位主机中的进程。
端口扫描分类:
TCP connect()扫描 (TCP全连接扫描):
a) 使用socket创建套接字,利用三次握手协议判断目标端口是否存活;
b) 优:实现简单,无操作权限要求、扫描速度快;
c) 缺:留下痕迹,易被发现,数据包容易被过滤掉、目标主机logs文件会显示一连串的连接和连接出错的信息
d) 防御方式——黑名单机制:查询日志,如发现某IP多次连接设备的不同端口,则加入黑名单
SYN扫描:
a) 当扫描端接收到ACK/SYN应答时,发送一条解决建立连接的RST请求;
b) 优:隐蔽,不留下扫描痕迹;
c) 缺:须root权限
TCP FIN扫描:
a) 客户端发送带FIN标识和端口号的数据包给服务端,通过服务器的反馈情况判断端口的开放状态
b) 如服务器未响应,则端口处于开放状态(无视防火墙)
c) 如服务器返回RST数据包,则端口处于关闭状态;
d) 如收到返回的是ICMP数据包,则数据包被过滤;
UDP端口扫描
a) 向目标UDP端口发送一些随机数据
i. 如收到CMP端口不可达消息,则端口关闭;
ii. 如目标响应了一个UDP报文,则端口开放;
b) 优:简单
c) 缺:慢,须root权限、一般作为辅助扫描
漏洞扫描
扫描工具:
UNIX:Nmap
Windows:x-scan、Super Scan、Nmap
Nmap在kali上使用:
nmap -sP 域名/24 //扫描指定IP地址下存活的主机数
nmap -p- //(可省略)扫描IP地址下的开放的端口及服务
nmap -sV //查看端口服务器的版本
nmap -p //扫描指定IP地址在指定端口范围内的开放情况
-sP //指定扫描主机,并且不进行端口扫描