主动扫描与被扫描目标有一个互动的过程,目标是可能知道自己在被扫描的;主动扫描一般都是针对目标发送特制的数据包,然后根据目标主机的反应来获得一些信息,帮助我们过滤无意义的主机,建立目标的网络拓扑,主要功能包括:
1. 目标主机是否在线
2. 目标主机的制定端口是否开放
3. 目标主机的操作系统
4. 目标主机上运行的服务等
kali里最优秀的主动扫描工具一定是nmap,nmap最早开发出来就是用来扫描端口的,后来功能慢慢增加,现在也能够通过调用脚本扫描一些漏洞
如果不加任何参数只打命令nmap的话,可以看到nmap的参数使用说明 。包括几大类:
- 主机发现 HOST DISCOVERY
- 扫描技术(方式)SCAN TECHNIQUES
- 端口规格和扫描顺序 PORT SPECIFICATION AND SCAN ORDER
- 服务/版本检测 SERVICE/VERSION DETECTION
- 脚本扫描 SCRIPT SCAN
- 操作系统检测 OS DETECTION
- TIMING AND PERFORMANCE
- FIREWALL/IDS EVASION AND SPOOFING
- 输出 OUTPUT
- 杂项 MISC
- 示例 EXAMPLES
最简单的命令:nmap [目标IP] :扫描目标IP,返回主机活动状态以及常见的1000个端口状态及对应的默认服务。多个扫描目标时,IP地址可以不连续形如192.168.100.1 192.168.100.2 192.168.100.5,IP之间以空格间隔,也可以是一段形如192.168.100.1-100,还可以使用CIDR形如192.168.100.0/24
-sn ping scan and disable port scan 此参数只执行ping操作,主要用于主机发现
-P及由-P延伸出的其他组合参数主要是用来进行“【主机发现】”。
进行主机发现时,nmap发送信息报,然后根据是否获得被测主机的响应报来识别,那么可以利用arp协议,ICMP协议以及TCP等支持回应的协议来进行探测。
扫描同一网段的时候,默认都是使用ARP扫描(即与参数-PR等同,可以在kali里打开wireshark,然后ping 192.168.100.0/24 -sn 查看具体的数据包情况)
网络层适合用于扫描的主要是ICMP协议,ICMP有查询和查错两种功能,NMAP利用了ICMP协议的查询功能(分为回送请求应答 -PE、时间戳应答 -PP、掩码地址请求应答 -PM)。需要注意的是,NMAP在执行扫描的时候能用arp的就会采用arp,也就是说如果使用nmap -PE命令时,