文档介绍:nmap 使用手册 摘要 nmap 是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络, 获取那台主机正在运行以及提供什么服务等信息。 nmap 支持很多扫描技术,例如: UDP 、 TCP connect() 、 TCP SYN( 半开扫描)、 ftp 代理(bounce 攻击)、反向标志、 ICMP 、 FIN 、 ACK 扫描、圣诞树(Xmas Tree) 、 SYN 扫描和 null 扫描。从扫描类型一节可以得到细节。 nmap 还提供了一些高级的特征,例如:通过 TCP/IP 协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行 ping 扫描探测关闭的主机,诱饵扫描, 避开端口过滤检测, 直接 RPC 扫描( 无须端口影射), 碎片扫描, 以及灵活的目标和端口设定. ----------------------------------------------------------- -------------------- 1. 名称 nmap- 网络探测和安全扫描工具 2. 语法 nmap 3. 描述 nmap 是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络, 获取那台主机正在运行以及提供什么服务等信息。 nmap 支持很多扫描技术,例如: UDP 、 TCP connect() 、 TCP SYN( 半开扫描)、 ftp 代理(bounce 攻击)、反向标志、 ICMP 、 FIN 、 ACK 扫描、圣诞树(Xmas Tree) 、 SYN 扫描和 null 扫描。从扫描类型一节可以得到细节。 nmap 还提供了一些高级的特征,例如:通过 TCP/IP 协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行 ping 扫描探测关闭的主机,诱饵扫描, 避开端口过滤检测, 直接 RPC 扫描( 无须端口影射), 碎片扫描, 以及灵活的目标和端口设定。为了提高 nmap 在 non-root 状态下的性能, 软件的设计者付出了很大的努力。很不幸,一些内核界面( 例如 raw socket) 需要在 roo t 状态下使用。所以应该尽可能在 root 使用 nmap 。 nmap 运行通常会得到被扫描主机端口的列表。 nmap 总会给出 well known 端口的服务名( 如果可能) 、端口号、状态和协议等信息。每个端口的状态有: open 、 filtered 、 unfiltered 。 open 状态意味着目标主机能够在这个端口使用 accept() 系统调用接受连接。 filtered 状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口, 禁止 nmap 探测其是否打开。 unfiltered 表示: 这个端口关闭, 并且没有防火墙/ 包过滤软件来隔离 nmap 的探测企图。通常情况下,端口的状态基本都是 unfiltered 状态,只有在大多数被扫描的端口处于 filtere d 状态下, 才会显示处于 unfiltere d 状态的端口。根据使用的功能选项, nmap 也可以报告远程主机的下列特征: 使用的操作系统、 TCP 序列、运行绑定到每个端口上的应用程序的用户名、 DNS 名、主机地址是否是欺骗地址、以及其它一些东西。 4. 功能选项功能选项可以组合使用。一些功能选项只能够在某种扫描模式下使用。 nmap 会自动识别无效或者不支持的功能选项组合,并向用户发出警告信息。如果你是有经验的用户,可以略过结尾的示例一节。可以使用 nmap -h 快速列出功能选项的列表。 扫描类型-sT TCP connect() 扫描:这是最基本的 TCP 扫描方式。 connect() 是一种系统调用, 由操作系统提供, 用来打开一个连接。如果目标端口有程序监听, connect() 就会成功返回, 否则这个端口是不可达的。这项技术最大的优点是, 你勿需 root 权限。任何 UNIX 用户都可以自由使用这个系统调用。这种扫描很容易被检测到, 在目标主机的日志中会记录大批的连接请求以及错误信息。-sS TCP 同步扫描(TCP SYN) :因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开扫描(half-open) 。你可以发出一个 TCP 同步包(SYN) ,然后等待回应。如果对方返回 SYN|ACK( 响应) 包就表示目标端口正在监听; 如果返回 RST 数据包, 就表示目标端口没有监听程序;如果收到一个 SYN|ACK 包,源主机就会马上发出一个 RST( 复位) 数据包断开和目标主机的连接,这实际上有我们的操作系统内核自动完成的。这项技术最大的好处是, 很