最新Nmap入门技术

点击星标,即时接收最新推文

4340c72c7eac95caf39cfd23bb3d68a1.png

本文选自《web安全攻防渗透测试实战指南(第2版)》

点击图片五折购书

147718592a68de4ce4c785444146734c.gif

Nmap详解

Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、WAF识别及常见的安全漏洞。它的图形化界面是Zenmap,分布式框架为DNmap。

Nmap的特点如下。

(1)主机探测:探测网络上的存活主机、开放特别端口的主机。

(2)端口扫描:探测目标主机所开放的端口。

(3)版本检测:探测目标主机的网络服务,判断其服务名称及版本号。

(4)系统检测:探测目标主机的操作系统及网络设备的硬件特性。

(5)支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言。

aa56a52eb7d90c882b91b3dba7b49e40.gif

Nmap的安装

从Nmap官网下载Nmap,按照提示一步步安装即可,如图3-56所示。

12fe1e6182e976f54080d8a81df6c113.png 

图3-56  

505faf23e708900628a491d70c9ab11a.gif

Nmap入门

1.扫描参数

进入安装目录后,在命令行直接执行nmap命令,将显示Namp的用法及其功能,如图3-57所示。

aa696bc10cef61f90b46b36de59de3fe.png 

图3-57  

在讲解具体的使用方法前,先介绍Nmap的相关参数的含义与用法。

首先,介绍设置扫描目标时用到的相关参数。

(1)-iL:从文件中导入目标主机或目标网段。

(2)-iR:随机选择目标主机。

(3)--exclude:后面跟的主机或网段将不在扫描范围内。

(4)--excludefile:导入文件中的主机或网段将不在扫描范围中。

与主机发现方法相关的参数如下。

(1)-sL:List Scan,仅列举指定目标的IP地址,不进行主机发现。

(2)-sn:Ping Scan,只进行主机发现,不进行端口扫描。

(3)-Pn:将所有指定的主机视作已开启,跳过主机发现的过程。

(4)-PS/PA/PU/PY[portlist]:使用TCP SYN/ACK或SCTP INIT/ECHO的方式进行主机发现。

(5)-PE/PP/PM:使用ICMP echo、timestamp、netmask请求包发现主机。

(6)-PO[protocollist]:使用IP协议包探测对方主机是否开启。

(7)-n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。

(8)--dns-servers <serv1[,serv2],...>:指定DNS服务器。

(9)--system-dns:指定使用系统的DNS服务器。

(10)--traceroute:追踪每个路由节点。

与常见的端口扫描方法相关的参数如下。

(1)-sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scan的方式对目标主机进行扫描。

(2)-sU:指定使用UDP扫描的方式确定目标主机的UDP端口状况。  

(3)-sN/sF/sX:指定使用TCP Null/FIN/Xmas scan秘密扫描的方式协助探测对方的TCP端口状态。  

(4)--scanflags <flags>:定制TCP包的flags。

(5)-sI <zombie host[:probeport]>:指定使用Idle scan的方式扫描目标主机(前提是需要找到合适的僵尸主机)。  

(6)-sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放情况。

(7)-sO:使用IP protocol扫描确定目标机支持的协议类型。

(8)-b <FTP relay host>:使用FTP bounce scan的方式扫描。

跟端口参数与扫描顺序的设置相关的参数如下。

(1)-p <port ranges>:扫描指定的端口。

(2)-F:Fast mode,仅扫描Top100的端口。

(3)-r:不进行端口随机打乱的操作(如无该参数,Nmap会将要扫描的端口以随机顺序的方式进行扫描,让Nmap的扫描不易被对方防火墙检测到)。  

(4)--top-ports <number>:扫描开放概率最高的“number”个端口。Nmap的作者曾做过大规模的互联网扫描,以此统计网络上各种端口可能开放的概率,并排列出最有可能开放端口的列表,具体可以参见nmap-services文件。默认情况下,Nmap会扫描最有可能的1000个TCP端口。

(5)--port-ratio <ratio>:扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,概率大于--port-ratio的端口才被扫描。显然,参数必须在0~1,想了解具体的概率范围,可以查看nmap-services文件。

与版本侦测相关的参数如下。

(1)-sV:指定让Nmap进行版本侦测。

(2)--version-intensity <level>:指定版本侦测的强度(0~9),默认为7。数值越高,探测出的服务器端越准确,但是运行时间会比较长。

(3)--version-light:指定使用轻量级侦测方式。

(4)--version-all:尝试使用所有的probes进行侦测。

(5)--version-trace:显示详细的版本侦测过程信息。

在了解了以上参数及其含义后,再来看用法会更好理解。扫描命令格式:Nmap+扫描参数+目标地址或网段。假设一次完整的Nmap扫描命令如下:

nmap -T4 -A -v ip

其中,-T4表示指定扫描过程中使用的时序(Timing),共有6个级别(0~5),级别越高,扫描速度越快,但也越容易被防火墙或IDS检测屏蔽,在网络通信状况良好的情况下,推荐使用-T4。-A表示使用进攻性(Aggressive)的方式扫描。-v表示显示冗余(Verbosity)信息,在扫描过程中显示扫描的细节,有助于让用户了解当前的扫描状态。

2.常用方法

虽然Nmap的参数较多,但通常不会全部用到,以下是在渗透测试过程中比较常见的命令。

(1)扫描单个目标地址。

在“nmap”后面直接添加目标地址即可扫描,如图3-58所示。

nmap 10.172.10.254

af3903173df3374a93a103ee5e7879c0.png 

图3-58  

(2)扫描多个目标地址。

如果目标地址不在同一网段,或在同一网段但不连续且数量不多,则可以使用该方法进行扫描,如图3-59所示。

nmap 10.172.10.254 10.172.10.2

2c0038a19ed74df5ce55df3be35fdb2d.png 

图3-59  

(3)扫描一个范围内的目标地址。

可以指定扫描一个连续的网段,中间使用“-”连接。例如,下列命令表示扫描范围为10.172.10.1 ~ 10.172.10.10,如图3-60所示。

nmap 10.172.10.1-10

eaee7add590f20387ded7d98b6126cb6.png 

图3-60  

(4)扫描目标地址所在的某个网段。

以C段为例,如果目标是一个网段,则可以通过添加子网掩码的方式扫描,下列命令表示扫描范围为10.172.10.1 ~ 10.172.10.255,如图3-61所示。

nmap 10.172.10.1/24

e33071ca01c25e3fef81da28ff86f68a.png 

图3-61  

(5)扫描主机列表targets.txt中的所有目标地址。

扫描1.txt中的地址或者网段,如果1.txt文件与nmap.exe在同一个目录下,则直接引用文件名即可(或者输入绝对路径),如图3-62所示。

nmap -iL 1.txt

4c1009aaedaa3d40deb24ad24651fd81.png 

图3-62  

(6)扫描除某一个目标地址之外的所有目标地址。

下列命令表示扫描除10.172.10.100之外的其他10.172.10.x地址。从扫描结果来看,确实没有对10.172.10.100进行扫描,如图3-63所示。

nmap 10.172.10.1/24  -exclude 10.172.10.100

4b8e4cf19aec1c11be04ee1a64ad9d93.png 

图3-63  

(7)扫描除某一文件中的目标地址之外的目标地址。

下列命令表示扫描除1.txt文件中涉及的地址或网段之外的目标地址。还是以扫描10.172.10.x网段为例,在1.txt中添加10.172.10.100和10.172.10.105,从扫描结果来看,已经证实该方法有效,如图3-64所示。

nmap 10.172.10.1/24 -excludefile 1.txt

b70b9c44b5a0998f71236a549c1b268b.png 

图3-64

(8)扫描某一目标地址的指定端口。

如果不需要对目标主机进行全端口扫描,只想探测它是否开放了某一端口,那么使用参数“-p”指定端口号,将大大提升扫描速度,结果如图3-65所示。

nmap 10.172.10.254 –p 21,22,23,80

83f2c66d86040ccefbaae14cbd03f430.png 

图3-65  

(9)对目标地址进行路由跟踪。

下列命令表示对目标地址进行路由跟踪,结果如图3-66所示。

nmap --traceroute 10.172.10.254

38bd1ea62e596ead6a826564f60c8896.png 

图3-66  

(10)扫描目标地址所在C段的在线状况。

下列命令表示扫描目标地址所在C段的在线状况,结果如图3-67所示。

nmap -sP 10.172.10.1/24

24ca17197b0507aef1677feb393556ab.png 

图3-67  

(11)对目标地址的操作系统进行指纹识别。

下列命令表示通过指纹识别技术识别目标地址的操作系统的版本,结果如图3-68所示。

nmap –O 192.168.0.105

a0f15a419140439335b51bca3d38133f.png 

图3-68  

(12)检测目标地址开放的端口对应的服务版本信息。

下列命令表示检测目标地址开放的端口对应的服务版本信息,结果如图3-69所示。

nmap -sV 10.172.10.254

4f09fa3a89090539d73cde9ee9c3e7d9.png 

图3-69  

(13)探测防火墙状态。

在实战中,可以利用FIN扫描的方式探测防火墙的状态。FIN扫描用于识别端口是否关闭,收到RST回复说明该端口关闭,否则就是open或filtered状态,如图3-70所示。

nmap -sF –T4 10.172.10.38

0f18ade933cbeee312f41b6c736716ca.png

图3-70

3.状态识别

Nmap输出的是扫描列表,包括端口号、端口状态、服务名称、服务版本及协议。通常有如表3-1所示的六种状态。

表3-1  

状    态

含    义

open

开放的,表示应用程序正在监听该端口的连接,外部可以访问

filtered

被过滤的,表示端口被防火墙或其他网络设备阻止,外部不能访问

closed

关闭的,表示目标主机未开启该端口

unfiltered

未被过滤的,表示Nmap无法确定端口所处状态,需进一步探测

open/filtered

开放的或被过滤的,Nmap不能识别

closed/filtered

关闭的或被过滤的,Nmap不能识别

了解以上状态,将有利于我们在渗透测试过程中确定下一步应该采取什么方法或攻击手段。

9355320180b390323ac79fd89bc9612f.gif

MS08067安全实验室视频号已上线

欢迎各位同学关注转发~

—  实验室旗下直播培训课程  —

fc292219bf437f6f64c679b9e5337cc9.png

2015128ae5320285f6ded162b9dec7c7.jpeg

cdbfef99aa55674a96eca0f4a9d8cef6.jpegf9c1d7c167dbab35eb68a1d43f6667ef.png

d5c1a41d8822ee2f8f8bffcd144cd1f3.jpeg

0f407a202874e3f7d404c30c1b1f00c6.jpeg

66c0865180db991fc6b844c6605fd72b.jpeg

54e5684b5fb15ae2a3b5b60aa668f0b1.jpeg

8c16eab1724815b37fad65853341854e.jpeg


和20000+位同学加入MS08067一起学习

63009a4844527637b217072955dcf46a.gif

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博客写长篇,公众号写短篇

博客使用的markdown格式非常适合技术类的文章&#xff0c;我大部分博客的内容写的都很长&#xff0c;有一部分很深的内容&#xff0c;也有特别基础的内容。 因为之前写博客总会花费太多时间&#xff0c;所以量比较少&#xff0c;现在打算用更少的时间在公众号写一些简单的内容…

Ubuntu Touch OTA-2 推出,支持 Fairphone 3 和 F(x)tec Pro1 X

导读UBports 基金会近日宣布为基于 Ubuntu 20.04 LTS (Focal Fossa) 的 Ubuntu Touch 移动操作系统发布并全面提供 OTA-2 软件更新。 Ubuntu Touch OTA-2 在首次 OTA 更新整整四个月后发布&#xff0c;支持新设备&#xff0c;包括 Fairphone 3、F(x)tec Pro1 X 和 Vollaphone X…

抖音seo短视频矩阵系统源码开发源代码分享--开源-可二开

适用于抖音短视频seo矩阵系统&#xff0c;抖音矩阵系统源码&#xff0c;短视频seo矩阵系统源码&#xff0c;短视频矩阵源码开发&#xff0c;支持二次开发&#xff0c;开源定制&#xff0c;招商加盟SaaS研发等。 功能开发设计 1. AI视频批量剪辑&#xff08;文字转语音&#x…

Dolphin for Mac(Wii游戏模拟器)配置指南

Wii模拟器Dolphin Mac是款适合Mac电脑中的游戏玩家们使用的模拟器工具。Wii模拟器Dolphin Mac官方版支持直接运行游戏镜像文件&#xff0c;玩家可以将游戏ISO拷贝到某一个文件夹中统一进行管理。Wii模拟器Dolphin Mac除了键盘和鼠标外&#xff0c;还支持配合原版的Wii遥控器操作…

【手写promise——基本功能、链式调用、promise.all、promise.race】

文章目录 前言一、前置知识二、实现基本功能二、实现链式调用三、实现Promise.all四、实现Promise.race总结 前言 关于动机&#xff0c;无论是在工作还是面试中&#xff0c;都会遇到Promise的相关使用和原理&#xff0c;手写Promise也有助于学习设计模式以及代码设计。 本文主…

linux并发服务器 —— 动态库和静态库实战(一)

-E 预处理指定源文件 -S 编译指定源文件 -c 汇编指定源文件 -o 生成可执行文件 -I directory 指定Include包含文件的搜索目录 -g 编译的时候生成调试信息 -D 在程序编译时指定一个宏 -w 不生成任何的警告信息 -Wall 生成所有警告 -On n:0~3&#xff1b;表示编译器的优…

局域网远程软件Radmin

Radmin是一个快速且安全的远程控制和远程访问软件&#xff0c;通过它可以就像坐在远程计算机前一样&#xff0c;在远程计算机上工作&#xff0c;并可以从多个位置访问远程计算机。&#xff08;本例使用的版本是Radmin 3.5&#xff09; 下载Radmin 3.5安装包。 Radmin 3.5安装…

Android事件分发

Android事件分发是指触摸屏幕的事件分发&#xff0c;在手指触摸屏幕后所产生的一系列事件中&#xff0c;典型的事件类型有如下几种: MotionEvent.ACTION_DOWN ——手指刚接触屏幕MotionEvent.ACTION_MOVE——手指在屏幕上面滑动MotionEvent.ACTION_UP——手指从屏幕上松开的一…

2023京东酒类市场数据分析(京东数据开放平台)

根据鲸参谋平台的数据统计&#xff0c;今年7月份京东平台酒类环比集体下滑&#xff0c;接下来我们一起来看白酒、啤酒、葡萄酒的详情数据。 首先来看白酒市场。 鲸参谋数据显示&#xff0c;7月份京东平台白酒的销量为210万&#xff0c;环比下滑约49%&#xff1b;销售额将近19…

【ArcGIS Pro二次开发】(62):复制字段

应网友需求&#xff0c;做了这么一个复制字段的小工具。 假定这样一个场景&#xff0c;手头有一个要素1&#xff0c;要素里有10个字段&#xff0c;另一个要素2&#xff0c;除了shape_area等图形字段外&#xff0c;没有其它字段。 现在的需求是&#xff0c;想把要素1中的8个字…

【C++】list类的模拟实现

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;C的学习之路 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录 前言一、list类的模拟实现1.1 list的…

【Leetcode】124.二叉树中的最大路径和(Hard)

一、题目 1、题目描述 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其…