NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端,确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。
其基本功能有三个:一是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。
Nmap以新颖的方式使用原始IP包来确定网络上可用的主机、这些主机提供的服务(应用程序名称和版本)、正在运行的操作系统(和操作系统版本)、正在使用的包过滤器/防火墙类型,以及许多其他特征。
它被设计用于快速扫描大型网络,但在单个主机上运行良好。
主机发现技术(Host Discovery):
-sP(使用ping扫描低调地返回响应主机)
-P0(较安全地穿透防火墙)
-Pn(告诉nmap不要使用ping命令预先判定主机是否存活,而是默认所有主机都是存活状态)
端口扫描技术:
可明确区分开放端口(open)-SYN/ACK,关闭端口(closed)-RST,被过滤端口(filtered)-或收到ICMP不可达错误/数次重发仍未响应,(unfilitered)-端口可访问但无法确认
-sS(TCP SYN扫描):执行快(每秒数个端口)且安全(不完成TCP连接,第三次握手时自毁,不张扬)(默认)
-sT(TCP connect()扫描):创建connect()系统调用要求操作系统和目标机及端口建立连接(易被发现:IDS可捕获/在UNIX系统服务上的syslog留下记录/导致弱服务器崩溃)(次默认)
-sU(UDP 扫描):DNS(53)/SNMP(161.162)/DHCP(67.68)等(速度慢-原理所致—host-timeout 跳过慢速主机)
-sA(TCP ACK扫描)发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。
操作系统探测扫描:
-O(启用操作系统检测)-Operating System
-A(同时启用操作系统检测和版本检测)-All(构造发送TCP/IP协议栈获得指纹后对比数据库)提供目标系统更多细节信息
信息搜集
被动信息搜集:
whois
Netcraft(http://searchdns.netcraft.com)
nslookup
主动信息搜集:
Nmap
Metasploit等(2018.10.28)