### 第一段:工具定位 \*\* 用途:\*\* 渗透测试信息收集阶段的标准端口测绘工具,用于探测目标主机的存活状态、开放端口、运行服务及版本、操作系统类型,并可通过 NSE 脚本做初步漏洞识别。 \*\* 战场阶段:\*\* 信息收集(端口 / 服务测绘) ### 第二段:开发语言 核心扫描引擎由 C 语言编写。NSE(Nmap Scripting Engine)扩展脚本使用 Lua。底层依赖两个 C 网络库: * **libpcap**:捕获经过网卡的响应报文(同 tcpdump/Wireshark 的抓包底层) * **libdnet/libnet**:构造和发送原始报文 SYN 扫描、操作系统探测等底层功能必须 root 权限(要开 raw socket)。普通用户只能做全连接扫描。 ### 第三段:调用链路 **3.1 全链路流程图(以 SYN 扫描 -sS 为例)** ``` # 调用链路图:nmap -sS 从命令行一路落到内核发包与抓包,每一步都标出函数与系统调用 nmap -sS <靶机IP>(命令行参数) # -sS 是半