nmap是一款渗透端口扫描测试工具。它不单单可以进行端口扫描,还可以扫描漏洞、服务器信息等等。是一款十分强大的扫描工具,可以在windows、mac、Linux上运行。
下载
官网地址: https://nmap.org/download.html
我备份的地址:https://download.csdn.net/download/biu801/89421790
一路默认就好了,但是安装地址还是换成自己的位置比较好
输入cmd就能使用了,他是命令行工具
使用
nmap[扫描类型][选项]{目标规范}
nmap IP 扫描IP
nmap -v IP 加强扫描
nmap IP1 IP2 ... 扫描多IP
nmap a.b.c.* 扫描整个子网
nmap a.b.c.x,y,... 扫描多子网地址
nmap -iL xxx.txt 根据文件扫描多IP
nmap a.b.c.x-y 扫描子网IP范围
nmap a.b.c.* --exclude IP 排除指定IP扫描整个子网
nmap -A IP 扫描操作系统和路由跟踪
nmap -O IP 探测操作系统
nmap -sA/-PN IP 探测防火墙
nmap -sP a.b.c.* 探测在线主机
nmap -F IP 快速扫描
nmap -r IP 按顺序扫描
nmap -iflist 显示接口和路由信息
nmap -p n1,n2... IP 扫描指定端口
nmap -p T:n1,n2... IP 扫描TCP端口
nmap -sU n1,n2... IP 扫描UDP端口
nmap -sV IP 查看服务的版本
nmap -PS IP TCP ACK扫描
nmap -PA IP TCP SYN扫描
nmap -sS IP 隐蔽扫描
nmap -sN IP TCP空扫描欺骗防火墙
参数详解
-p<端口范围>:仅扫描指定的端口
nmap -p 80,3306,22,23,443 {IP} :指定端口扫描
nmap -p 1-65535 {IP}:全面扫描,计算机端口共65535个。
nmap -p- {IP}:另一种全面扫描(缩减版): -p-
显示扫描信息: -v(使用-vv或更多效果)
nmap p 80,3306,22,23,443 -v {IP}
高级穿透防火墙扫描: -sA
用于穿透防火墙,遇到禁止Ping的网站使用,与PN类似
nmap -sA 127.0.0.1
探测端口版本: -sV
nmap -sV - 127.0.0.1
写入报告:-oN/-oX/-oS/-oG <file>
nmap -oNoutput.nmap <target>:将扫描结果保存到名为output.nmap的文件中
nmap -oXoutput.xml <target>:将扫描结果保存到名为output.xml的文件中
nmap -oSoutput.svg <target>:将扫描结果保存到名为output.svg的文件中
nmap -oGoutput.gnp <target>:将扫描结果保存到名为output.gnp的文件中
扫描客户端存活主机:-sP
可扫描1-255 域名/IP网段的主机信息
nmap -sP www.xxx.com/24
禁止动态扫描: -T4
针对TCP端口禁止动态扫描延迟超过10ms
nmap -T4 127.0.0.1
快速扫描: -F
快速模式-扫描比默认扫描更少的端口,速度更快。
nmap -T4-F 127.0.0.1
穿透防火墙探测: -PN
部分系统禁止ping导致nmap部分选项无法执行,则遇到禁Ping的可以加上 `-PN` 绕过防火墙进行扫描探测
nmap -PN-A -v 127.0.0.1
反向解析域名/IP:-n/-R
参数-n代表不反向解析域名,而-R代表需要反向解析域名
nmap -n -v 127.0.0.1
增加端口扫描解释:--reason
参数--reason用于指定在执行扫描时,解释为什么扫描目标开放了某个特定的端口
nmap -p 80 --reason<target>
探测主机操作系统:-O (大写o
查看服务器是使用什么系统,如linux/windows
nmap -O www.xxx.com
批量扫描主机列表: -iL <xxx.txt>
有时候并非一个主机IP探测,也可以有多个主机一起探测。则使用`-iL`进行批量探测。
nmap -iL C:\\ips.txt
多个ip以换行形式写入,例如ips.txt 内容:
127.0.0.1
192.168.0.1
.....
探测目标主机IP协议:-sO
参数-sO用于判断目标主机上使用的是哪些协议,同时探测目标主机支持哪些IP协议。
nmap -sO<targetIP>:扫描目标IP地址并判断目标主机上使用的是哪些协议
指定扫描源:-S <IP_Address>
参数-S用于指定扫描的源IP地址。这个参数可以帮助网络安全人员在不使用自己的IP地址进行扫描的情况下,隐藏自己的位置。
nmap -S 192.168.0.1<target>:使用192.168.0.1作为扫描源IP地址,扫描目标主机的开放端口和相关信息
指定代理服务器地址:--proxies <url1,[url2],...>
参数--proxies用于指定代理服务器地址
nmap --proxies http://proxy1.example.com:8080 <target>:使用http://proxy1.example.com:8080作为代理服务器地址,扫描目标主机的开放端口和相关信息。
TCP connect 扫描: -sT
即tcp连接形式进行扫描,通常会在目标主机的日志中存在大批量请求以及错误日志(留下痕迹)
nmap -sT127.0.0.1
指定网络接口: -e <iface>
参数-e用于指定要使用的网络接口
nmap -e eth0<target>:使用eth0作为网络接口,扫描目标主机的开放端口和相关信息
指定扫描源端口:-g/--source-port <portnum>
参数-g或--source-port用于指定扫描时使用的源端口
nmap-g 80<target>:使用80作为源端口,扫描目标主机的开放端口和相关信息
空闲扫描:-sI
-sI用于进行空闲扫描,也被称为闲置扫描。这种类型的扫描通过发送一个带有随机源地址和源端口的TCP数据包,然后等待目标主机的响应,来探测目标主机上是否有开放端口。
nmap -sI<source_address> <target>:使用指定的源地址进行空闲扫描。
nmap -sI<random_port> <target>:使用随机端口进行空闲扫描。
半开式扫描: -sS/sT/sA/sW/sM
半开扫描,很少有系统能够把这记入系统日志。不过,需要root权限
半开扫描(half-open scanning),即TCP SYN scan。它利用了TCP连接建立三次握手的第一步,并且没有建立一个完整的TCP连接。实现办法是向远端主机某端口发送一个只有SYN标志位的TCP报文段,如果主机反馈一个SYN|ACK数据包,那么,这个主机正在监听该端口,如果反馈的是RST数据包,说明,主机没有监听该端口。在X-Scanner扫描工具上就有SYN的选择项。
nmap -sS -p 80,3306,22,23,443 {IP}