nmap 之初体验

 

  最近接触了nmap。发现namp是很强大工具。。据说美国安全局都在用这个工具可想而知他的功能有多强大。如果看过电影《黑客帝国》你也会发现nmap的身影,如下剧照:

左上图这个电脑屏幕上显示的就是nmap的电脑运行界面。

 

 ===============================================================================================================================================================

nmap的参数比较多,其实也没必要全背下来,把常用的背下一般也就够用了。写这个博客的一个很重要的意义就是方便自己以后忘记时快速查询。            哇咔咔。。。

==========================================================================================================================================================================================================

常用:

Ping扫描(Ping Sweeping) 

 入侵者使用Nmap扫描整个网络寻找目标。通过使用" -sP"命令,进行ping扫描。缺省情况下,Nmap给每个扫描到的主机发送一个ICMP echo和一个TCP ACK, 主机对任何一种的响应都会被Nmap得到。 

举例:扫描192.168.1.0/24网络: 

 # nmap -sP 192.168.1.0/24  

====================================================================================================

端口扫描(Port Scanning) 

 一个攻击者使用TCP连接扫描很容易被发现,因为Nmap将使用connect()系统调用打开目标机上相关端口的连接,并完成三次TCP握手。黑客登录到主机将显示开放的端口。一个tcp连接扫描使用"-sT"命令如下。 

# nmap -sT 192.168.1.152

=====================================================================================================

隐蔽扫描(Stealth Scanning) 

 

如果一个攻击者不愿在扫描时使其信息被记录在目标系统日志上,TCP SYN扫描可帮你的忙,它很少会在目标机上留下记录,三次握手的过程从来都不会完全实现。通过发送一个SYN包(是TCP协议中的第一个包)开始一次 SYN的扫描。任何开放的端口都将有一个SYN|ACK响应。然而,攻击者发送一个RST替代ACK,连接中止。三次握手得不到实现,也就很少有站点能记录这样的探测。如果是关闭的端口,对最初的SYN信号的响应也会是RST,让NMAP知道该端口不在监听。"-sS"命令将发送一个SYN扫描探测主机或网络: 

 ~# nmap -sS 192.168.1.152

 ====================================================================================================

操作系统识别(OS Fingerprinting)  

通常一个入侵者可能对某个操作系统的漏洞很熟悉,能很轻易地进入此操作系统的机器。一个常见的选项是TCP/IP上的指纹,带有"-O"选项决定远程操作系统的类型。这可以和一个端口扫描结合使用,但不能和ping扫描结合使用。Nmap通过向主机发送不同类型的探测信号,缩小查找的操作系统系统的范围。指纹验证TCP包括使用FIN探测技术发现目标机的响应类型。BOGUS的标志探测,发现远程主机对发送的带有SYN包的不明标志的反应,TCP 初始序列号(ISN)取样发现ISN数值的样式,也可以用另外的方式决定远程操作系统。有一篇权威的关于指纹(fingertprinting)的文章作者:Fyodor,也是namp的作者,参见地址:http://www.insecure.org/nmap/nmap-fingerprinting-article.html 

 Nmap's操作系统的检测是很准确也是很有效的,举例:使用系统Solaris 2.7带有SYN扫描的指纹验证堆栈。 

# nmap -sS -O 192.168.1.109

 =========================================================================================================================================================================================================

参数:

端口扫描

 

端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。

默认情况下,Nmap会扫描1000个最有可能开放的TCP端口。

Nmap通过探测将端口划分为6个状态:

  1. open:端口是开放的。
  2. closed:端口是关闭的。
  3. filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
  4. unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。
  5. open|filtered:端口是开放的或被屏蔽。
  6. closed|filtered :端口是关闭的或被屏蔽。

  扫描方式选项

  1. -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。  
  2. -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。  
  3. -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。  
  4. --scanflags <flags>: 定制TCP包的flags。  
  5. -sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)  
  6. -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。  
  7. -sO: 使用IP protocol 扫描确定目标机支持的协议类型。  
  8. -b <FTP relay host>: 使用FTP bounce scan扫描方式  

  -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。

  -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。

  -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。

  --scanflags <flags>: 定制TCP包的flags。

  -sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)

  -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。

  -sO: 使用IP protocol 扫描确定目标机支持的协议类型。

  -b <FTP relay host>: 使用FTP bounce scan扫描方式

 

端口参数与扫描顺序

  1. -p <port ranges>: 扫描指定的端口  
  2. 实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)  
  3. -F: Fast mode – 快速模式,仅扫描TOP 100的端口  
  4. -r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。  
  5. --top-ports <number>:扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)  
  6. --port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件。  

 

版本侦测的用法

  1. -sV: 指定让Nmap进行版本侦测  
  2. --version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。  
  3. --version-light: 指定使用轻量侦测方式 (intensity 2)  
  4. --version-all: 尝试使用所有的probes进行侦测 (intensity 9)  
  5. --version-trace: 显示出详细的版本侦测过程信息。  

 

 

 OS侦测用法

  1. -O: 指定Nmap进行OS侦测。  
  2. --osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。  
  3. --osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统。  

 

 

 =========================================================================================================================================================================================================

 Nmap高级用法

   防火墙/IDS规避

 

 

规避用法

  1. -f; --mtu <val>: 指定使用分片、指定数据包的MTU.  
  2. -D <decoy1,decoy2[,ME],...>: 用一组IP地址掩盖真实地址,其中ME填入自己的IP地址。  
  3. -S <IP_Address>: 伪装成其他IP地址  
  4. -e <iface>: 使用特定的网络接口  
  5. -g/--source-port <portnum>: 使用指定源端口  
  6. --data-length <num>: 填充随机数据让数据包长度达到Num。  
  7. --ip-options <options>: 使用指定的IP选项来发送数据包。  
  8. --ttl <val>: 设置time-to-live时间。  
  9. --spoof-mac <mac address/prefix/vendor name>: 伪装MAC地址  
  10. --badsum: 使用错误的checksum来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或IDS/IPS)。  

 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

实例解析:

1.

如果希望对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了该选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。

命令形式:

nmap –T4 –A –v targethost

其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。

2.

nmap –sS –sU –T4 –top-ports 300 192.168.1.100

参数-sS表示使用TCP SYN方式扫描TCP端口;-sU表示扫描UDP端口;-T4表示时间级别配置4级;--top-ports 300表示扫描最有可能开放的300个端口(TCP和UDP分别有300个端口)。

3.

nmap –sV 192.168.1.100

对主机192.168.1.100进行版本侦测。

4.

nmap -v -F -Pn -D192.168.1.100,192.168.1.102,ME -e eth0 -g 3355 192.168.1.1

其中,-F表示快速扫描100个端口;-Pn表示不进行Ping扫描;-D表示使用IP诱骗方式掩盖自己真实IP(其中ME表示自己IP);-e eth0表示使用eth0网卡发送该数据包;-g 3355表示自己的源端口使用3355;192.168.1.1是被扫描的目标IP地址。

 

posted @ 2015-11-13 21:34  Szm--追梦屌丝man  阅读(635)  评论(0编辑  收藏  举报