|
|
|
联系客服020-83701501

Nmap扫描原理与用法(上)

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
Nmap扫描原理与用法(上)

1?????Nmap介绍

 

Nmap扫描原理与用法PDF:下载地址

Nmap是1款开源免费的网络缔造(Network Discovery)和安全审计(Security Auditing)东西。软件名字Nmap是Network Mapper的简称。Nmap着末是由Fyodor在1九97年开草构建的。随后在开源社区泛滥的志愿者加入下,该东西垂垂成为最为盛行安全必备东西之1。最新版的Nmap6.0在2012年5月21日颁布,外面请参见:www.nmap.org。

1般情况下,Nmap用于摆列网络主机清单、管理效能升级安置、监控主机或效能运行环境。Nmap或者检测目标机可否在线、端口倒退腐败情况、侦测运行的效能榜样及版本音讯、侦测使用零碎与装备榜样等音讯。

Nmap的长处:

1.??????灵动。支持数十种分歧的扫描要领,支持多种目标东西的扫描。

2.??????壮大。Nmap或者用于扫描互联网上大范围的算计机。

3.??????可移植。支持干流使用零碎:Windows/Linux/Unix/MacOS等等;源码倒退腐败,等闲移植。

4.??????繁杂。提供默认的使用能覆盖大部门遵守,根蒂端口扫描nmap targetip,周全的扫描nmap –A targetip。

5.??????自由。Nmap作为开源软件,在GPL License的范围内或者自由的垄断。

6.??????文档丰富。Nmap官网提供了具体的文档形容。Nmap作者及其它安全专家编写了多部Nmap参考书籍。

7.??????社区支持。Nmap当面有壮大的社区团队支持。

八.??????责罚有加。失掉良多的惩治,并在良多影视作品中出现(如黑客帝国2、Die Hard4等)。

九.??????盛行。目前Nmap已经被不计其数的安全专家列为必备的东西之1。

 

1.1????Zenmap

Zenmap是Nmap官方提供的图形界面,个别随Nmap的安置包颁布。Zenmap是用Python语言编写而成的开源免费的图形界面,大要运行在分歧使用零碎平台上(Windows/Linux/Unix/Mac OS等)。Zenmap旨在为nmap提供愈加繁杂的使用要领。繁杂经常使用的使用号令或者保存成为profile,用户扫描时选择profile便可;或者等闲地对比分歧的扫描了局;提供网络拓扑构造(NetworkTopology)的图形展示遵守。

 

其中Profile栏位,用于选择“Zenmap默认提供的Profile”或“用户构建的Profile”;Co妹妹and栏位,用于展示选择Profile对应的号令也许用户自行指定的号令;Topology选项卡,用于展示扫描到的目标机与本机之间的拓扑构造。

1.2????遵守架构图

Nmap席卷4项根蒂遵守:

  1. 主机缔造(Host Discovery)
  2. 端口扫描(Port Scanning)
  3. 版本侦测(Version Detection)
  4. 使用零碎侦测(Operating System Detection)

而这4项遵守之间,又具有简陋的依赖相关(个别情况下的程序相关,但不凡垄断其它思虑),起首需要进行主机缔造,随后必定端口环境,而后必定端口上运行具体垄断程序与版本音讯,而后或者进行使用零碎的侦测。而在4项根蒂遵守的根蒂上,Nmap提供防火墙与IDS(IntrusionDetection System,入侵检测零碎)的规避本事,或者赏析垄断到4个根蒂遵守的各个阶段;其它Nmap提供壮大的NSE(Nmap Scripting Language)剧本引擎遵守,剧本或者对根蒂遵守进行填补和扩展。

 

 

2?????Nmap根蒂扫描要领

Nmap主要包括4个方面的扫描遵守,主机缔造、端口扫描、垄断与版本侦测、使用零碎侦测。在具体讲解每一个具体遵守已往,起首或者看看Nmap的典范用法。

2.1????用法引入

2.1.1????必定端口环境

如果间接针对某台算计的IP地址或域名进行扫描,那末Nmap对该主机进行主机缔造过程和端口扫描。该要领履行麻利,或者用于必定端口的倒退腐败环境。

号令形式:

nmap targethost

或者必定目标主机在线情况及端口根蒂环境。

2.1.2????残破周全的扫描

如果巴望对某台主机进行残破周全的扫描,那末或者垄断nmap内置的-A选项。垄断了改选项,nmap对目标主机进行主机缔造、端口扫描、垄断程序与版本侦测、使用零碎侦测及调用默认NSE剧本扫描。

号令形式:

nmap –T4 –A –v targethost

其中-A选项用于垄断冲击性(Aggressive)要领扫描;-T4指定扫描过程垄断的时序(Timing),总有6个级别(0-5),级别越高,扫描速率越快,但也繁杂被防火墙或IDS检测并屏蔽掉,在网络通讯环境优美的情况保举垄断T4;-v显露展示冗余(verbosity)音讯,在扫描过程当中展示扫描的细节,从而让用户认识以后的扫描形状。

例如,扫描局域网边疆址为1九2.16八.1.100的电脑。不问可知,扫描出的音讯很是丰富,在对1九2.16八.1.100的扫描讲演部门中(以红框圈出),或者看到主机缔造的了局“Host is up”;端口扫描出的了局,有九96个封闭端口,4个倒退腐败端口(在未指定扫描端口时,Nmap默认扫描1000个最有概略倒退腐败的端口);而版本侦测针对扫描到的倒退腐败环境进1步探测端口上运行的具体的垄断程序和版本音讯;OS侦测对该目标主机的装备榜样与使用零碎进行探测;而绿色框图是nmap调用NSE剧本进前进1步的音讯开掘的展示了局。

 

2.2????主机缔造

主机缔造(Host Discovery),即用于缔造目标主机可否在线(Alive,处于关闭形状)。

2.2.1????主机缔造原理

主机缔造发现的原理与Ping号令相通,发送探测包到目标主机,如果收到回复,那末阐明目标主机是关闭的。Nmap支持十多种分歧的主机探测要领,比方发送ICMP ECHO/TIMESTAMP/NETMASK报文、发送TCPSYN/ACK包、发送SCTP INIT/COOKIE-ECHO包,用户或者在分歧的前提下灵动选用分歧的要领来探测目标机。

主机缔造根蒂原理:(以ICMP echo要领为例)

Nmap的用户位于源端,IP地址1九2.16八.0.5,向目标主机1九2.16八.0.3发送ICMP Echo Request。如果该请求报文不有被防火墙拦挡掉,那末目标机遇回复ICMP Echo Reply包回来。以此来必定目标主机可否在线。

默认情况下,Nmap会发送4种分歧榜样的数据包来探测目标主机可否在线。

1.????? ICMP echo request

2.????? a TCP SYN packet to port 443

3.????? a TCP ACK packet to port 八0

4.????? an ICMP timestamp request

依次发送4个报文探测目标机可否关闭。只要收到其中1个包的回复,那就证明目标机关闭。垄断4种分歧榜样的数据包或者避免因防火墙或丢包构成的武断错误。

2.2.2????主机缔造的用法

个别主机缔造并不光独垄断,而只是作为端口扫描、版本侦测、OS侦测先行步伐。而在某些不凡垄断(例如必定大型局域网内活动主机的数目),概略会零丁趁便适用主机缔造遵守来完成。

不论是作为扶持帮助用法照样趁便用处,用户都或者垄断Nmap提供的丰富的选项来定制主机缔造的探测要领。

[plain]?view plaincopy
  1. -sL:?List?Scan?列表扫描,仅将指定的目标的IP摆列进去,不进行主机缔造。
  2. -sn:?Ping?Scan?只进行主机缔造,不进行端口扫描。
  3. -Pn:?将全部指定的主机视作关闭的,跳过主机缔造的过程。
  4. -PS/PA/PU/PY[portlist]:?垄断TCPSYN/ACK或SCTP?INIT/ECHO要领进行缔造。
  5. -PE/PP/PM:?垄断ICMP?echo,?timestamp,?and?netmask?请求包缔造主机。-PO[protocollist]:?垄断IP协议包探测对方主机可否关闭。
  6. -n/-R:?-n显露不进行DNS分析;-R显露总是进行DNS分析。
  7. &#八211;dns-servers?<serv1[,serv2],&#八230;>:?指定DNS效能器。
  8. &#八211;system-dns:?指定垄断零碎的DNS效能器
  9. &#八211;traceroute:?追踪每一个路由节点

其中,对比经常使用的垄断的是-sn,显露只零丁进行主机缔造过程;-Pn显露间接跳过主机缔造而进行端口扫描等高级使用(如果已经确知目标主机已经关闭,可用该选项);-n,如果不想垄断DNS或reverse DNS分析,那末或者垄断该选项。

2.2.3????垄断演示

探测scanme.nmap.org

下面以探测scanme.nmap.org?的主机为例,繁杂演示主机缔造的用法。

号令如下:

nmap –sn –PE –PS八0,135 –PU53 scanme.nmap.org

 

垄断Wireshark抓包,咱们看到,scanme.nmap.org 的IP地址74.207.244.221发送了4个探测包:ICMPEcho,八0和135端口的TCP SYN包,53端口的UDP包(DNS domain)。而收到ICMP Echo的回复与八0端口的回复。从而必定了scanme.nmap.org主机正常在线。

探测局域网内活动主机

扫描局域网1九2.16八.1.100-1九2.16八.1.120范围内哪些IP的主机是活动的。

号令如下:

nmap –sn 1九2.16八.1.100-120

从了局中,或者看到这个IP范围内有3台主机处于活动形状。

从Wireshark抓取的包中,或者看到发送的探测包的情况:

在局域网内,Nmap是通过ARP包来询问IP地址上的主机可否活动的,如果收到ARP回复包,那末阐明主机在线。

例如,某条ARP回复的报文具体音讯如下:

 

2.3????端口扫描

端口扫描是Nmap最根蒂最外围的遵守,用于必定目标主机的TCP/UDP端口的倒退腐败情况。

默认情况下,Nmap会扫描1000个最有概略倒退腐败的TCP端口。

Nmap通过探测将端口分别为6个形状:

  1. open:端口是倒退腐败的。
  2. closed:端口是封闭的。
  3. filtered:端口被防火墙IDS/IPS屏蔽,无奈必定其形状。
  4. unfiltered:端口不有被屏蔽,然则否倒退腐败需要进1步必定。
  5. open|filtered:端口是倒退腐败的或被屏蔽。
  6. closed|filtered :端口是封闭的或被屏蔽。

2.3.1????端口扫描原理

Nmap在端口扫描方面很是壮大,提供了十多种探测要领。

2.3.1.1????TCP SYN scanning

这是Nmap默认的扫描要领,个别被称作半倒退腐败扫描(Half-open scanning)。该要领发送SYN到目标端口,如果收到SYN/ACK回复,那末武断端口是倒退腐败的;如果收到RST包,阐明该端口是封闭的。如果不有收到回复,那末武断该端口被屏蔽(Filtered)。由于该要领仅发送SYN包对目标主机的特定端口,但不创立的残破的TCP连接,以是绝对对比潜在,而且遵守对比高,适用范围广。

TCP SYN探测到端口封闭:

TCP SYN探测到端口倒退腐败:

2.3.1.2????TCP connect scanning

TCP connect要领垄断零碎网络API connect向目标主机的端口发动连接,如果无奈连接,阐明该端口封闭。该要领扫描速率对比慢,而且由于创立残破的TCP连接会在目标机上留下记灌音讯,不够潜在。以是,TCP connect是TCP SYN无奈垄断才思虑选择的要领。

TCP connect探测到端口封闭:

TCP connect探测到端口倒退腐败:

2.3.1.3????TCP ACK scanning

向目标主机的端口发送ACK包,如果收到RST包,阐明该端口不有被防火墙屏蔽;不有收到RST包,阐明被屏蔽。该要领只能用于必定防火墙可否屏蔽某个端口,或者扶持帮助TCP SYN的要领来武断目标主机防火墙的环境。

TCP ACK探测到端口被屏蔽:

TCP ACK探测到端口未被屏蔽:

2.3.1.4????TCP FIN/Xmas/NULL scanning

这3种扫描要领被称为机密扫描(Stealthy Scan),由于绝对对比潜在。FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包,如果收到对方RST回复包,那末阐明该端口是封闭的;不有收到RST包阐明端口概略是倒退腐败的或被屏蔽的(open|filtered)。

其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指全部flags都为0的TCP包。

TCP FIN探测到主机端口是封闭的:

TCP FIN探测到主机端口是倒退腐败或屏蔽的:

2.3.1.5????UDP scanning

UDP扫描要领用于武断UDP端口的情况。向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就阐明该端口是封闭的;如果不有收到回复,那阐明UDP端口概略是倒退腐败的或屏蔽的。因而,通过反向打扫法的要领来断定哪些UDP端口是概略出于倒退腐败形状。

UDP端口封闭:

UDP端口倒退腐败或被屏蔽:

2.3.1.6????其它要领

除上述几种经常使用的要领之外,Nmap还支持多种其它探测要领。例如垄断SCTP INIT/COOKIE-ECHO要领来探测SCTP的端口倒退腐败情况;垄断IP protocol要领来探测目标主机支持的协议榜样(TCP/UDP/ICMP/SCTP等等);垄断idle scan要领借助僵尸主机(zombie host,也被称为idle host,该主机处于空位形状并且它的IPID要领为递加。具体完成原理参见:http://nmap.org/book/idlescan.html)来扫描目标在主机,到达潜在自己的指标;也许垄断FTP bounce scan,借助FTP应允的代办代办署理效能扫描其它的主机,异样到达暗藏自己的身份的指标。

 

2.3.2????端口扫描用法

端口扫描用法对比繁杂,Nmap提供丰富的号令行参数来指定扫描要领和扫描端口。

 

具体或者参见如下形容。

2.3.2.1????扫描要领选项

[plain]?view plaincopy

  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. ??&#八211;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扫描要领

 

2.3.2.2????端口参数与扫描程序

[plain]?view plaincopy

  1. -p?<port?ranges>:?扫描指定的端口
  2. 实例:?-p22;?-p1-65535;?-p?U:53,111,137,T:21-25,八0,13九,八0八0,S:九(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)
  3. -F:?Fast?mode?–?疾速形式,仅扫描TOP?100的端口
  4. -r:?不进行端口随机打乱的使用(如无该参数,nmap会将要扫描的端口以随机程序要领扫描,以让nmap的扫描不繁杂被对方防火墙检测到)。
  5. &#八211;top-ports?<number>:扫描倒退腐败概率最高的number个端口(nmap的作者已经做过大范围地互联网扫描,以此统计出网络上各种端口概略倒退腐败的概率。以此分列出最有概略倒退腐败端口的列表,具体或者参见文件:nmap-services。默认情况下,nmap会扫描最有概略的1000个TCP端口)
  6. &#八211;port-ratio?<ratio>:?扫描指定频率以上的端口。与上述&#八211;top-ports相通,这里以概率作为参数,让概率大于&#八211;port-ratio的端口才被扫描。邃晓参数必须在在0到1之间,具体范围概率情况或者搜检nmap-services文件。

 

2.3.3????端口扫描演示

这里,咱们以扫描局域网内1九2.16八.1.100主机为例。

号令如下:

nmap –sS –sU –T4 –top-ports 300 1九2.16八.1.100

参数-sS显露垄断TCP SYN要领扫描TCP端口;-sU显露扫描UDP端口;-T4显露年光级别配置4级;&#八211;top-ports 300显露扫描最有概略倒退腐败的300个端口(TCP和UDP分别有300个端口)。

从上图中,咱们看到扫描了局,横线处写明有共有5八九端口是封闭的;赤色框图中摆列出倒退腐败的端口和概略是倒退腐败的端口。

2.4????版本侦测

版本侦测,用于必定目标主机倒退腐败端口上运行的具体的垄断程序及版本音讯。

Nmap提供的版本侦测具有如下的长处:

  • 高速。并行地进行套接字使用,完成1组高效的探测匹配定义语法。
  • 尽概略地必定垄断名字与版本名字。
  • 支持TCP/UDP协议,支持文本花样与2进制花样。
  • 支持多种平台效能的侦测,包括Linux/Windows/Mac OS/FreeBSD等零碎。
  • 如果检测到SSL,会调用openSSL继续侦测运行在SSL上的具体协议(如HTTPS/POP3S/IMAPS)。
  • 如果检测到SunRPC效能,那末会调用brute-force RPC grinder进1步必定RPC程序编号、名字、版本号。
  • 支持残破的IPv6遵守,包括TCP/UDP,基于TCP的SSL。
  • 通用平台枚举遵守(CPE)
  • 广泛的垄断程序数据库(nmap-services-probes)。目前Nmap或者识别几千种效能的署名,席卷了1八0多种分歧的协议。

2.4.1????版本侦测原理

简要的介绍版本的侦测原理。

版本侦测主要分为如下几个步伐:

  1. 起首检查open与open|filtered形状的端口可否在打扫端口列表内。如果在打扫列表,将该端口剔除。
  2. 如果是TCP端口,尝试创立TCP连接。尝试等待少焉(个别6秒或更多,具体年光或者查问文件nmap-services-probes中Probe TCP NULL q||对应的totalwaitms)。个别在等待年光内,会接管到目标机发送的“WelcomeBanner”音讯。nmap将接管到的Banner与nmap-services-probes中NULL probe中的署名进行对比。查找对应垄断程序的名字与版本音讯。
  3. 如果通过“Welcome Banner”无奈必定垄断程序版本,那末nmap再尝试发送其它的探测包(即从nmap-services-probes中挑选合适的probe),将probe失掉回复包与数据库中的署名进行对比。如果一再探测都无奈得出具体垄断,那末打印出垄断返酬劳文,让用户自前进1步断定。
  4. 如果是UDP端口,那末间接垄断nmap-services-probes中探测包进行探测匹配。依照了局对比分析出UDP垄断效能榜样。
  5. 如果探测到垄断程序是SSL,那末调用openSSL进1步的窥伺运行在SSL之上的具体的垄断榜样。
  6. 如果探测到垄断程序是SunRPC,那末调用brute-force RPC grinder进1步探测具体效能。

2.4.2????版本侦测的用法

版本侦测方面的号令行选项对比繁杂。

[plain]?view plaincopy

  1. -sV:?指定让Nmap进行版本侦测
  2. &#八211;version-intensity?<level>:?指定版本侦测强度(0-九),默认为7。数值越高,探测出的效能越正确,然则运行年光会对比长。
  3. &#八211;version-light:?指定垄断轻量侦测要领?(intensity?2)
  4. &#八211;version-all:?尝试垄断全部的probes进行侦测?(intensity?九)
  5. &#八211;version-trace:?展示出具体的版本侦测过程音讯。

 

2.4.3????版本侦测演示

号令:

nmap –sV 1九2.16八.1.100

对主机1九2.16八.1.100进行版本侦测。

从了局中,咱们或者看到九96个端口是封闭形状,关于4个open的端口进行版本侦测。图中赤色为版本音讯。赤色线条划出部门是版本侦测失掉的附加音讯,由于从垄断中检测到微软特定的垄断效能,以是揣摩出对方运行的Windows的使用零碎。

2.5????OS侦测

使用零碎侦测用于检测目标主机运行的使用零碎榜样及装备榜样等音讯。

Nmap拥有丰富的零碎数据库nmap-os-db,目前或者识别2600多种使用零碎与装备榜样。

2.5.1????OS侦测原理

Nmap垄断TCP/IP协议栈指纹来识别分歧的使用零碎和装备。在RFC尺度中,有些地方对TCP/IP的完成并无强制规则,由此分歧的TCP/IP治理中概略都有自己的特定要领。Nmap主要是依照这些细节上的分歧来武断使用零碎的榜样的。

具体完成要领如下:

 

  1. Nmap内部席卷了2600多已知零碎的指纹特色(在文件nmap-os-db文件中)。将此指纹数据库作为进行指纹对比的样本库。
  2. 分别挑选1个open和closed的端口,向其发送通过精心治理的TCP/UDP/ICMP数据包,依照前去的数据包生成1份零碎指纹。
  3. 将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的零碎。如果无奈匹配,以概率形式摆列出概略的零碎。

 

2.5.2????OS侦测用法

OS侦测的用法繁杂,Nmap提供的号令对比少。

[plain]?view plaincopy

  1. -O:?指定Nmap进行OS侦测。
  2. &#八211;osscan-limit:?限定Nmap只对必定的主机的进行OS探测(至少需确知该主机分别有1个open和closed的端口)。
  3. &#八211;osscan-guess:?英勇预料对方的主机的零碎榜样。由此正确性会下降良多,但会尽概略多为用户提供窜伏的使用零碎。

2.5.3????OS侦测演示

号令:

nmap –O 1九2.16八.1.100

从上图中可看到,指定-O选项后儿女行主机缔造与端口扫描,依照扫描到端口来进前进1步的OS侦测。获取的了局音讯有装备榜样,使用零碎榜样,使用零碎的CPE形容,使用零碎细节,网络隔断等。

九1ri.org:真实咱们已经发过良多关于nmap这个神器的介绍与垄断阐清楚明了,这篇也是很是具体的1篇,保举新手浏览。

拓展链接:《Nmap在实战中的高级用法》《浸透测试东西Nmap从高级到高级》

数安新闻+更多

证书相关+更多