1. 概述Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具 。Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端 。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting) 。它是网络管理员必用的软件之一,以及用以评估网络系统安全 。
2. 基本功能1)探测目标主机是否在线
2)扫描主机端口,嗅探所提供的网络服务
3)推断主机所用的操作系统
3. 工具安装1)windows操作系统Nmap工具安装
在Nmap官网www.nmap.org直接下载安装Nmap工具最新版本,如nmap-7.80-setup.exe,双击进行安装,安装过程中会自动弹出安装npcap-0.9982.exe窗口,点击确认安装,并按照提示一步一步安装完成 。
2)linux操作系统Nmap工具安装
在Nmap官网www.nmap.org直接下载安装Nmap工具最新版本,如nmap-7.80-1.x86_64.rpm,将工具安装包下载到本地,然后使用如下命令安装即可(切换到安装包目录)
安装命令:rpm -ivh nmap-7.80-1.x86_64.rpm
卸载命令:rpm -e nmap-7.80-1.x86_64.rpm
4. 扫描原理4.1. TCP SYN扫描(-sS)Nmap默认扫描方式,通常被称为半开放扫描 。发送SYN包到目标端口,若收到SYN/ACK回复,则端口被认为开放状态;若收到RST回复,则端口被认为关闭状态;若没有收到回复,则认为该端口被屏蔽 。因为仅发送SYN包对目标主机的特定端口,但不建立完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用范围广 。
4.2. TCP connect扫描(-sT)使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭 。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标主机上留下记录信息,不够隐蔽 。
4.3. TCP ACK 扫描(-sA)向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽 。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况
4.4. TCP FIN/Xmas/NULL扫描(-sN/sF/sX)这三种扫描方式被称为秘密扫描,因为相对比较隐蔽 。FIN扫描向目标主机的端口发送的TCP FIN 包括Xmas tree包或NULL包,如果收到对方的RST回复包,那么说明该端口是关闭的;没有收到RST包说明该端口可能是开放的或者被屏蔽了 。其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有的flags都为0的TCP包 。
4.5. UDP扫描(-sU)UDP扫描用于判断UDP端口的情况,向目标主机的UDP端口发送探测包,如果收到回复ICMP port unreachable就说明该端口是关闭的;如果没有收到回复,那说明该UDP端口可能是开放的或者屏蔽的 。因此,通过反向排除法的方式来判断哪些UDP端口是可能处于开放状态的 。
4.6. 其他方式(-sY/-sZ)除了以上几种常用的方式外,Nmap还支持多种其他的探测方式 。例如使用SCTP INIT/Cookie-ECHO方式是来探测SCTP的端口开放情况;使用IP protocol方式来探测目标主机支持的协议类型(tcp/udp/icmp/sctp等等);使用idle scan方式借助僵尸主机来扫描目标主机,以达到隐蔽自己的目的;或者使用FTP bounce scan,借助FTP允许的代理服务扫描其他的主机,同样达到隐蔽自己的目的
5. 工具使用1)直接使用Nmap命令行方式
文章插图
2)使用Zenmap图形界面方式(详见Zenmap工具使用)
3)常见参数解读
-sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息
-sS 半开扫描,很少有系统能把它记入系统日志 。不过,需要Root权限
-sP ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描
-sU UDP端口扫描,,但UDP扫描是不可靠的
-sV 探测端口服务版本
-Pn 扫描之前不需要用ping命令,有些防火墙禁止ping命令 。可以使用此选项进行扫描
-A 选项用于使用进攻性方式扫描
-T4 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T4
-v 表示显示详细信息,在扫描过程中显示扫描的细节(如-vv显示更详细的信息)
-p 扫描指定端口(如-p 80)
--script 后面带插件名称,使用相应的插件(如--script ssl-enum-ciphers,扫描SSL/TLS算法套件)
-F 快速模式,仅扫描TOP 100的端口
-oN 标准保存,将扫描结果保存到指定的文件中(如-oN AAA.txt)
推荐阅读
- 网络扫描神器Nmap常用操作方法详解以及使用脚本爆破telnet密码
- SpringBoot+Mysql做登陆接口,抛弃mapper.xml
- 指定扫描目标和主机发现 Nmap使用详解
- 为什么端口明明开着,nmap却扫描不出来,看老司机怎么指点迷津
- 黑客手中利器nmap扫描器,轻而易举发现漏洞
- 只要一个IP,就能进行nmap“脚本”扫描
- Linux网络安全运维:网络探测和安全审核工具nmap
- centos7配置NTP时间服务器
- 黑客入门,诸神之眼-Nmap-使用指南
- 简单搭建一个NFS服务器