nmap
简介
Nmap,也就是 Network Mapper,最早是 Linux 下的网络扫描和嗅探工具包。
nmap 是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用 nmap 来探测工作环境中未经批准使用的服务器,但是黑客会利用 nmap 来搜集目标电脑的网络设定,从而制定攻击计划。
功能
- 主机发现 - 识别网络上的主机。例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。
- 端口扫描 - 枚举目标主机上的开放端口。
- 版本检测 - 询问远程设备上的网络服务以确定应用程序名称和版本号。
- OS检测 - 确定网络设备的操作系统和硬件特性。
- 可与脚本进行脚本交互 - 使用 nmap 脚本引擎(NSE)和 Lua 编程语言。
历史
2009 年 07 月 17 日,开源网络安全扫描工具 nmap 正式发布了 5.00版,这是自 1997 年以来最重要的发布,代表着 nmap 从简单的网络连接端扫描软件变身为全方面的安全和网络工具组件。
nmap 于 1997 年 9 月推出,支持 Linux、Windows、Solaris、BSD、Mac OS X、AmigaOS 系统,采用 GPL 许可证,最初用于扫描开放的网络连接端,确定哪服务运行在那些连接端,它是评估网络系统安全的重要软件,也是黑客常用的工具之一。新的 nmap 5.00 版大幅改进了性能,增加了大量的脚本。例如 nmap 现在能登录进入 Windows,执行本地检查(PDF),能检测出臭名昭著的 Conficker 蠕虫。其它的主要特性包括:用于数据传输,重定向和调试的新 Ncat 工具,Ndiff 快速扫描比较工具,高级 GUI 和结果浏览器Zenmap等。
2010年01月25日,Nmap 5.20 发布。
2012年12月04日,Nmap 6.25 发布,网络安全审计工具。
2015年11月19日,Nmap 7.0发布。
2016年03月17日,Nmap 7.10发布。
2016年09月29日,Nmap 7.30发布。
2016年10月29日,Nmap 7.31发布。
2016年12月20日,Nmap 7.40发布。
2017年06月13日,Nmap 7.50发布。
2017年07月31日,Nmap 7.60发布。
2018年03月20日,Nmap 7.70发布。
2019年08月10日,nmap 7.80发布
安装
Centos7.3
官网下载页面获取最新的
rpm
包连接:1
https://nmap.org/dist/nmap-7.91-1.x86_64.rpm
使用
rpm
命令下载安装:1
[root@cs tmp]# rpm -vhU https://nmap.org/dist/nmap-7.91-1.x86_64.rpm
测试是否安装成功:
1
2
3
4
5
6[root@cs tmp]# nmap --version
Nmap version 7.91 ( https://nmap.org )
Platform: x86_64-redhat-linux-gnu
Compiled with: nmap-liblua-5.3.5 openssl-1.1.1h nmap-libssh2-1.9.0 nmap-libz-1.2.11 nmap-libpcre-7.6 nmap-libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select来个示例,查看本机开放端口情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14[root@cs tmp]# nmap localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-09 12:56 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 995 closed ports
PORT STATE SERVICE
20/tcp open ftp-data
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
windows10
- 从 nmap 的官网下载二进制的安装包
- 一路下一步安装,中间会遇到安装插件,全选就完了。
- 安装完毕,后续可能会有使用 Python 调用 nmap 的情况,所以还需要将 nmap 的安装目录添加到系统的 path 中,然后重启电脑即可。
可能的报错
nmap3.exceptions.NmapNotInstalledError: Nmap is either not installed or we couldn't locate nmap path Please ensure nmap is installed
当你在 Windows 平台中,使用 Python 操作 nmap 时,而 nmap 的安装目录没有添加到系统 path 就会报这个错误。
解决办法就是添加 path
nmap 语法及常用命令
语法:
1 |
|
例:nmap -A 192.168.1.110
或 nmap -A 192.168.1.1-100
(对一个ip范围进行全面扫描)
nmap 支持多元化的语法格式 ,例:
nmap 192.168.1.110
单个目标扫描nmap 192.168.1.110 192.168.1.22 192.168.1.33
多个目标扫描nmap 192.168.43.10,20,30
多个目标扫描简写nmap 192.168.1.1-30
指定范围段扫描
选项 -T
时序
1 |
|
端口的说明
端口分为 TCP 和 UDP 两种类型
- TCP: 面向连接. 较可靠
- UDP: 无连接.不可靠的
常见 TCP 端口: 80, 443, 139, 445, 3306, 6379, 8080等.
端口范围 1-65535
- 公认端口(well-known port):从0至1024,最常用端口,通常与协议绑定;
- 注册端口(registered port):从1025至49151,这些端口已经注册到服务协议上;
- 动态或私有端口(dynamic/private port):从49152至65535。
扫描结果端口状态说明
- open:目标端口开启。
- closed:目标端口关闭。
- filtered:通常被防火墙拦截,无法判断目标端口开启与否。
- unfiltered:目标端口可以访问,但无法判断开启与否。
- open | filtered:无法确定端口是开启还是filtered。
- closed | filtered:无法确定端口是关闭还是filtered。