描述
nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,Xmas Tree, SYN sweep, 和Null扫描。你可以从SCAN TYPES一节中察看相关细节。nmap还提供一些实用功能如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。
对非ROOT的用户来说,nmap的正式版可以做很多重要的东西了。不幸的是部份关键的核心功能(比如raw sockets)需要root权限。所以尽量以root的身份运行nmap。
运行nmap后通常会得到一个关于你扫描的机器的一个实用的端口列表。nmap总是显示该服务的服务名称,端口号,状态以及协议。状态有'open','filtered'和'unfiltered'三种。'open'指的是目标机器将会在该端口接受你的连接请求。'filtered'指的是有防火墙、过滤装置或者其它的网络障碍物在这个端口阻挡了nmap 进一步查明端口是否开放的动作。至于'unfiltered'则只有在大多数的扫描端口都处在'filtered'状态下才会出现的。
根据选项的使用,nmap还可以报告远程主机下面的特性:使用的操作系统、TCP连续性、在各端口上绑定的应用程序用户的用户名、DNS名、主机是否是个smurf地址以及一些其它功能。
选项
----*
这些选项通常都是可组合使用的。使用参数可以精确地定义一个扫描模式。nmap将会尽力捕捉并对不规范的参数组合作出提示。如果你急于开始,你可以跳过本文未尾的示例节——那儿有最基本的使用方法的示范。你也可以使用nmap -h来打开关于nmap选项参数的简介。
nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,Xmas Tree, SYN sweep, 和Null扫描。你可以从SCAN TYPES一节中察看相关细节。nmap还提供一些实用功能如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。
对非ROOT的用户来说,nmap的正式版可以做很多重要的东西了。不幸的是部份关键的核心功能(比如raw sockets)需要root权限。所以尽量以root的身份运行nmap。
运行nmap后通常会得到一个关于你扫描的机器的一个实用的端口列表。nmap总是显示该服务的服务名称,端口号,状态以及协议。状态有'open','filtered'和'unfiltered'三种。'open'指的是目标机器将会在该端口接受你的连接请求。'filtered'指的是有防火墙、过滤装置或者其它的网络障碍物在这个端口阻挡了nmap 进一步查明端口是否开放的动作。至于'unfiltered'则只有在大多数的扫描端口都处在'filtered'状态下才会出现的。
根据选项的使用,nmap还可以报告远程主机下面的特性:使用的操作系统、TCP连续性、在各端口上绑定的应用程序用户的用户名、DNS名、主机是否是个smurf地址以及一些其它功能。
选项
----*
这些选项通常都是可组合使用的。使用参数可以精确地定义一个扫描模式。nmap将会尽力捕捉并对不规范的参数组合作出提示。如果你急于开始,你可以跳过本文未尾的示例节——那儿有最基本的使用方法的示范。你也可以使用nmap -h来打开关于nmap选项参数的简介。
扫描类型
--------*
-sT TCP connect()扫描:这是对TCP的最基本形式的侦测。在该操作下,该connect()对目标主机上你感兴趣的端口进行试探,如果该端口被监听,则连接成功——否则代表这个端口无法到达。这个技术的很大好处就是你无须任何特殊权限,在大多数的UNIX系统下这个命令可以被任何人自由地使用。
但是这种形式的探测很容易被目标主机察觉并记录下来。因为服务器接受了一个连接但它却马上断开,于是其记录会显示出一连串的连接及错误信息。
-sS TCP SYN 扫描:这类技术通常涉及一种“半开”式的扫描——因为你不打开完整的TCP连接,你发送一个SYN信息包就象你要打开一个真正的连接而且你在等待对方的回应。一个SYN│ACK(应答)会表明该端口是开放监听的。一个RST(空闲?)则代表该端口未被监听。如果SYN│ACK的回应返回,则会马上发送一个RST包来中断这个连接(事实上是我们的系统核心在干这事)。这种扫描的最大好处是只有极少的站点会对它作出记录,但是——你需要有root权限来定制这些SYN包。
-sF -sX -sN
Stealth FIN,Xmas Tree 或者Null扫描模式:有时甚至SYN扫描都不够隐蔽——一些防火墙及信息包过滤装置会在重要端口守护,SYN包在此时会被截获,一些应用软件如Synlogger以及Courtney对侦测这类型的扫描都是行家。所以呢,在另一方面要有更进一步的扫描能在不遇到麻烦的情况下通过它们……
这个主意是关闭的端口会对你发送的探测信息包返回一个RST,而打开的端口则对其忽略不理(你可以参阅RFC 973 PP64)。所以FIN扫描使用空的FIN信息包作为探针、Xmas tree使用FIN,URG,PUSH标记、Null扫描则不用任何标记。但是不幸的是微软以他们一贯的风格不理睬这一标准……所以这一扫描在WINDOWS9X以及NT下不能工作。
从积极方面来讲,这其实也是一个很好的区分两种平台的办法——如果这次扫描发现了打开的端口,那你就能明白这台机器不是运行WINDOWS。如果-sF,-sX,-sN的扫描显示所有端口都是关闭的但一个SYN(-sS)扫描却显示有打开端口,那你就能大致推断它是WINDOWS平台。这只是一个简单应用,因为现在nmap已经有了更彻底的操作系统判别方法——当然它的原理类似上面所提到的.
这些平台包括Cisco, BSDI, HP/UX, MVS, 和IRIX。
-sP
Ping扫描:有时你仅希望了解网络上有哪些主机是开放的,nmap可以通过对你指定的IP地址发送ICMP的echo request信息包来做到这一点,有回应的主机就是开放的啦。但令人讨厌的是一些站点比如microsoft.com对echo request包设置了障碍。这样的话nmap还能发送一个TCP ack包到80端口(默认),如果获得了RST返回,机器是开放的。第三个方法是发送一个SYN信息包并等待RST 或SYN/ACK响应了。作为非root的用户可以使用的,常用connect()模式。对root来说,默认的nmap同时使用ICMP和ACK的方法扫描,当然你也可以改变-P选项。注意你最好先ping一下用户,只有有回应的主机才有必要扫描,只有你不想探测任何的实际端口扫描只想大面积地搜索一下活动的主机,你可以使用此选项。
--------*
-sT TCP connect()扫描:这是对TCP的最基本形式的侦测。在该操作下,该connect()对目标主机上你感兴趣的端口进行试探,如果该端口被监听,则连接成功——否则代表这个端口无法到达。这个技术的很大好处就是你无须任何特殊权限,在大多数的UNIX系统下这个命令可以被任何人自由地使用。
但是这种形式的探测很容易被目标主机察觉并记录下来。因为服务器接受了一个连接但它却马上断开,于是其记录会显示出一连串的连接及错误信息。
-sS TCP SYN 扫描:这类技术通常涉及一种“半开”式的扫描——因为你不打开完整的TCP连接,你发送一个SYN信息包就象你要打开一个真正的连接而且你在等待对方的回应。一个SYN│ACK(应答)会表明该端口是开放监听的。一个RST(空闲?)则代表该端口未被监听。如果SYN│ACK的回应返回,则会马上发送一个RST包来中断这个连接(事实上是我们的系统核心在干这事)。这种扫描的最大好处是只有极少的站点会对它作出记录,但是——你需要有root权限来定制这些SYN包。
-sF -sX -sN
Stealth FIN,Xmas Tree 或者Null扫描模式:有时甚至SYN扫描都不够隐蔽——一些防火墙及信息包过滤装置会在重要端口守护,SYN包在此时会被截获,一些应用软件如Synlogger以及Courtney对侦测这类型的扫描都是行家。所以呢,在另一方面要有更进一步的扫描能在不遇到麻烦的情况下通过它们……
这个主意是关闭的端口会对你发送的探测信息包返回一个RST,而打开的端口则对其忽略不理(你可以参阅RFC 973 PP64)。所以FIN扫描使用空的FIN信息包作为探针、Xmas tree使用FIN,URG,PUSH标记、Null扫描则不用任何标记。但是不幸的是微软以他们一贯的风格不理睬这一标准……所以这一扫描在WINDOWS9X以及NT下不能工作。
从积极方面来讲,这其实也是一个很好的区分两种平台的办法——如果这次扫描发现了打开的端口,那你就能明白这台机器不是运行WINDOWS。如果-sF,-sX,-sN的扫描显示所有端口都是关闭的但一个SYN(-sS)扫描却显示有打开端口,那你就能大致推断它是WINDOWS平台。这只是一个简单应用,因为现在nmap已经有了更彻底的操作系统判别方法——当然它的原理类似上面所提到的.
这些平台包括Cisco, BSDI, HP/UX, MVS, 和IRIX。
-sP
Ping扫描:有时你仅希望了解网络上有哪些主机是开放的,nmap可以通过对你指定的IP地址发送ICMP的echo request信息包来做到这一点,有回应的主机就是开放的啦。但令人讨厌的是一些站点比如microsoft.com对echo request包设置了障碍。这样的话nmap还能发送一个TCP ack包到80端口(默认),如果获得了RST返回,机器是开放的。第三个方法是发送一个SYN信息包并等待RST 或SYN/ACK响应了。作为非root的用户可以使用的,常用connect()模式。对root来说,默认的nmap同时使用ICMP和ACK的方法扫描,当然你也可以改变-P选项。注意你最好先ping一下用户,只有有回应的主机才有必要扫描,只有你不想探测任何的实际端口扫描只想大面积地搜索一下活动的主机,你可以使用此选项。
[1] [2]
责任编辑 webmaster





