NMap,也就是Network
Mapper,是网络扫描和嗅探东西包。nmap是一个网络毗连端扫描软件,用来扫描网上电脑开放的网络毗连端。确定哪些处事运行在哪些毗连端,而且揣度计较机运行哪个操纵系统(这是亦称
fingerprinting)。
其根基成果有三个,一是探测一组主机是否在线;其次是扫描
主机端口,嗅探所提供的网络处事;还可以揣度主机所用的操纵系统。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap
还答允用户定制扫描能力。凡是,一个简朴的利用ICMP协议的ping操纵可以满意一般需求;也可以深入探测UDP可能TCP端口,直至主机所
利用的操纵系统;还可以将所有探测功效记录到各类名目标日志中, 供进一步阐明操纵。
二、语法
nmap [Scan Type(s)] [Options]
三、成果选项
成果选项可以组合利用。一些成果选项只可以或许在某种扫描模式下利用。nmap会自动识别无效可能不支持的成果选项组合,并向用户发出告诫信息。3.1扫描范例
-sT
TCP
connect()扫描:这是最根基的TCP扫描方法。connect()是一种系统挪用(socket
TCP函数),由操纵系统提供,用来打开一个毗连。假如方针端口有措施监听,connect()就会乐成返回,不然这个端口是不行达的。这项技能最大的利益是,你勿需root权限。任何UNIX用户都可以自由利用这个系统挪用。这种扫描很容易被检测到,在方针主机的日志中会记录大批的毗连请求以及错误信息。
-sS
TCP同步扫描(TCP
SYN):因为不必全部打开一个TCP毗连,所以这项技能凡是称为半开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后期待回应。假如对方返回SYN|ACK(响应)包就暗示方针端口正在监听;假如返回RST数据包,就暗示方针端口没有监听措施;假如收到一个SYN|ACK包,源主机就会顿时发出一个RST(复位)数据包断开和方针主机的毗连,这实际上有我们的操纵系统内核自动完成的。这项技能最大的长处是,很少有系统可以或许把这记入系统日志。不外,你需要root权限来定制SYN数据包。
-sF -sX -sN
奥秘FIN数据包扫描、圣诞树(Xmas
Tree)、空(Null)扫描模式:纵然SYN扫描都无法确定的环境下利用。一些防火墙和包过滤软件可以或许对发送到被限制端口的SYN数据包举办监督,并且有些措施好比synlogger和courtney可以或许检测那些扫描。这些高级的扫描方法可以逃过这些滋扰。
这些扫描方法的理论依据是:封锁的端口需要对你的探测包回应RST包,而打开的端口必须忽略有问题的包(参考RFC
793第64页)。FIN扫描利用袒露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH符号。不幸的是,微软抉择完全忽略这个尺度,重新积极别辟派别。所以这种扫描方法对Windows95/NT无效。不外,从别的的角度讲,可以利用这种方法来别离两种差异的平台。假如利用这种扫描方法可以发明打开的端口,你就可以确定方针留意运行的不是Windows系统。假如利用-sF、-sX可能-sN扫描显示所有的端口都是封锁的,而利用SYN扫描显示有打开的端口,你可以确定方针主机大概运行的是Windwos系统。此刻这种方法没有什么太大的用处,因为nmap有内嵌的操纵系统检测成果。尚有其它几个系统利用和windows同样的处理惩罚方法,包罗Cisco、BSDI、HP/UX、MYS、IRIX。在应该丢弃数据包时,以上这些系统城市从打开的端口发出复位数据包。
-sP
ping扫描:有时你只是想知道此时网络上哪些主机正在运行。通过向你指定的网络内的每个IP地点发送ICMP
echo请求数据包,nmap就可以完成这项任务。假如主机正在运行就会作出响应。不幸的是,香港站群服务器
美国服务器,一些站点譬喻:microsoft.com阻塞ICMP
echo请求数据包。然而,在默认的环境下nmap也可以或许向80端口发送TCP
ack包,假如你收到一个RST包,就暗示主机正在运行。nmap利用的第三种技能是:发送一个SYN包,然后期待一个RST可能SYN/ACK包。对付非root用户,nmap利用connect()要领。
在默认的环境下(root用户),nmap并行利用ICMP和ACK技能。
留意,nmap在任何环境下城市举办ping扫描,只有方针主机处于运行状态,才会举办后续的扫描。假如你只是想知道方针主机是否运行,而不想举办其它扫描,才会用到这个选项。
-sU
UDP扫描:假如你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)处事,可以利用这种扫描要领。nmap首先向方针主机的每个端口发出一个0字节的UDP包,假如我们收到端口不行达的ICMP动静,端口就是封锁的,不然我们就假设它是打开的。