资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Nmap 扫描原理与用法 2012年6月16日1 Nmap介绍Nmap是一款开源免费的网络发现(Network Discovery)(Security Auditing)工具。软件名字 Nmap是 Network Mapper的简称。Nmap最初是由 Fyodor在 1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。最新版的 Nmap6.0在 2012年 5月 21日发布,详情请参见:www.nmap.org。一般情况下,Nmap用于列举网络主机清单、管理服、监控主机或服状况。Nmap 可以检测目标机是否在线、端口开放情况、侦测运行的服侦测操作系统与设备类型等信息。、Nmap的优点:1. 灵活。支持数十种不同的扫描方式,支持多种目标对象的扫描。2. 强大。Nmap可以用于扫描互联网上大规模的计算机。3. 可移植。支持主流操作系统:Windows/Linux/Unix/Mac OS 等等;源码开放,方便移植。4. 简单。提供默认的操作能覆盖大部分扫描 nmap A targetip。,基本端口扫描 nmap targetip,全面的5. 自由。Nmap作为开源软件,在 GPL License的范围内可以自由的使用。6. 文档丰富。Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部 Nmap参考书籍。7. 社区支持。Nmap背后有强大的社区团队支持。8. 赞誉有 。获得很多的奖 ,并在很多影视作(如黑客帝国 2、Die Hard4等)。9. 流行。目 Nmap已经被成千上万的安全专家列为必备的工具之一。1.1 Zenmap Zenmap 是 Nmap 官方提供的图形界面,通常随 Nmap 的安装。Zenmap 是用Python 语言编写而成的开源免费的图形界面,能够运行在不同操作系统平台上(Windows/Linux/Unix/Mac OS等)。Zenmap旨在为 nmap提供更方式。简单常用的操作profile,用户扫描时选择 profile 即可;可以方便地比较不同的扫描结果;提供网络拓扑结构(Network Topology)的图形显示。1 / 23 其中 Profile栏位,用于选择“Zenmap默认提供的 Profile”或“用户创建的 Profile”;Command栏位,用于显示选择 Profile对应的 ;Topology选项卡,用于显示扫描与本机之间的拓扑结构。2 / 23 1.2Nmap:1) 主机发现(Host Discovery)2) 端口扫描(Port Scanning)3) 版本侦测(Version Detection)4) 操作系统侦测(Operating System Detection)而这四项,又存在大致的依赖关系(通常情况下的顺序关系,但特殊应用另外考虑),首先需要进行主机发现,随后确定端口状况,然后确定端口上运行具体应用程序与版本信息,然后可以进行操作系统的侦测。而在四项基本,Nmap提供防火墙与 IDS(Intrusion Detection System,入侵检测系统)的规避技巧,可以综合应用;另外 Nmap提供强大的 NSE(Nmap Scripting Language)脚本引擎本能,脚本可以对基本。3 / 23 2Nmap基本扫描方法Nmap主要扫描,主机发现、端口扫描、应用与版本侦测、操作系统侦测。在详细讲解每个具体,首先可以看看 Nmap的典型用法。2.1 用法引入2.1.1 确定端口状况如果直接针对某台计算的 IP地址或域名进行扫描,那么 Nmap对该主机进行主机发现。该方式执行迅速,可以用于确定端口的开放状况。形式:过程nmap targethost 可以确定目标主机在线情况及端口基本状况。2.1.2 完整全面的扫描如果希望对某台主机进行完整全面的扫描,那么可以使用 nmap 内置的-A 选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认 NSE脚本扫描。:nmap T4 A v targethost 4 / 23 其中-A 选项用于使用进攻性(Aggressive)方式扫描;-T4 指定扫描过程使用的时序(Timing),总有 6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或 IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用 T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当 的扫描状态。例如,扫描局域网内地址为 192.168.1.100的电脑。显而易见,扫描出的信息非常丰富,在对192.168.1.100的扫描报端口扫描出的结果,有 996个关闭端口,4个开放端口(在未指定扫描端口时,Nmap默认扫描 1000 个最有可能开放的端口);而版本侦测针对扫描;OS侦测对该目标主机的设备类型与操作系统进行探测;中(以红框圈出),可以看 主机发现的结果“Host is up”;探测端口上运行的具体的应用程序而绿色框图是 nmap调用 NSE脚本进行进一步的信息挖掘的显示结果。2.2主机发现主机发现(Host Discovery),即用于发现目标主机是否在线(Alive,处于开2.2.1 主机发现原理)。主机发现发现的原理与 Ping类似,发送探测,如果收,那么说明目标主机是开。Nmap 支持十多种不同的主机探测方式,比如发送 ICMP5 / 23 ECHO/TIMESTAMP/NETMASK 报 文 、 发 送 TCP SYN/ACKINIT/COOKIE-ECHOSCTP目标机。主机发现基本原理:(以 ICMP echo方式为例)Nmap的用户位于源端,IP地址 192.168.0.5,向目标主机 192.168.0.3发送 ICMP EchoRequest。如果该请求报文没有被防火墙拦截掉,那么目标机会回复 ICMP Echo Reply回来。以此来确定目标主机是否在线。默认情况下,Nmap会发送四种不同类型的数据。1.2.3.4.ICMP echo requesta TCP SYN packet to port 443a TCP ACK packet to port 80an ICMP timestamp request依次发送四个报文探测目标机是否开 。只要收,那就证明目标机。开 。使用四种不同类型的数据避免因防火墙或丢2.2.2 主机发现的用法通常主机发现并不单独使用,而只是作为端口扫描、版本侦测、OS侦测先行步骤。而在某些特殊应用(例如确定大型局域网内活。),可能会单独专门适用主机发现不管是作为辅还是专门用途,用户都可以使用 Nmap 提供的丰富的选项来定主机发现的探测方式。-sL: List Scan 列表扫描,仅将指定的目标的 IP列举出来,不进行主机发现。-sn: Ping Scan 只进行主机发现,不进行端口扫描。-Pn: 将所有指定的主机视作开,跳过主机发现的过程。-PS/PA/PU/PYportlist: 使用 TCP SYN/ACK或 SCTP INIT/ECHO方式进行发现。-PE/PP/PM: 使用 ICMP echo, timestamp, and netmask 请求。-POprotocol list: 使用 IP协议对方主机是否开 。-n/-R: -n表示不进行 DNS解析;-R表示总是进行 DNS解析。-dns-servers : 指定 DNS服-system-dns: 指定使用系统的 DNS服-traceroute: 追踪每个路由节点。其中,比较常用的使用的是-sn,表示只单独进行主机发现过程;-Pn 表示直接跳过主机发现而进行端口扫描等高级操作(如果已经确知目标主机已经开 ,可用该选项);-n,如果不想使用 DNS或 reverse DNS解析,那么可以使用该选项。6 / 23 2.2.3 使用演示探测 scanme.nmap.org下面以探测 scanme.nmap.org 的主机为例,简单演示主机发现的用法。如下:nmap sn PE PS80,135 PU53 scanme.nmap.org使用 Wireshark抓 ,我们看 ,scanme.nmap.org 的 IP地址 182.140.147.57发送了四个探测 :ICMP Echo,80 135端口的TCP SYN53端口的UDPDNS domain)。而收ICMP Echo的回复与80端口的回复。从而确定了scanme.nmap.org主机正常在线。探测局域网内活扫描局域网 192.168.1.100-192.168.1.120范围内IP的主机是活。:nmap sn 192.168.1.100-120 7 / 23 从结果中,可以看IP范围内有三台主机处于活。从 Wireshark抓取的,可以看:在局域网内,Nmap是通过 ARP询问 IP地址上的主机是否活,如果收ARP回复 ,那么说明主机在线。例如,某条 ARP回复的报文详细信息如下:2.3端口扫描端口扫描是 Nmap 最基本最核心的,用于确定目标主机的 TCP/UDP 端口的开放情况。默认情况下,Nmap会扫描 1000个最有可能开放的 TCP端口。8 / 23 Nmap通过探测将端口划分为 6个状态:1.2.3.4.5.6.open:端口是开放的。closed:端口是关闭的。filtered:端口被防火墙 IDS/IPS屏蔽,无法确定其状态。unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。open|filtered:端口是开放的或被屏蔽。closed|filtered :端口是关闭的或被屏蔽。2.3.1 端口扫描原理Nmap在端口扫描方面非常强大,提供了十多种探测方式。2.3.1.1 TCP SYN scanning这是 Nmap默认的扫描方式,通常被称作半开放扫描(Half-open scanning)。该方式发送 SYN,如果收SYN/ACK回复,那么判断端口是开放的;如果收RST。如果没有收,那么判断该端口被屏蔽(Filtered)。因为该,但不建立的完整的 TCP 连接,所以相对比较方式仅发送 SYN隐蔽,而且效率比较高,适用范围广。TCP SYN探测:TCP SYN探测:2.3.1.2TCP conne
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号