大家好,又见面了,我是你们的朋友全栈君。
常用参数
其他举例
指定扫描一个网段:nmap 192.168.0.0/24 或者 nmap 192.168.0.1-200(扫描1-200的主机)
扫描部分网段(逗号隔开):nmap 192.168.0.1,2,3,4 或 nmap 192.168.0,1,2,3,4.1
扫描指定IP所开放的端口:nmap -p 1-65535 -v 127.0.0.1
扫描C段存活主机:nmap 192.168.1.0/24
指定端口扫描:nmap -p 80,1433,22,1521 192.168.1.1
探测主机操作系统:nmap -O 192.168.1.1
全面的系统探测:nmap -v -A 192.168.1.1(Nmap默认扫描主机1000个高危端口)
穿透防火墙进行扫描:nmap -Pn -A 192.168.1.1(禁止用ping的)
使用脚本扫描Web敏感目录:nmap -p 80 –script=http-enum.nse 192.168.1.1
主机发现
Ping扫描
Ping扫描只进行ping,然后显示出在线的主机。使用该选项扫描可以轻易获取目标信息而不会被轻易发现。
在默认情况下,Nmap会发送一个ICMP回声请求和一个TCP报文到目标端口。Ping扫描的优点是不会返回太多的信息影响对结果的分析,并且扫描方式高效。
代码语言:javascript复制nmap -sP 192.168.0.0/24
无Ping扫描
无ping扫描通常用于防火墙禁止ping的情况下,它能确定正在运行的机器。
默认情况下,nmap只对正在运行的主机进行高强度的探测,如端口扫描,版本探测或者操作系统探测。
用-P0禁止主机发现会使nmap对每一个特定的目标IP地址进行所要求的扫描,这可以穿透防火墙,也可以避免被防火墙发现。
代码语言:javascript复制nmap -P0 192.168.0.12
TCP SYN Ping 扫描 通常情况下,nmap默认是使用TCP ACK 和 ICMP Echo 请求对目标进行是否存活的响应,当目标主机的防火墙阻止这些请求时,可以使用TCP SYN Ping扫描来判断主机是否存活。
-PS 选项发送一个设置了SYN标志位的空TCP报文。默认端口为80。
但不同的端口也可以作为选项指定,甚至可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80,115,3306,3389),在这种情况下,每个端口会被并发地扫描
代码语言:javascript复制nmap -PS -v 192.168.0.12
上面结果可得知Nmap是通过SYN/ACK和RST响应来对目标主机是否存活进行判断,但在特定情况下防火墙会丢弃RST包。
这时结果会不准确,我们需要指定一个端口或端口范围来避免这种情况。
代码语言:javascript复制nmap -PS80,100-200 -v 192.168.0.12
TCP ACK Ping 扫描 使用-PA选项可以进行TCP ACK Ping扫描,它与TCP SYN Ping扫描非常类似,区别在于设置的TCP标志位是ACK而不是SYN,使用这种方式扫描可以探测阻止SYN包或ICMP Echo请求的主机。
代码语言:javascript复制nmap -PA -v 192.168.0.12
同时使用-SP与-PA选项命令如下:
代码语言:javascript复制nmap -PA -PS 192.168.0.12
UDP Ping扫描 使用UDP Ping扫描时Nmap会发送一个空UDP包到目标之间,如果目标主机相应则返回一个ICMP端口不可达错误,如果目标主机不是存活状态则会返回各自ICMP错误信息。
代码语言:javascript复制nmap -PU -v 192.168.0.12
ICMP Ping Types 扫描
ICMP是控制报文协议。nmap发送一个ICMP type8(回声请求)报文到目标ip地址,从运行的主机得到一个type0(回声相应)报文。
-PE选项简单的来说是通过向目标发送ICMP Echo数据包来探测目标主机是否在线,使用-PE选项打开该回声请求功能。
-PP选项是ICMP时间戳ping扫描,-PM选项可以进行icmp地址掩码ping扫描
代码语言:javascript复制nmap-PE-v192.168.0.12nmap-PP-v192.168.0.12nmap-PM-v192.168.0.12
ARP Ping扫描
-PR 通常在扫描局域网时使用,在内网的情况下,使用ARP ping扫描方式是最有效的,在本地局域网中防火墙不会禁止ARP请求,这就使得它比其他ping扫描都更加高效。
代码语言:javascript复制nmap -PR 192.168.0.12
扫描列表
列表扫描时主机发现的退化形式,它仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。
默认情况下,Nmap仍然对主机进行反向域名解析以获取它们的名字。
代码语言:javascript复制nmap -sL 192.168.0.0/24
禁止反向域名解析
如果单纯扫描一段IP,使用该选项可以大幅度减少目标主机的相应时间,从而更快的得到结果。
代码语言:javascript复制namp -n -sL 192.168.0.0/24
反向域名解析
代码语言:javascript复制nmap -R -sL *. 192.168.0.0/24
代码语言:javascript复制扫描TPv6地址
nmap -6 fe80::20c:29ff:fee0:2e76 路由跟踪
通过此选项可以轻松地查找出本地计算机到目标之间所经过的网络节点,并可以看到通过各个节点的时间。
代码语言:javascript复制nmap --traceroute -v www.baidu.com
SCTP INIT Ping扫描 SCTP(流控制传输协议)是IETF在2000年定义的一个传输层协议。
SCTP可以看作是TCP协议的改进,它改进了TCP的一些不足,SCTP INIT Ping扫描通过向目标发送INIT包,根据目标主机的相应判断目标主机是否存活。
代码语言:javascript复制nmap -PY -v 192.168.0.12
nast
twork Analyzer Sniffer Tool (nast) 是一个网络包嗅探和局域网分析工具,基于 libnet 和 libpcap 开发。
代码语言:javascript复制#nast -S
Knocker
Knocker 是一个简单易用的 TCP 端口扫描工具,采用 C 语言编写,用于分析主机上运行的服务。
nmap介绍
port Scan的方法介绍 port Scan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法。一般可分为主动式和被动式两种。 主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断。以nmap 为代表
被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描。以nwatch为代表
优缺点比较 主动式的优点
主动式只要在对方没有把通信阻断的情况下,可以在较短的时间内获得结果
主动式的缺点
1 现在带有阻断功能的防火墙越来越多,有些防火墙当检测到端口扫描时,会将端口关闭一定的时间,还有的机器使用了很多filter功能,只对特定的IP地址提供服务,这种情况下,主动式的正确性大打折扣。
2 主动式只是在一瞬间对端口进行扫描,只有当服务器那个时候使用的服务才有可能被侦测到。
3 端口扫描是一种广义上的攻击行为,对于末经许可的机器,一般不能施行。
被动式的优点
被动式只是侦听网络,不会成为网络攻击,它长期运行,可以侦测到一个长时间间内,服务器的变化。
被动式的缺点
由于它不会主动发出请求包,即使端口开着,如果没有发生实际的通信,被动式也无法侦测到服务
nmap的安装
代码语言:javascript复制#apt-get install nmap
使用案例
1、批量Ping扫描 : 批量扫描一个网段的主机存活数
代码语言:javascript复制#nmap -sP 192.168.1.10/24
** 2、跳过Ping探测:** 有些主机关闭了ping检测,所以可以使用-P0跳过ping的探测,可以加快扫描速度。
代码语言:javascript复制#nmap -P0 192.168.1.7
3、计算网段主机IP: 仅列出指定网段上的每台主机,不发送任何保卫呢到目标主机。
代码语言:javascript复制#nmap -sL 192.168.1.10/24
4、扫描IP地址范围: 可以指定一个IP地址范围 检测主机是否正常运行
代码语言:javascript复制#nmap -sP 192.168.1.1-100
备注: 获取在线的IP地址信息 nmap -sP ip/域名 | grep “Nmap scan report for”|awk ‘{print $5}’
**5、探测开放端口(SYN)