nmap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包。
其基本功能有四个:
主机发现(Host Discovery)端口扫描(Port Scanning)版本侦测(Version Detection)操作系统侦测(Operating System Detection)1)-sL 列表扫描:可以对主机进行反向域名解析,校验ip或域名是否存在
nmap -sL 192.168.2.0/24或www.baidu.com/242)-sP ping扫描:使用ping主机,得出可响应的主机列表
nmap -sP 192.168.2.0/24或www.baidu.com/243)-P0 (无ping):高强度的扫描时用它确定正在运行的机器, 默认情况下,Nmap只对正在运行的主机进行高强度的探测如 端口扫描,版本探测,或者操作系统探测。
nmap -P0 192.168.8.1114)-PS [portlist] (TCP SYN Ping):发送一个设置了SYN标志位的空TCP报文,尝试建立连接,成功返回报文up以及运行信息,失败返回down;
nmap -PS 192.168.8.1185)-PA [portlist] (TCP ACK Ping):发送一个设置了ACK标志位的空TCP报文,尝试建立连接,成功返回报文up以及运行信息,失败返回down;
nmap -PA 192.168.8.1186) -PU [portlist] (UDP Ping):它发送一个空的UDP报文,返回响应报文up以及运行信息,失败返回down;
nmap -PU 192.168.8.1187)-PE; -PP; -PM (ICMP Ping Types):发送一个ICMP type 8 (回声请求)报文到目标IP地址, 期待从运行的主机得到一个type 0 (回声响应)报文。
nmap -PE 192.168.8.1188)-PR (ARP Ping):同一个局域网内,当进行ARP扫描时,Nmap用它优化的算法管理ARP请求。 当它收到响应时, Nmap甚至不需要担心基于IP的ping报文,既然它已经知道该主机正在运行了。 这使得ARP扫描比基于IP的扫描更快更可靠。
nmap -PR 192.168.2.118
端口状态:扫描之后,你可能会看到一些端口状态如 open(开放的),filtered(被过滤的),closed(关闭的)等等。
- Open(开放的): 应用程序正在这个端口上监听连接。- Closed(关闭的): 端口对探测做出了响应,但是现在没有应用程序在监听这个端口。- Filtered(过滤的): 端口没有对探测做出响应。同时告诉我们探针可能被一些过滤器(防火墙)终止了。- Unfiltered(未被过滤的):端口对探测做出了响应,但是Nmap无法确定它们是关闭还是开放。- Open/Filtered: 端口被过滤或者是开放的,Nmap无法做出判断。- Closed/Filtered: 端口被过滤或者是关闭的,Nmap无法做出判断。1)-sS (TCP SYN扫描): 被称为半开放扫描, 因为它不打开一个完全的TCP连接。 SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。
nmap -sS 192.168.2.1182)-sT (TCP connect()扫描):Nmap通过创建connect() 系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。
3)-sU (UDP扫描):UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 如果返回ICMP端口不可到达错误(类型3,代码3), 该端口是closed(关闭的)。 其它ICMP不可到达错误(类型3, 代码1,2,9,10,或者13)表明该端口是filtered(被过滤的).
4)-sN; -sF; -sX (TCP Null,FIN,and Xmas扫描):
ping扫描:扫描192.168.0.0/24网段上有哪些主机是存活的;
nmap -sP 192.168.0.0/24端口扫描:扫描192.168.0.3这台主机开放了哪些端口;
nmap -sT 192.168.0.3隐藏扫描,只在目标主机上留下很少的日志信息:隐藏扫描192.168.0.220
nmap -sS 192.168.0.127UDP端口扫描:扫描192.168.0.127开放了哪些UDP端口;
nmap -sU 192.168.0.127操作系统识别:
nmap -sS -O 192.168.0.127
读取文件
假设我们有list.txt文件,文件的内容是ip列表,一行一个。比如这样:
10.73.31.145
10.73.31.116
我们可以输入这条指令让nmap自动扫描:
nmap -iL list.txt
在nmap运行的时候,如果我们可以像其他编程一样打“断点”,直接按键盘的d键就行了,如果想知道运行的进度可以按下X键