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。
Zenmap是Nmap官方提供的图形界面,个别随Nmap的安置包颁布。Zenmap是用Python语言编写而成的开源免费的图形界面,大要运行在分歧使用零碎平台上(Windows/Linux/Unix/Mac OS等)。Zenmap旨在为nmap提供愈加繁杂的使用要领。繁杂经常使用的使用号令或者保存成为profile,用户扫描时选择profile便可;或者等闲地对比分歧的扫描了局;提供网络拓扑构造(NetworkTopology)的图形展示遵守。
其中Profile栏位,用于选择“Zenmap默认提供的Profile”或“用户构建的Profile”;Co妹妹and栏位,用于展示选择Profile对应的号令也许用户自行指定的号令;Topology选项卡,用于展示扫描到的目标机与本机之间的拓扑构造。
Nmap席卷4项根蒂遵守:
而这4项遵守之间,又具有简陋的依赖相关(个别情况下的程序相关,但不凡垄断其它思虑),起首需要进行主机缔造,随后必定端口环境,而后必定端口上运行具体垄断程序与版本音讯,而后或者进行使用零碎的侦测。而在4项根蒂遵守的根蒂上,Nmap提供防火墙与IDS(IntrusionDetection System,入侵检测零碎)的规避本事,或者赏析垄断到4个根蒂遵守的各个阶段;其它Nmap提供壮大的NSE(Nmap Scripting Language)剧本引擎遵守,剧本或者对根蒂遵守进行填补和扩展。
Nmap主要包括4个方面的扫描遵守,主机缔造、端口扫描、垄断与版本侦测、使用零碎侦测。在具体讲解每一个具体遵守已往,起首或者看看Nmap的典范用法。
如果间接针对某台算计的IP地址或域名进行扫描,那末Nmap对该主机进行主机缔造过程和端口扫描。该要领履行麻利,或者用于必定端口的倒退腐败环境。
号令形式:
nmap targethost
或者必定目标主机在线情况及端口根蒂环境。
如果巴望对某台主机进行残破周全的扫描,那末或者垄断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步的音讯开掘的展示了局。
主机缔造(Host Discovery),即用于缔造目标主机可否在线(Alive,处于关闭形状)。
主机缔造发现的原理与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种分歧榜样的数据包或者避免因防火墙或丢包构成的武断错误。
个别主机缔造并不光独垄断,而只是作为端口扫描、版本侦测、OS侦测先行步伐。而在某些不凡垄断(例如必定大型局域网内活动主机的数目),概略会零丁趁便适用主机缔造遵守来完成。
不论是作为扶持帮助用法照样趁便用处,用户都或者垄断Nmap提供的丰富的选项来定制主机缔造的探测要领。
[plain]?view plaincopy其中,对比经常使用的垄断的是-sn,显露只零丁进行主机缔造过程;-Pn显露间接跳过主机缔造而进行端口扫描等高级使用(如果已经确知目标主机已经关闭,可用该选项);-n,如果不想垄断DNS或reverse DNS分析,那末或者垄断该选项。
探测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回复的报文具体音讯如下:
端口扫描是Nmap最根蒂最外围的遵守,用于必定目标主机的TCP/UDP端口的倒退腐败情况。
默认情况下,Nmap会扫描1000个最有概略倒退腐败的TCP端口。
Nmap通过探测将端口分别为6个形状:
Nmap在端口扫描方面很是壮大,提供了十多种探测要领。
这是Nmap默认的扫描要领,个别被称作半倒退腐败扫描(Half-open scanning)。该要领发送SYN到目标端口,如果收到SYN/ACK回复,那末武断端口是倒退腐败的;如果收到RST包,阐明该端口是封闭的。如果不有收到回复,那末武断该端口被屏蔽(Filtered)。由于该要领仅发送SYN包对目标主机的特定端口,但不创立的残破的TCP连接,以是绝对对比潜在,而且遵守对比高,适用范围广。
TCP SYN探测到端口封闭:
TCP SYN探测到端口倒退腐败:
TCP connect要领垄断零碎网络API connect向目标主机的端口发动连接,如果无奈连接,阐明该端口封闭。该要领扫描速率对比慢,而且由于创立残破的TCP连接会在目标机上留下记灌音讯,不够潜在。以是,TCP connect是TCP SYN无奈垄断才思虑选择的要领。
TCP connect探测到端口封闭:
TCP connect探测到端口倒退腐败:
向目标主机的端口发送ACK包,如果收到RST包,阐明该端口不有被防火墙屏蔽;不有收到RST包,阐明被屏蔽。该要领只能用于必定防火墙可否屏蔽某个端口,或者扶持帮助TCP SYN的要领来武断目标主机防火墙的环境。
TCP ACK探测到端口被屏蔽:
TCP ACK探测到端口未被屏蔽:
这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探测到主机端口是倒退腐败或屏蔽的:
UDP扫描要领用于武断UDP端口的情况。向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就阐明该端口是封闭的;如果不有收到回复,那阐明UDP端口概略是倒退腐败的或屏蔽的。因而,通过反向打扫法的要领来断定哪些UDP端口是概略出于倒退腐败形状。
UDP端口封闭:
UDP端口倒退腐败或被屏蔽:
除上述几种经常使用的要领之外,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应允的代办代办署理效能扫描其它的主机,异样到达暗藏自己的身份的指标。
端口扫描用法对比繁杂,Nmap提供丰富的号令行参数来指定扫描要领和扫描端口。
具体或者参见如下形容。
这里,咱们以扫描局域网内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八九端口是封闭的;赤色框图中摆列出倒退腐败的端口和概略是倒退腐败的端口。
版本侦测,用于必定目标主机倒退腐败端口上运行的具体的垄断程序及版本音讯。
Nmap提供的版本侦测具有如下的长处:
简要的介绍版本的侦测原理。
版本侦测主要分为如下几个步伐:
版本侦测方面的号令行选项对比繁杂。
[plain]?view plaincopy
号令:
nmap –sV 1九2.16八.1.100
对主机1九2.16八.1.100进行版本侦测。
从了局中,咱们或者看到九96个端口是封闭形状,关于4个open的端口进行版本侦测。图中赤色为版本音讯。赤色线条划出部门是版本侦测失掉的附加音讯,由于从垄断中检测到微软特定的垄断效能,以是揣摩出对方运行的Windows的使用零碎。
使用零碎侦测用于检测目标主机运行的使用零碎榜样及装备榜样等音讯。
Nmap拥有丰富的零碎数据库nmap-os-db,目前或者识别2600多种使用零碎与装备榜样。
Nmap垄断TCP/IP协议栈指纹来识别分歧的使用零碎和装备。在RFC尺度中,有些地方对TCP/IP的完成并无强制规则,由此分歧的TCP/IP治理中概略都有自己的特定要领。Nmap主要是依照这些细节上的分歧来武断使用零碎的榜样的。
具体完成要领如下:
OS侦测的用法繁杂,Nmap提供的号令对比少。
[plain]?view plaincopy号令:
nmap –O 1九2.16八.1.100
从上图中可看到,指定-O选项后儿女行主机缔造与端口扫描,依照扫描到端口来进前进1步的OS侦测。获取的了局音讯有装备榜样,使用零碎榜样,使用零碎的CPE形容,使用零碎细节,网络隔断等。
九1ri.org:真实咱们已经发过良多关于nmap这个神器的介绍与垄断阐清楚明了,这篇也是很是具体的1篇,保举新手浏览。
拓展链接:《Nmap在实战中的高级用法》《浸透测试东西Nmap从高级到高级》