Nmap安装和使用详解

Nmap安装和使用详解

Nmap概述

Nmap被誉为"扫描器之王",Nmap是一个开源工具,提供跨平台(Windows、linux、mac os)

功能概述

  • 查看主机存活

  • 扫描目标主机开放端口

  • 识别目标主机操作系统

  • 查看目标主机服务的版本信息

  • 漏洞探测

运行方式

  • 命令行

  • 图形化工具Zenmap

Nmap安装

官网:https://nmap.org

Nmap支持Windows、linux、mac os三个平台,首先可以打开Nmap官方https://nmap.org选择最新版本点击下载按钮。

然后选择相应的平台下载即可

安装方式跟普通软件安装一样。如果是在Kali Linux中,Kali自带Nmap工具,无须再次下载和安装。

官方文档参考:

Nmap参数详解

Nmap功能非常强大,Nmap的格式如下

powershell 复制代码
nmap[扫描类型...] [选项] [扫描目标说明]

可以配置的参数也很多,我们先来看一下Nmap的参数

首先在Kali中输入nmap即可查看Nmap所有的参数以及说明

我们来看一下每组参数的具体含义

目标说明

powershell 复制代码
TARGET SPECIFICATION
  • -iL : 从列表中输入 从主机地址列表中导入扫描地址 可以从主机的文件中导入扫描列表

  • -iR : 随机选择目标,hostnum表示目标数目,0意味着永无休止的扫描

  • --exclude <host1 [, host2] [, host3] ...> 排除主机/网络

  • --excludefile 排除文件中的列表

主机发现

powershell 复制代码
HOST DISCOVERY
  • -sL 扫描列表,仅将指定的目标IP列举出来,不进行主机发现

  • -sn 跟-sP 一样,只利用ping扫描进行主机发现,不扫描目标主机的端口,只扫描是否在线 不扫描端口

  • -Pn 将所有指定的主机视为已开启状态,跳过主机发现过程

  • -PS [portlist]:TCP SYN Ping,发送一个设置了SYN标志位的空TCP报文

  • -PE; -PP; -PM:ICMP Ping Types,发送ICMP Type 8 (回声请求)报文,期待从运行的主机得到一个type 0 (回声相应)报文

  • n:不用域名解析,加快扫描速度

  • -R:为所有目标IP地址作反向域名解析

  • --system-dns:使用系统域名解析器,一般不使用该选项,因为比较慢

端口扫描

powershell 复制代码
SCAN TECHNIQUES
Nmap将目标主机端口分成6种状态:
  • open(开放)

  • closed(关闭)

  • filtered(被过滤的)

  • unfiltered(未被过滤) 可访问但不确定开放情况

  • open|filtered(开放或被过滤)无法确定端口是开放的还是被过滤的

  • closed|filtered(关闭或被过滤)无法确认端口是关闭的还是被过滤的

Nmap产生结果是基于机器的响应报文,而这些主机可能是不可信任的,会产生一些迷惑或者误导Nmap的报文

常用命令

  • -sS TCP SYN扫描,半开放状态,扫描速度快隐蔽性好(不完成TCP连接),能够明确区分端口状态

  • -sT TCP连接扫描,容易产生记录,效率低

  • -sA TCP ACK扫描 只设置ACK标志位,区别被过滤与未被过滤

  • -sU UDP服务扫描

  • --sO:IP协议扫描,可以确定目标机支持哪些IP协议(TCP, ICMP, IGMP)

端口说明和扫描顺序

powershell 复制代码
PORT SPECIFICATION AND SCAN ORDER
  • --p :只扫描指定的端口,单个端口和用连字符表示的端口范围都可以;当既扫描TCP端口又扫描UDP端口时,您可以通过在端口号前加上T: 或者U:指定协议。协议限定符一直有效您直到指定另一个。

    例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。

    注意,要既扫描 UDP又扫描TCP,您必须指定 -sU ,以及至少一个TCP扫描类型(如 -sS,-sF,或者 -sT)

  • --p :扫描指定的端口名称,如nmap--p smtp,http 10.10.1.44

  • --p U:[UDP ports],T:[TCP ports]:对指定的端口进行指定协议的扫描

  • --F:快速扫描(仅扫描100个最常用的端口),nmap-services文件指定想要扫描的端口;可以用---datadir选项指定自己的小小nmap-services文件

  • --top-ports :扫描前number个端口

  • --r:不要按随机顺序扫描端口,默认情况下按随机(常用的端口前移)

服务与版本探测

powershell 复制代码
SERVICE/VERSION DETECTION

nmap-services是一个包含服务的数据库,Nmap通过查询该数据库可以报告那些端口可能对应于什么服务器,但不一定正确。

在用某种扫描方法发现TCP/UDP端口后,版本探测会询问这些端口,确定到底什么服务正在运行;

nmap-service-probes数据库包含查询不同服务的探测报文和解析识别响应的匹配表达式;

当Nmap从某个服务收到响应,但不能在数据库中找到匹配时,就打印出一个fingerprint和一个URL给您提交。

参数含义:
  • --sV:打开版本探测

  • --allports:不为版本探测排除任何端口,默认情况下跳过9100端口

  • --version-intensity:设置版本扫描强度,范围为0-9,默认是7,强度越高,时间越长,服务越可能被正确识别

  • --version-light:是---version-intensity2的别名

  • --version-all:是---version-intensity9的别名

  • --version-trace:跟踪版本扫描活动,打印出详细的关于正在进行的扫描的调试信息

  • --sR:RPC扫描,对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令,来试图 确定它们是否RPC端口,如果是, 是什么程序和版本号

脚本扫描

powershell 复制代码
SCRIPT SCAN

操作系统探测

powershell 复制代码
OS DETECTION
  • --O:启用操作系统检测;-A可以同时启用操作系统检测和版本检测

  • --osscan-limit:针对指定的目标进行操作系统检测

  • --osscan-guess|--fuzzy:当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配

时间和性能

powershell 复制代码
TIMING AND PERFORMANCE
  • --min-hostgroup ;--max-hostgroup :

    调整并行扫描组的大小,用于保持组的大小在一个指定的范围之内;

    Nmap具有并行扫描多主机端口或版本的能力,Nmap将多个目标IP地址空间分成组,然后在同一时间对一个组进行扫描。

    通常,大的组更有效。缺点是只有当整个组扫描结束后才会提供主机的扫描结果

  • --min-parallelism; --max-parallelism :调整探测报文的并行度,用于控制主机组的探测报文数量;默认状态下, Nmap基于网络性能计算一个理想的并行度,这个值经常改变

防火墙/IDS规避和欺骗

powershell 复制代码
FIREWALL/IDS EVASION AND SPOOFING
  • --f(报文分段); --mtu(使用指定的MTU):将TCP头分段在几个包中,使得包过滤器、 IDS以及其它工具的检测更加困难

  • --D <decoy1 [, decoy2] [, ME]...>:

    使用诱饵隐蔽扫描;

    使用逗号分隔每个诱饵主机,也可用自己的真实IP作为诱饵,这时可使用 ME选项说明。

    如果在第6个位置或更后的位置使用ME选项,一些常用端口扫描检测器(如Solar Designer's excellent scanlogd)就不会报告 这个真实IP。

    如果不使用ME选项,Nmap 将真实IP放在一个随机的位置

  • --S <IP_Address>:源地址哄骗,说明所需发送包的接口IP地址

  • --e :使用指定的接口

  • --source-port; -g :

    源端口哄骗;

    很多产品本身会有这类 不安全的隐患,甚至是微软的产品。

    Windows 2000和Windows XP中包含的IPsec过滤器也包含了一些隐含规则,允许所有来自88端口(Kerberos)的TCP和UDP数据流。

    另一个常见的例子是Zone Alarm个人防火墙到2.1.25版本仍然允许源端口53(DNS)或 67(DHCP)的UDP包进入。

  • --data-length :发送报文时附加随机数据

  • --ttl :设置IPtime-to-live域

  • --randomize-hosts:对目标主机的顺序随机排列

输出选项

powershell 复制代码
OUTPUT
  • --oN :标准输出

  • --oX :XML输出写入指定的文件

  • --oS :脚本小子输出,类似于交互工具输出

  • --oG :Grep输出

  • --oA :输出至所有格式

  • --v:提高输出信息的详细度

  • --d [level]:提高或设置调试级别,9最高

  • --packet-trace:跟踪发送和接收的报文

  • --iflist:输出检测到的接口列表和系统路由

  • --append-output:表示在输出文件中添加,而不是覆盖原文件

  • --resume :继续中断的扫描,

  • --stylesheet :设置XSL样式表,转换XML输出;Web浏览器中打开Nmap的XML输出时,将会在文件系统中寻找nmap.xsl文件,并使用它输出结果

  • --no-stylesheet:忽略XML生命的XSL样式表

使用示例

常用扫描命令

扫描ip地址或域名

nmap后面也可以带上多个ip地址或域名,用空格隔开

扫描整个网段

powershell 复制代码
nmap  ip/网段

还可以输入ip地址范围内如

powershell 复制代码
nmap 192.168.0.1-200

扫描文件

我们可以新建一个文件,往里面输入一些需要扫描的地址

扫描文件命令

powershell 复制代码
nmap -iL  文件路径

从扫描的结果可以看到一共扫到了4个我们输入的地址

只进行主机发现

可以用以下命令只进行主机发现,而不扫描端口或服务

powershell 复制代码
nmap -sn或-sP ip 地址

扫描特定端口

我们还可以指定只扫描的端口号

powershell 复制代码
nmap -p80,21,8080 ip或域名

也可以指定扫描端口号的范围

powershell 复制代码
 nmap -p50-800  ip或域名  

输出扫描结果

前面的扫描不会显示扫描过程,可以加入-vv参数显示扫描的过程

powershell 复制代码
nmap -vv    

路由跟踪

可以输入以下命令进行简单扫描并进行路由跟踪

powershell 复制代码
namp -traceroute  域名

探测操作系统

输入一下命令探测操作系统类型

powershell 复制代码
 nmap -O  ip  

-O多次扫描结果可能会不一样,建议替换为-A

TCP和UDP扫描

扫描半开放TCP端口
powershell 复制代码
nmap -sS ip 
扫描UDP 服务端口
powershell 复制代码
nmap -sU      ip    

版本扫描

扫描系统安装的服务以及服务的版本

powershell 复制代码
namp -sV  ip  

综合扫描

包含1-10000端口的ping扫描,操作系统扫描,路由跟踪,服务探测

powershell 复制代码
nmap -A  ip 

图形化工具Zenmap使用

Kali自带nmap图形化工具zenmap

启动zenmap可以看到如下界面
  • target:扫描地址 可以输入ip或域名

  • Profile:扫描的方式,zenmap默认给我们提供了10种组合扫描方式

命令行中也可以自己定义扫描参数,默认扫描方式的参数如下

  • -T 设置速度等级 1-5级,数字越大,速度越快

  • -A 综合扫描

  • -v 输出扫描过程

点击扫描即可展示扫描过程和结果


修改扫描参数

也可以对系统提供的默认扫描方式修改其扫描参数

未完待遇,本文持续更新,先收藏一波吧。。。


友情链接:

编程日记

Nmap安装和使用详解

Teacher.Hu

Nmap安装和使用详解

相关推荐
huluang1 小时前
医院网络安全重保行动方案
网络·安全
九州ip动态1 小时前
如何安全使用改IP软件更改异地IP地址?
网络·tcp/ip·安全
杭州泽沃电子科技有限公司1 小时前
告别翻山越岭!智能监拍远程守护输电线路安全
运维·人工智能·科技·安全
小韩博2 小时前
metasploit 框架安装更新遇到无法下载问题如何解决
linux·网络安全·公钥·下载失败
wha the fuck4043 小时前
攻防世界—unseping(反序列化)
安全·序列化和反序列化
David WangYang6 小时前
基于 IOT 的安全系统,带有使用 ESP8266 的语音消息
物联网·安全·语音识别
合作小小程序员小小店7 小时前
SDN安全开发环境中常见的框架,工具,第三方库,mininet常见指令介绍
python·安全·生成对抗网络·网络安全·网络攻击模型
数据智能老司机8 小时前
实现逆向工程——汇编指令演练
安全·逆向·汇编语言
网络研究院10 小时前
新的“MadeYouReset”方法利用 HTTP/2 进行隐秘的 DoS 攻击
网络·网络协议·安全·http·攻击·漏洞
guts°10 小时前
6-服务安全检测和防御技术
安全