Linux 超级军刀 Nmap详解( 五 )


如果通过“Welcome Banner”无法确定应用程序版本,那么nmap再尝试发送其他的探测包(即从nmap-services-probes中挑选合适的probe),将probe得到回复包与数据库中的签名进行对比 。如果反复探测都无法得出具体应用,那么打印出应用返回报文,让用户自行进一步判定 。
如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配 。根据结果对比分析出UDP应用服务类型 。
如果探测到应用程序是SSL,那么调用openSSL进一步的侦查运行在SSL之上的具体的应用类型 。
如果探测到应用程序是SunRPC,那么调用brute-force RPC grinder进一步探测具体服务 。
版本侦测用法
比如目标主机把SSH的22号端口改成了2222端口,那么如果使用普通扫描只会发现2222端口是开启的,并不能知道2222号端口上运行的程序,通过加参数 -sV 进行版本扫描,可以探测到目标主机上2222端口运行的是SSH服务
-sV: 指定让Nmap进行版本侦测
--version-intensity <level>: 指定版本侦测强度(0-9),默认为7 。数值越高,探测出的服务越准确,但是运行时间会比较长 。
--version-light: 指定使用轻量侦测方式 (intensity 2)
--version-all:尝试使用所有的probes进行侦测 (intensity 9)
--version-trace: 显示出详细的版本侦测过程信息
例: nmap -sV 10.96.10.246
五:OS侦测
操作系统侦测用于检测目标主机运行的操作系统类型及设备类型等信息 。
Nmap拥有丰富的系统数据库nmap-os-db,目前可以识别2600多种操作系统与设备类型 。
OS侦测原理
Nmap使用TCP/IP协议栈指纹来识别不同的操作系统和设备 。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定,由此不同的TCP/IP方案中可能都有自己的特定方式 。Nmap主要是根据这些细节上的差异来判断操作系统的类型的 。
具体实现方式如下:
Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中) 。将此指纹数据库作为进行指纹对比的样本库 。
分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹 。
将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统 。如果无法匹配,以概率形式列举出可能的系统 。
OS侦测用法
-O: 指定Nmap进行OS侦测 。
--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口) 。
--osscan-guess: 大胆猜测对方的主机的系统类型 。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统
例: nmap -O 10.96.10.246
六:Nmap高级用法
防火墙/IDS规避
防火墙与IDS规避为用于绕开防火墙与IDS的检测与屏蔽,以便能够更加详细地发现目标主机的状况 。nmap提供了多种规避技巧通常可以从两个方面考虑规避方式:数据包的变换(Packet Change)和时序变换(Timing Change)
分片
将可疑的探测包进行分片处理(例如将TCP包拆分成多个IP包发送过去),某些简单的防火墙为了加快处理速度可能不会进行重组检查,以此避开其检查
IP诱骗(IP decoys)
在进行扫描时,将真实IP地址在和其他主机的IP地址混合使用(其他主机需要在线,否则目标主机将回复大量数据包到不存在的数主机,从而实质构成了DOS攻击),以此让目标主机的防火墙或IDS追踪大量的不同IP地址的数据包,降低其追查到自身的概率 。但是,某些高级的IDS系统通过统计分析仍然可以追踪出扫描者真实的IP地址
IP伪装
IP伪装就是将自己发送的数据包中的IP地址伪装成其他主机的地址,从而目标机认为是其他主机与之通信 。需要注意的是,如果希望接收到目标主机的回复包,那么伪装的IP需要位于统一局域网内 。另外,如果既希望隐蔽自己的IP地址,又希望收到目标主机的回复包,那么可以尝试使用idle scan 或匿名代理等网络技术
指定源端口
某些目标主机只允许来自特定端口的数据包通过防火墙 。例如,FTP服务器的配置为允许源端口为21号的TCP包通过防火墙与FTP服务器通信,但是源端口为其他的数据包被屏蔽 。所以,在此类情况下,可以指定数据包的源端口
扫描延时
某些防火墙针对发送过于频繁的数据包会进行严格的侦查,而且某些系统限制错误报文产生的频率 。所以,我们可以降低发包的频率和发包延时以此降低目标主机的审查强度
其他技术
nmap还提供其他多种规避技巧,比如指定使用某个网络接口来发送数据包、指定发送包的最小长度、指定发包的MTU、指定TTL、指定伪装的MAC地址,使用错误检查 。


推荐阅读