nmap端口扫描工具安装和使用方法

news2025/1/21 22:07:44

nmap(Network Mapper)是一款开源免费的针对大型网络的端口扫描工具,nmap可以检测目标主机是否在线、主机端口开放情况、检测主机运行的服务类型及版本信息、检测操作系统与设备类型等信息。本文主要介绍nmap工具安装和基本使用方法。

nmap主要功能在这里插入图片描述

(1)检测主机是否在线。例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。

(2)扫描指定主机/主机列表端口开放状态,枚举目标主机上的开放端口,常用。

(3)检测主机运行服务类型及版本,检测远程设备上的网络服务以确定应用程序名称和版本号。

(4)检测操作系统版本和设备类型 ,确定网络设备的操作系统和硬件特性。

(5)可与脚本进行脚本交互,使用Nmap脚本引擎(NSE)和Lua编程语言。

nmap工具下载和安装
(1)nmap官方下载路径:https://nmap.org/download.html

(2)按照操作系统类型下载相应软件安装。

(3)Windows软件执行.exe软件安装。
在这里插入图片描述

(4)Linux系统下载的rpm软件安装,上传到root用户目录下执行rpm命令完成安装:rpm -ivh nmap-7.80-1.x86_64.rpm
在这里插入图片描述

nmap命令使用方法
namp [ 扫描类型 ] [ 通用选项 ] [ 扫描目标 ]

扫描类型:

-sT:TCP connect()扫描,这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听, connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。

-sS:TCP同步扫描(TCP SYN),因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上有我们的操作系统内核自动完成的。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要root权限来定制SYN数据包。

-sU:UDP扫描,发送0字节UDP包,快速扫描Windows的UDP端口如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。

-sP:ping扫描,有时你只是想知道此时网络上哪些主机正在运行。通过向你指定的网络内的每个IP地址发送ICMP echo请求数据包,nmap就可以完成这项任务。注意,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。如果你只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。

-sA:ACK扫描 TCP ACK扫描,当防火墙开启时,查看防火墙有未过虑某端口,这项高级的扫描方法通常用来穿过防火墙的规则集。通常情况下,这有助于确定一个防火墙是功能比较完善的或者是一个简单的包过滤程序,只是阻塞进入的SYN包。这种扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。如果返回一个RST包,这个端口就标记为unfiltered状态。如果什么都没有返回,或者返回一个不可达ICMP消息,这个端口就归入filtered类。注意,nmap通常不输出unfiltered的端口,所以在输出中通常不显示所有被探测的端口。显然,这种扫描方式不能找出处于打开状态的端口。

-sW:滑动窗口扫描,这项高级扫描技术非常类似于ACK扫描,除了它有时可以检测到处于打开状态的端口,因为滑动窗口的大小是不规则的,有些操作系统可以报告其大小。

-sR:RPC扫描,和其他不同的端口扫描方法结合使用。

-b:FTP反弹攻击(FTP Bounce attack) 外网用户通过FTP渗透内网

通用选项

-P0:nmap扫描前不Ping目标主机。在扫描之前,不必ping主机。有些网络的防火墙不允许ICMP echo请求穿过,使用这个选项可以对这些网络进行扫描。

-PT:nmap扫描前使用TCP ACK包确定主机是否在运行(-PT默认80。扫描之前,使用TCP ping确定哪些主机正在运行。nmap不是通过发送ICMP echo请求包然后等待响应来实现这种功能,而是向目标网络(或者单一主机)发出TCP ACK包然后等待回应。如果主机正在运行就会返回RST包。只有在目标网络/主机阻塞了ping包,而仍旧允许你对其进行扫描时,这个选项才有效。对于非 root用户,我们使用connect()系统调用来实现这项功能。使用-PT 来设定目标端口。默认的端口号是80,因为这个端口通常不会被过滤。

-PS: nmap使用TCP SYN包进行扫描。对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYN/ACK包)。

-PI:nmap进行Ping扫描。设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。使用这个选项让nmap发现正在运行的主机的同时,nmap也会对你的直接子网广播地址进行观察。直接子网广播地址一些外部可达的IP地址,把外部的包转换为一个内向的IP广播包,向一个计算机子网发送。这些IP广播包应该删除,因为会造成拒绝服务攻击(例如 smurf)。

-PB:结合-PT和-PI功能,这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。

-O:Nmap扫描TCP/IP指纹特征,确定目标主机系统类型。

-I:反向标志扫描,扫描监听端口的用户

-f:分片发送SYN、FIN、Xmas、和Null扫描的数据包

-v:冗余模式扫描,可以得到扫描详细信息

-oN: 扫描结果重定向到文件

-resume:使被中断的扫描可以继续

-iL:-iL,扫描目录文件列表

-p:-p 指定端口或扫描端口列表及范围,默认扫描1-1024端口和/usr/share/nmap/nmap-services文件中指定端口。-p例:23;20-30,139,60000-这个选项让你选择要进行扫描的端口号的范围。例如,-p 23表示:只扫描目标主机的23号端口。-p 20-30,139,60000-表示:扫描20到30号端口,139号端口以及所有大于60000的端口。

扫描目标

扫描目标通常为IP地址或IP列表

192.168.10.1

192.168.10.0/24

192.168..

nmap扫描基本场景
1、使用TCP SYN发现活跃主机

nmap -PS 192.168.1.0/24

2、使用TCP方式扫描端口

nmap -sS -sV -n -p1-65535 -oX tcp.xml 192.168.1.0

3、使用UDP方式扫描端口

nmap -sS -sU -n -p1-65535 -oX udp.xml 192.168.1.0

4、判断操作系统

nmap -O 192.168.1.0/24

5、判断服务版本

nmap -sV 192.168.1.0/24

端口分类和扫描端口状态分析
1、端口分类

公认端口(well-known port):从0至1024,最常用端口,通常与协议绑定;

注册端口(registered port):从1025至49151,这些端口已经注册到服务协议上;

动态或私有端口(dynamic/private port):从49152至65535。

另外,端口还与协议相关;比如:UDP端口53通常用于DNS查询、TCP端口53通常用于DNS记录迁移。

2、扫描结果端口状态说明

open:目标端口开启。

closed:目标端口关闭。

filtered:通常被防火墙拦截,无法判断目标端口开启与否。

unfiltered:目标端口可以访问,但无法判断开启与否。

open | filtered:无法确定端口是开启还是filtered。

closed | filtered:无法确定端口是关闭还是filtered。

nmap工具使用FAQ
1、使用UDP扫描端口状态速度非常慢,如何加快扫描速度?

在/proc/sys/net/ipv4目录下,将icmp_ratemask的值改为0(默认为6168),操作步骤如下:

Step1:cat /proc/sys/net/ipv4/icmp_ratemask,记录数值,通常为6168。

Step2:echo “0” > /proc/sys/net/ipv4/icmp_ratemask。不需要重启系统。

Step:3:nmap扫描,完成后执行Step3回复。

Step4:echo “6168” > /proc/sys/net/ipv4/icmp_ratemask。

小结
本文介绍nmap端口扫描工具的基本使用方法,方便工具使用时查询。后续根据工具使用场景再进一步刷新。

参考资料
1、Nmap命令扫描详解

2、Nmap扫描原理与用法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

循环神经⽹络中的梯度算法GRU

1. 什么是GRU 在循环神经⽹络中的梯度计算⽅法中,我们发现,当时间步数较⼤或者时间步较小时,**循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。**通常由于这个原因&#xff0…

Android模拟器的安装和adb连接

一、前置说明 APP 自动化可以使用真机进行测试,也可以使用模拟器来模拟安卓设备。我们可以根据个人喜好安装模拟器,个人推荐安装两款模拟器:网易 MuMu 模拟器、夜神模拟器。 MuMu模拟器可以支持 Android 12 版本,优点是&#xf…

服务器经常死机怎么办?如何处理

关于服务器死机这一话题相信大家是不会陌生的,平时在使用服务器的过程中,或多或少都是会有遇到过。轻则耽误业务开展,重则造成数据丢失,相信每个人都不想碰到服务器死机的情况。下文我也简单的介绍下服务器死机的原因以及对应的预…

进程间通信---无名管道

无名管道和有名管道的区别: 无名管道只能用于父进程和子进程之间通信,而有名管道可以用于任意两个进程间通信 管道工作的原理: 切记:无名管道一旦创建完成后,操作无名管道等同于操作文件,无名管道的读端/写…

全网超细,Pytest自动化测试YAML数据驱动实战(详全)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、YAML简介 yam…

acwing Linux 租云服务器环境配置

今天给大家讲解acwing Linux 租云服务器&环境配置,这里以阿里云为例子给大家讲解一下如何租用这个云服务器,现在有阿里云、华为云、腾讯云、京东云这么几个大的服务系统,我个人是喜欢华为云的嘻嘻,因为个人比较喜欢华为公司&a…

React 中的 ref 和 refs:解锁更多可能性(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【ITK库学习】使用itk库进行图像配准:内插器(插值)

目录 1、itkNearestNeighborInterpolateImageFunction 最近点插值2、itkLinearInterpolateImageFunction 线性插值3、itkBSplineInterpolateImageFunction B样条插值4、itkWindowedSincInterpolateImageFunction 窗口化Sinc插值5、itkRayCastInterpolateImageFunction 投射插值…

阿里云ECS配置IPv6后,如果无法访问该服务器上的网站,可检查如下配置

1、域名解析到这个IPv6地址,同一个子域名可以同时解析到IPv4和IPv6两个地址,这样就可以给网站配置ip4和ipv6双栈; 2、在安全组规则开通端口可访问,设定端口后注意授权对象要特殊设置“源:::/0” 3、到服务器nginx配置处,增加端口…

虾皮跨境电商的收款方式及选择指南

虾皮(Shopee)作为一家知名的跨境电商平台,为卖家提供了多种收款方式,以满足不同卖家的需求。本文将介绍虾皮跨境电商平台的主要收款方式,并提供选择指南,帮助卖家根据自身需求和目标市场选择最合适的收款方…

AutoEncoder个人记录

原理 最常见的降维算法有主成分分析法PCA,通过对协方差矩阵进行特征分解而得到数据的主要成分,但是 PCA 本质上是一种线性变换,提取特征的能力极为有限。 AutoEncoder把长度为d_in输入特征向量变换到长度为d_out的输出向量,借助于…

深圳鼎信|输电线路防山火视频监控预警装置:森林火灾来袭,安全不留白!

受线路走廊制约和环保要求影响,输电线路大多建立在高山上,不仅可以减少地面障碍物和人类活动的干扰,还能提高线路的抗灾能力和可靠性。但同时也会面临其它的难题,例如森林火灾预防。今天,深圳鼎信智慧将从不同角度分析…

福FLUKE禄克8808A数字多用表

福禄克8808A,用于制造、研发、维修等应用的多功能数字表,FLUKE 8808A 5.5位数字多用表可以完成当今众多常用的测量工作。无论是功能测 展开 福禄克8808A,用于制造、研发、维修等应用的多功能数字表,FLUKE 8808A 5.5位数字多用表可…

NiNNet

目录 一、网络介绍 1、全连接层存在的问题 2、NiN的解决方案(NiN块) 3、NiN架构 4、总结 二、代码实现 1、定义NiN卷积块 2、NiN模型 3、训练模型 一、网络介绍 NiN(Network in Network)是一种用于图像识别任务的卷积神经网络模型。它由谷歌研究…

node-red:使用node-red-contrib-amqp节点,实现与RabbitMQ服务器(AMQP)的消息传递

node-red-contrib-amqp节点使用 一、简介1.1 什么是AMQP协议?1.2 什么是RabbitMQ? -> 开源的AMQP协议实现1.3 RabbitMQ的WEB管理界面介绍1.3 如何实现RabbitMQ的数据采集? -> node-red 二、node-red-contrib-amqp节点安装与使用教程2.1 节点安装2.2 节点使用2.2.1 amq…

tsconfig.app.json文件报红:Option ‘importsNotUsedAsValues‘ is deprecated...

在创建vue3 vite ts项目时的 tsconfig.json(或者tsconfig.app.json) 配置文件经常会报一个这样的错误: 爆红: Option ‘importsNotUsedAsValues’ is deprecated and will stop functioning in TypeScript 5.5. Specify compi…

干货:教你如何在JMeter中调用Python代码N种方法!

在性能测试领域,Jmeter已经成为测试专业人士的首选工具,用于模拟用户行为、测量响应时间、评估系统性能。而现在大部分接口都会涉及到验签、签名、加密等操作,为了满足特定需求,我们需要更多的灵活性,比如引入Python来…

推荐算法架构7:特征工程(吊打面试官,史上最全!)

系列文章,请多关注 推荐算法架构1:召回 推荐算法架构2:粗排 推荐算法架构3:精排 推荐算法架构4:重排 推荐算法架构5:全链路专项优化 推荐算法架构6:数据样本 推荐算法架构7:特…

QTNet:Query-based Temporal Fusion with Explicit Motion for 3D Object Detection

参考代码:QTNet 动机和出发点 自动驾驶中时序信息对感知性能具有较大影响,如在感知稳定性维度上。对于常见的时序融合多是在feature的维度上做,这个维度的融合主要分为如下两个方案: 1)BEV-based方案:将之…

信号与线性系统翻转课堂笔记7——信号正交与傅里叶级数

信号与线性系统翻转课堂笔记7——信号正交与傅里叶级数 The Flipped Classroom7 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1,重点&a…