Namp的英文全称是“Network Mapper”,Namp可用来快速扫描大型网络或是单个主机
nmap主要包括四个方面 主机发现、端口扫描、应用与版本侦测、操作系统侦测
主机发现原理:主机发现的原理与ping命令类似,发送探测包到目标主机,如果收到回复,那么就说明目标主机是开启的
主机发现的用法
端口扫描的原理:1、TCP SYN scanning
2、TCP connect scanning
3、TCP ACK scanning
4、TCP FIN/Xmas/NULL scanning
5、UDP scanning
端口扫描的用法
版本侦测原理:
首先检查open与open|filtered状态的端口是否在排除端口列表内。如果在排除列表,将该端口剔除。
如果是TCP端口,尝试建立TCP连接。尝试等待片刻(通常6秒或更多,具体时间可以查询文件nmap-services-probes中 Probe TCP NULL q||对应的totalwaitms)。通常在等待时间内,会接收到目标机发送的“WelcomeBanner”信息。nmap将接收到的Banner与 nmap-services-probes中NULL probe中的签名进行对比。查找对应应用程序的名字与版本信息。
如果通过“Welcome Banner”无法确定应用程序版本,那么nmap再尝试发送其他的探测包(即从nmap-services-probes中挑选合适的probe),将 probe得到回复包与数据库中的签名进行对比。如果反复探测都无法得出具体应用,那么打印出应用返回报文,让用户自行进一步判定。
如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配。根据结果对比分析出UDP应用服务类型。
如果探测到应用程序是SSL,那么调用openSSL进一步的侦查运行在SSL之上的具体的应用类型。
如果探测到应用程序是SunRPC,那么调用brute-force RPC grinder进一步探测具体服务。
版本侦测的用法
OS侦测原理
Nmap使用TCP/IP协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定,由此不同的TCP/IP方案中可能都有自己的特定方式。Nmap主要是根据这些细节上的差异来判断操作系统的类型的。
OS侦探的用法
确认端口状态
命令形式:namp targethost
完整全面的扫描
命令形式: nmap -T4 -A -v targethost (A选项用于使用攻击性方式扫描;-T4指定扫描过程中使用的时序;-v显示冗长信息)