码迷,mamicode.com
首页 > 其他好文 > 详细

nmap 之初体验

时间:2015-11-13 22:19:25      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

 

  最近接触了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地址。

 

nmap 之初体验

标签:

原文地址:http://www.cnblogs.com/szm666888/p/4963306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!