一、介绍

Nmap(Network Mapper)是一款用于网络发现和安全审计的开源工具。它最初由 Gordon Lyon开发,是一款功能强大且广泛使用的网络扫描工具。Nmap 允许用户在网络上执行主机发现、端口扫描、服务识别和版本检测等操作,以帮助评估网络的安全性、发现主机和服务、以及识别潜在的安全威胁。

二、原理

  • 发送探测包: Nmap向目标主机发送各种类型的探测包,如TCP SYN、TCP ACK、ICMP echo request等。
  • 分析返回包: 根据返回包的内容,Nmap可以判断目标主机的状态、开放端口、运行的服务等信息。
  • 匹配指纹库: Nmap将获取到的信息与内置的指纹库进行匹配,从而识别目标主机的操作系统和服务版本。
  • 生成扫描报告: Nmap将扫描结果以文本、XML等格式输出,方便用户分析。

三、扫描模式

  1. TCP ACK扫描原理
    TCP ACK扫描 是一种网络扫描技术,主要用于探测目标主机上的防火墙规则。它的工作原理是:向目标主机的某个端口发送一个TCP数据包,该数据包只设置ACK标志位,不进行完整的TCP三次握手。
    为什么发送ACK包?
    • 绕过防火墙: 许多防火墙会对正常的TCP连接尝试(SYN扫描)进行过滤,但对ACK包的处理可能比较松懈,因此可以用来探测防火墙规则。
    • 判断端口状态: 通过分析目标主机对ACK包的响应,可以判断目标端口的状态。
      ACK扫描的响应分析
    • 收到RST包: 如果目标主机收到ACK包后,返回了一个RST包,说明目标端口是关闭的,或者防火墙对该端口进行了过滤。
    • 没有收到响应: 如果目标主机没有响应,说明该端口可能被过滤了,或者目标主机处于不可达状态。
    • 其他响应: 如果收到其他类型的响应包,则说明目标主机可能存在一些特殊的配置。
      ACK扫描的局限性
    • 无法确定端口开放: ACK扫描只能判断端口是关闭的还是被过滤的,无法确定端口是开放的。
    • 依赖防火墙配置: ACK扫描的结果很大程度上取决于目标主机的防火墙配置。
    • 可能触发警报: 一些防火墙会将ACK扫描视为攻击行为,并触发警报。
      ACK扫描的应用场景
    • 探测防火墙规则: 通过ACK扫描可以了解目标主机防火墙的配置情况,为后续的渗透测试提供参考。
    • 绕过防火墙: 在某些情况下,ACK扫描可以绕过防火墙的限制,对目标主机进行进一步的扫描。
      总结
      TCP ACK扫描是一种较为隐蔽的端口扫描技术,主要用于探测防火墙规则。虽然它无法确定端口是开放的,但可以提供一些关于目标主机防火墙配置的信息。在实际的网络扫描中,ACK扫描通常与其他扫描方式结合使用,以获得更全面的信息。
      需要注意的是:
    • ACK扫描可能会违反目标主机的安全策略,请勿在未经授权的情况下对目标主机进行扫描。
    • 不同的防火墙对ACK包的处理方式可能不同,ACK扫描的结果可能并不总是准确的。

      四、扫描选项

一、基础参数

1.TCP连接扫描,不安全,慢

1
nmap -sT 192.168.96.4

会在机器中留下记录

2.SYN扫描,使用最频繁,安全,快

1
nmap -sS 192.168.96.4

3.目标机禁用ping,绕过ping扫描

1
nmap -Pn 192.168.96.4  

4.UDP扫描,慢,可得到有价值的服务器程序
1
nmap -sU 192.168.96.4  

5.使用僵尸机对目标机发送数据包
1
nmap -sI 僵尸ip 目标ip

6.检测哪些端口被屏蔽
1
nmap -sA 192.168.96.4

7.对指定端口扫描
1
nmap 192.168.96.4 -p <portnumber>;

8.对整个网段的主机进行扫描
1
nmap 192.168.96.1/24

9.对扫描结果另存在myscan.xml
1
nmap 192.168.96.4 -oX myscan.xml

10.设置扫描速度,一般T4足够。
1
nmap -T1~6 192.168.96.4

11.对端口上的服务程序版本进行扫描
1
nmap -sV 192.168.96.4

12.对目标主机的操作系统进行扫描
1
nmap -O 192.168.96.4

13.使用脚本进行扫描,耗时长
1
nmap -sC &#60;scirptfile&#62; 192.168.96.4

14.强力扫描,耗时长
1
nmap -A 192.168.96.4

15.对ipv6地址的主机进行扫描
1
nmap -6 ipv6地址

16.使用小数据包发送,避免被识别出
1
nmap -f 192.168.96.4

17.发送的包大小,最大传输单元必须是8的整数
1
nmap –mtu &#60;size> 192.168.96.4

18.发送参杂着假ip的数据包检测
1
nmap -D &#60;假ip> 192.168.96.4

19.针对防火墙只允许的源端口
1
nmap --source-port &#60;portnumber>

20.改变发生数据包的默认的长度,避免被识别出来是nmap发送的。
1
nmap –data-length: &#60;length> 192.168.96.4

21.显示冗余信息(扫描细节)
1
nmap -v 192.168.96.4

22.对目标进行ping检测,不进行端口扫描(会发送四种报文确定目标是否存活,)
1
nmap -sn 192.168.96.4

23.仅仅对目标进行ping检测。
1
nmap -sP 192.168.96.4

24.-n表示不进行dns解析,-R表示对ip进行dns反向解析
1
nmap -n/-R 192.168.96.4

25.扫描指定系统的dns服务器
1
nmap --system-dns 192.168.96.4

26.追踪每个路由节点。
1
nmap –traceroute 192.168.96.4

27.使用ICMP echo, timestamp, and netmask 请求包发现主机。
1
nmap -PE/PP/PM

  1. 主机存活性扫描,arp直连方式。
    1
    nmap -sP 192.168.96.4
    29.对随机生成number个地址进行扫描。
    1
    nmap -iR [number]