Nmap

172 阅读4分钟

官网

nmap.org/ 下载地址:nmap.org/download.ht…

介绍

Nmap(Network Mapper)是一个开源的网络扫描和安全审计工具,用于发现网络上的主机、服务和安全漏洞。它被广泛用于网络管理、系统维护以及安全测试。

基本原理

  1. 发送 ICMP Echo 请求(ping 请求)到目标主机。
  2. TCP半开扫描:Nmap 发送 SYN 包并监控响应,而不完成 TCP 握手。Nmap 向目标主机的特定端口发送 TCP SYN 包。如果目标端口开放,主机会发送 SYN-ACK 响应;如果端口关闭,主机会发送 RST 响应;如果没有响应,则主机可能离线或被防火墙阻止。
  3. TCP全开扫描:发送 TCP ACK 包到目标主机。根据主机的响应可以判断是否在线
  4. 局域网ARP请求:发送 ARP 请求到子网中的 IP 地址。
  5. 服务探测:确认主机在线后,Nmap 会向开放端口发送特定的数据包,根据返回的响应分析服务类型和版本。
  6. 操作系统识别:Nmap 会分析响应的 TCP/IP 堆栈特征来推测操作系统。通过检测: TTL(生存时间) :不同操作系统设置的 TTL 值不同。 窗口大小标志位等 TCP/IP 头信息。

功能介绍

主机发现:识别网络上的设备,确定哪些主机处于在线状态。

主机发现探测方式:
  • ICMP Echo 请求(ping): 通过发送 ICMP Echo 请求来检查主机是否在线。
  • TCP 半开扫描: 发送 TCP SYN 包,如果得到 SYN-ACK 响应,则主机在线。
  • TCP 全开扫描: 完成 TCP 握手(SYN-ACK-ACK),确认主机及其端口的状态。
  • ARP 邻居探测: 在局域网中使用 ARP 请求识别在线主机。

端口扫描:检测主机上开放的端口,确定运行的服务和协议。例如,检查 HTTP、FTP、SSH 等服务是否在特定端口上运行。

端口探测方式:
  • TCP 半开扫描: 发送 SYN 包,获取响应来判断端口是否开放。
  • TCP 全开扫描: 完成整个 TCP 握手过程,以确认端口状态。
  • UDP 扫描: 通过发送 UDP 数据包到指定端口,检查是否有响应来判断端口开放情况。

服务探测:获取运行在开放端口上的服务版本信息,以便识别潜在的漏洞。

服务探测方式

向开放的端口发送特定的数据包,分析返回的数据以识别运行的服务及其版本。例如,发送 HTTP 请求来获取网页标题。

nmap -sV -p 80,443 <目标IP>
# Nmap 发送 HTTP 请求到 80(HTTP)和 443(HTTPS)端口。根据返回的 HTTP 头信息,Nmap 能识别出运行的 Web 服务器(如 Apache、Nginx、IIS 等)及其版本

操作系统识别:通过分析网络响应,Nmap 可以猜测目标主机的操作系统及其版本。

发送特定的数据包(如 TCP SYN、ACK 等),然后分析返回的 TCP/IP 堆栈特征(如 TTL、窗口大小、标志位等)来推测操作系统。

  • 安全漏洞扫描:结合脚本引擎(NSE),Nmap 可以用于扫描已知的漏洞和不安全的配置。

  • 网络拓扑映射:生成网络设备的结构图,帮助理解网络的拓扑结构。

常用端口和服务

端口号服务名称协议描述
20FTP (数据)TCP文件传输协议的数据传输端口
21FTP (控制)TCP文件传输协议的控制端口
22SSHTCP安全外壳协议,用于安全远程登录
23TelnetTCP非加密的远程登录协议
25SMTPTCP简单邮件传输协议
53DNSTCP/UDP域名系统,用于域名解析
67DHCP (服务器)UDP动态主机配置协议,服务器端口
68DHCP (客户端)UDP动态主机配置协议,客户端端口
80HTTPTCP超文本传输协议,网页服务
110POP3TCP邮局协议版本3,邮件接收服务
143IMAPTCPInternet邮件访问协议
443HTTPSTCP安全超文本传输协议,安全网页服务
3306MySQLTCPMySQL 数据库服务
3389RDPTCP远程桌面协议
5432PostgreSQLTCPPostgreSQL 数据库服务
6379RedisTCPRedis 内存数据库服务
8080HTTP (替代)TCP常用于网页服务的替代端口
  • 21:FTP(文件传输协议)

  • 22:SSH(安全外壳协议)

  • 23:Telnet(非加密远程登录协议) Telnet 使用户能够在本地计算机上输入命令,这些命令会通过网络发送到远程计算机,远程计算机会执行这些命令并返回结果。

  • 25:SMTP(简单邮件传输协议)

  • 110:POP3(邮局协议版本3)

  • 143:IMAP(Internet邮件访问协议)