简介
Nmap (网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap将特定数据包发送到目标主机,然后分析响应。NMAP强大的网络工具,用于枚举和测试网络。
Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用winodws,linux,mac等操作系统,是一款非常强大的渗透测试工具。
补充
工具下载:传送门
补充套件(运行报错使用):传送门
注意点:如果你在windows环境下想丝滑的使用nmap,请配置环境变量到系统!
参考:
一般默认是在C:\Program Files (x86)\Nmap
然后环境变量path添加C:\Program Files (x86)\Nmap
常用功能介绍:
1.主机发现(Host Detection):识别网络上的主机,例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。
2.端口扫描(Port Scanning): 枚举目标主机上的开放端口。
3.版本侦测(version Detection):检测远程设备上的网络服务以确定应用程序名称和版本号。
4.操作系统侦测(Operating System Detection):检测网络设备的操作系统和硬件特性。
使用
示例一:
nmap -sS -p 1-65535 -v 192.168.1.1
表示使用半开扫描,指定端口为1-65536,并且显示扫描过程。
示例二:
nmap -n -sP 192.168.18.0/23
扫描192.168.18.1——192.168.18.255网段内所有的存活IP
常用扫描参数
-sT | TCP connection()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息 |
---|---|
-sS | 半开扫描,很少有系统能把它记入系统日志。不过需要root权限才能使用 |
-sF -sN | 秘密FIN数据包扫描、Xmas Tree、Null扫描模式 |
-sP | ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会几乎扫描 |
-sU | UDP扫描,但UDP扫描是不可靠的 |
-sA | 这项高级的扫描方法通常用来穿过防火墙的规则集 |
-sV | 探测端口服务版本 |
-PO | 扫描之前不需要用ping命令,有些防火墙禁止用ping命令。可以使用此选项进行扫描 |
-v | 显示扫描过程,推荐使用 |
-h | 帮助文档 |
-O | 启动远程操作系统检测,存在误报 |
-p | 指定端口,如:“1-65535、21、23、3389、8080” |
-A | 全面系统检测,启用脚本检测、扫描等。 |
-oN -oX -oG | 将报告写入文件,分别是正常、XML、grepable三种格式 |
-T4 | 针对TCP端口扫描禁止动态扫描延迟超过10ms |
-iL | 读取主机列表,例如“-iL C:\ip.txt” |
-Pn | 禁用主机检测,如果主机屏蔽了ping请求,Nmap可能会认为该主机没有开机。这将使得Nmap无法进行进一 步检测 |
案例
案例一:扫描www.xxser.com C段存活主机
命令:nmap -sP www.xxser.com/24
案例二:指定端口扫描
命令:nmap -p 80,1433,22,1521 www.xxser.com
案例三:探测主机操作系统
命令:nmap -o www.xxser.com
案例四:全面的系统检测
命令:nmap -v -A www.xxser.com
注:Nmap默认扫描主机的1000个高危端口,若需要全面检测端口,则需要加上“-p 1-65535”或者“-p-”
案例五:穿透防火墙进行扫描
www.2cto.com是禁止用ping的,Nmap的一些常用选项无法再起作用,这时可以利用“-Pn”参数
命令:nmap -Pn -A www.2cto.com
补充
Nmap脚本引擎
在Nmap安装目录下存在Script文件夹,在Script文件夹下存在许多以".nse"后缀结尾的文本文件,即为Nmap自带的脚本引擎。
使用Nmap脚本引擎时,只需要添加命令**“--script=脚本名称”**
案例
案例一:扫描web敏感目录
命令:nmap -p 80 --script=http-enum.nse www.xxser.com
案例二:扫描sql_lnjection
命令:nmap -p 80 --script=sql-injection.nse www.xxser.com
案例三:使用所有脚本进行扫描
命令:nmap --script all 127.0.0.1
案例四:使用通配符扫描
命令:nmap --script "http-*" 127.0.0.1
表示使用所有以http-开头的脚本扫描