Nmap安装和使用详解

2023-09-19 13:37:12

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的格式如下

nmap[扫描类型…] [选项] [扫描目标说明]

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

首先在Kali中输入nmap即可查看Nmap所有的参数以及说明
在这里插入图片描述

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

目标说明

TARGET SPECIFICATION

在这里插入图片描述

  • -iL : 从列表中输入 从主机地址列表中导入扫描地址 可以从主机的文件中导入扫描列表

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

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

  • –excludefile 排除文件中的列表

主机发现

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:使用系统域名解析器,一般不使用该选项,因为比较慢

端口扫描

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)

端口说明和扫描顺序

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:不要按随机顺序扫描端口,默认情况下按随机(常用的端口前移)

服务与版本探测

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端口,如果是, 是什么程序和版本号

脚本扫描

SCRIPT SCAN

在这里插入图片描述

操作系统探测

OS DETECTION

在这里插入图片描述

  • –O:启用操作系统检测;-A可以同时启用操作系统检测和版本检测

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

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

时间和性能

TIMING AND PERFORMANCE

在这里插入图片描述

  • –min-hostgroup ;–max-hostgroup :

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

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

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

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

防火墙/IDS规避和欺骗

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:对目标主机的顺序随机排列

输出选项

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地址或域名,用空格隔开

扫描整个网段

nmap  ip/网段

在这里插入图片描述

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

nmap 192.168.0.1-200

在这里插入图片描述

在这里插入图片描述

扫描文件

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

扫描文件命令

nmap -iL  文件路径

在这里插入图片描述

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

在这里插入图片描述

只进行主机发现

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

nmap -sn或-sP ip 地址

在这里插入图片描述

扫描特定端口

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

nmap -p80,21,8080 ip或域名

在这里插入图片描述

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

 nmap -p50-800  ip或域名  

在这里插入图片描述

输出扫描结果

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

nmap -vv    

在这里插入图片描述

路由跟踪

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

namp -traceroute  域名

在这里插入图片描述

探测操作系统

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

 nmap -O  ip  

在这里插入图片描述

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

TCP和UDP扫描

扫描半开放TCP端口
nmap -sS ip 

在这里插入图片描述

扫描UDP 服务端口
nmap -sU      ip    

在这里插入图片描述

版本扫描

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

namp -sV  ip  

在这里插入图片描述

综合扫描

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

nmap -A  ip 

在这里插入图片描述

在这里插入图片描述

图形化工具Zenmap使用

Kali自带nmap图形化工具zenmap

启动zenmap可以看到如下界面

在这里插入图片描述

  • target:扫描地址 可以输入ip或域名

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

在这里插入图片描述

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

在这里插入图片描述

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

  • -A 综合扫描

  • -v 输出扫描过程

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

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

修改扫描参数

也可以对系统提供的默认扫描方式修改其扫描参数
在这里插入图片描述

在这里插入图片描述

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







友情链接:

编程日记

Nmap安装和使用详解

Teacher.Hu

Nmap安装和使用详解

更多推荐

企业如何获得用户信赖感,媒介盒子告诉你

互联网和新媒体的快速发展使得内容市场空前繁荣,营销方式也越来越多元化,消费者已经很难被夸张吸睛的营销模式打动,他们更倾向于选择自己信赖的产品,对于企业而言,用户信任是决定企业发展与否的关键因素,产品和品牌失去用户信任将很难发展长远。接下来媒介盒子就告诉大家,企业如何利用软文推广获得用户信赖感。一、&nbsp;软文突出品

27种跨境电商站外引流方法,看看有没有用过

如果你在跨境电商站内感觉做得差不多,可以尝试寻找外部流量,站外引流方法大概有4大类:1.主动销售2.网红合作3.内容营销4.其他方法一、主动销售01创建EDM邮件列表用MailChimp,在你的自有网站或者第三方建站平台,创建一个邮箱注册页面,收集你的潜在用户的邮件列表,然后给他们发销售类,或者相关客户感兴趣的内容。0

爱弥儿——语录

多给孩子们一些自由空间,少替他们做些事情,好让他们多些自己动手的机会。如果他跌倒了,摔伤了头部,磕破了鼻子或者擦掉了手指上的皮,我不会表现得一脸慌张,而是平静地站在旁边,或者过一段时间再走过去安慰他。是他自己跌倒在地,所以他就得自己承担后果。其实,受伤的时候,受伤所带来的恐惧感比受伤本身更让他难受。他会根据我的反应来判

个人认为最快搭建免费数字人平台的方法(均不用魔法)

一、提前准备安装包:1、秋叶整合包:bilibili上很多up主有分享最新的如:全网最易安装|StableDiffusion安装教程(内含下载链接)-哔哩哔哩2、ffmpeg安装包:​​​​​​https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z3、SadTalke

聊聊最近使用 AI 的一些感想

AI的发展是令人兴奋的,但火热至今,仍然没看到令我感到兴奋的产品,可能更多的AI是面向B端,我体验不到吧。相比过去,现在的AI聊天机器人显得更加智能和人性化了,但它的置信度还不高,简单说,就是一本正经的胡说八道。最近我主要是在以下几个场景使用AI。玩了下AI生成代码,一些单纯的逻辑、算法代码还是不错的,但是不能太复杂,

编译vtk源码

vtk和opengl关系VTK(VisualizationToolkit)和OpenGL(OpenGraphicsLibrary)都是用于图形可视化和渲染的重要工具,但它们在图形编程中的角色和关系略有不同。OpenGL:OpenGL是一种开放的图形库和API,用于渲染2D和3D图形。它提供了一组函数和命令,允许开发人员

Vue.js入门模板语法[上] 及Vue.js实现购物车---详细讲解

前言前面我们学习了Vue的基础入门,接下来我们学习有关Vue的模板语法,学习Vue语法能提高我们的前端开发效率Vue.js使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue.js的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。vue将模板编译成虚拟do

linux环境安装redis(亲测完成)

linux环境安装redis亲测完成前言一、redis简介Redis与其他key-value缓存产品有以下三个特点:Redis优势二、安装redis1.下载安装包2.创建服务器安装路径3.上传安装包4.解压安装包5.依赖安装6.编译三、启动1)默认启动错误解决方式2)指定配置启动2.1)备份配置文件2.2)修改配置文件

最完整的Markdown基础教程

开发写文档常用的内容包括:转义字符、时序图、流程图、表格1.Markdown显示转义字符可以用4个反引号2.时序图#mermaid-svg-KecZDU8WrsAVXm4d{font-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fill:#3

NotePad++ 在行前/行后添加特殊字符内容方法

我们在处理数据时,会遇到需要在每行数据前面、后面、开头、结尾添加各种不一样的字符如果数据不多,我们可以自己手动的去添加,但如果达到了成百上千行,此时再机械的手动添加是不现实的这里教给大家如何快速的在数据每行的前后加不同的字符(任何汉字、字母、符号都可以)首先下载一个Notepad++(相信各位不会陌生,比自带的记事本强

Pytorch中张量矩阵乘法函数(mm, bmm, matmul)使用说明,含高维张量实例及运行结果

Pytorch中张量矩阵乘法函数使用说明1torch.mm()函数1.1torch.mm()函数定义及参数1.2torch.bmm()官方示例2torch.bmm()函数2.1torch.bmm()函数定义及参数2.2torch.bmm()官方示例3torch.matmul()函数3.1torch.matmul()函数

热文推荐