nmap 简单原理
利用nmap命令进行测试扫描检查网络系统信息时,使用tcp/ip协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定。由此不同的TCP/IP方案中可能都有自己的特定方式。NMAP主要是根据这些细节上的差异来判断操作系统的类型的。
- nmap内包含了2600及以上已知系统的指纹特征(在文件nmap-os-db文件中记录)。将此指纹数据库作为进行指纹对比的样本库。
- 分别挑选一个open/close的端口,向其发送精心设计的tcp/udp/icmp数据包,根据返回的数据包生成一份系统指纹。将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统,如果无法匹配,以概率形式列举出可能的系统。