最新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.rhkb.cn/news/111287.html

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

相关文章

Linux操作系统--linux概述

1.Linux概述 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff08;OS&#xff09;。简单的说就是一种操作系统。在日常中常见的操作系统有一下三种: 2.linux起源和背景 (1).linux的诞生 linux操作系统是由李纳斯托瓦兹&#xf…

小研究 - J2EE 应用服务器的软件老化测试研究

软件老化现象是影响软件可靠性的重要因素&#xff0c;长期运行的软件系统存在软件老化现象&#xff0c;这将影响整个业务系统的正常运行&#xff0c;给企事业单位带来无可估量的经济损失。软件老化出现的主要原因是操作系统资源消耗殆尽&#xff0c;导致应用系统的性能下降甚至…

读书笔记——《万物有灵》

前言 上一本书是《走出荒野》&#xff0c;太平洋步道女王提到了这本书《万物有灵》&#xff0c;她同样是看一点撕一点的阅读。我想&#xff0c;在她穿越山河森林&#xff0c;听见鸟鸣溪流的旅行过程中&#xff0c;是不是看这本描写动物有如何聪明的书——《万物有灵》&#xf…

YOLOv5引入FasterNet主干网络,目标检测速度提升明显

目录 一、背景介绍1.1 目标检测算法简介1.2 YOLOv5简介及发展历程 二、主干网络选择的重要性2.1 主干网络在目标检测中的作用2.2 YOLOv5使用的默认主干网络 三、FasterNet简介与原理解析3.1 FasterNet概述3.2 FasterNet的网络结构3.2.1 基础网络模块3.2.2 快速特征融合模块3.2.…

docker network

docker network create <network>docker network connect <network> <container>docker network inspect <network>使用这个地址作为host即可 TODO&#xff1a;添加docker-compose

最新企业网盘产品推荐榜发布

随着数字化发展&#xff0c;传统的文化存储方式已无法跟上企业发展的步伐。云存储的出现为企业提供了新的文件管理存储模式。企业网盘作为云存储的代表性工具&#xff0c;被越来越多的企业所青睐。那么在众多企业网盘产品中&#xff0c;企业该如何找到合适的企业网盘呢&#xf…

idea上利用JDBC连接MySQL数据库(8.1.0版)

1.了解jdbc概念 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API&#xff0c;可以为多种 关系数据库提供统一访问&#xff0c;它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准&#xff0c;据此可以构建 更高级的工具和接口&#…

顺序表链表OJ题(1)——【LeetCode】

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 前言&#xff1a; 今天我们来回顾一下顺序表与链表&#xff0c;针对这一块我们也有许多OJ题目供大家参考。当我们学习完顺序表链表后避免不了一些习题的练习&#xff0c;这样才能巩固我们学习的内容。 话不多说&#xf…

Javaweb基础学习(4)

Javaweb基础学习&#xff08;4&#xff09; 一、JSP学习1.1 JSP的简介概述1.2 JSP快速入门1.3 JSP原理1.4 JSP脚本1.5 JSP缺点1.6 EL表达式1.7 JSL标签1.7.1 JSL快速入门 1.8 MVC 模式和三层架构1.9 三层架构 三、会话跟踪技术3.1 会话跟踪技术介绍3.2 Cookie的基本使用3.3、Co…

python-图片之乐-ASCII 文本图形

ASCII&#xff1a;一个简单的字符编码方案 pillow模块&#xff1a;读取图像&#xff0c;访问底层数据 numpy模块&#xff1a;计算平均值 import sys, random, argparse import numpy as np import math from PIL import Image定义灰度等级和网格 定义两种灰度等级作为全局值…

Linux环境离线安装MySQL8.0.33

目录 一、准备 1、检查libaio.so.1 2、卸载删除原有的mariadb 3、删除my.cnf 4、下载mysql安装包 二、安装 1、上传mysql 2、建立mysql所需目录 3、建立配置文件my.cnf 4、创建mysql用户并授权 5、初始化数据库 6、启动MySQL数据库 7、常见启动报错处理 8、配置M…

VMware标准虚拟交换机和分布式交换机

一、虚拟交换机 初期的网络虚拟化&#xff0c;是非常狭义的概念&#xff0c;主要指的是因为计算资源虚拟化&#xff0c;每台物理宿主机上安装了虚拟化软件&#xff0c;同时会部署了虚拟交换机&#xff0c;负责物理机上面承载的VM&#xff08;虚拟机&#xff09;之间与对外的通…

用心维护好电脑,提高学习工作效率

文章目录 一、我的电脑1.1 如何查看自己的电脑硬件信息呢&#xff1f; 二、电脑标准保养步骤和建议2.1 保持清洁2.2 定期升级系统和软件2.3 安全防护2.4 清理磁盘空间2.5 备份重要数据2.6 优化启动项2.7 散热管理2.8 硬件维护2.9 电源管理2.10 注意下载和安装2.11 定期维护 三、…

数据结构:单向循环链表

单向循环链表和单向链表差不多&#xff0c;只需要记录头节点的位置把单向链表判断NULL的地方改为判断头节点即可 dxxhlb.h dxxhlb.cmain.c 结果

聚类分析 | MATLAB实现基于AHC聚类算法可视化

聚类分析 | MATLAB实现基于AHC聚类算法可视化 目录 聚类分析 | MATLAB实现基于AHC聚类算法可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 AHC聚类算法&#xff0c;聚类结果可视化&#xff0c;MATLAB程序。 Agglomerative Hierarchical Clustering&#xff08;自底…

ArrayList与顺序表

文章目录 一. 顺序表是什么二. ArrayList是什么三. ArrayList的构造方法四. ArrayList的常见方法4.1 add()4.2 size()4.3 remove()4.4 get()4.5 set()4.6 contains()4.7 lastIndexOf()和 indexOf(&#xff09;4.8 subList()4.9 clear() 以上就是ArrayList的常见方法&#xff01…

【科研论文配图绘制】task6直方图绘制

【科研论文配图绘制】task6直方图绘制 task6 主要掌握直方图的绘制技巧&#xff0c;了解直方图含义&#xff0c;清楚统计指标的添加方式 1.直方图 直方图是一种用于表示数据分布和离散情况的统计图形&#xff0c;它的外观和柱形图相近&#xff0c;但它所 表达的含义和柱形图…

串口联网通信数据监听视监控侦测协议规约破解方案

作为物联网数据采集解决方案专业提供商,数采物联网小编daq-iot 在这里做以下内容介绍,并诚挚的欢迎大家讨论和交流。 本方案主要用于监听和侦测 串口通信数据报文&#xff0c;主要用于协议报文分析 破解领域。 例如破解摄像头控制道闸开启的命令等。 监控和分析通信数据代表的含…

设计模式-职责链模式

文章目录 职责链模式模式概述主要角色适用场景实现步骤优点注意事项 定义职责链结构示例总结 职责链模式 职责链模式是一种行为设计模式&#xff0c;它可以将请求的发送者和请求的处理者解耦&#xff0c;并按照预定义的顺序处理请求。职责链模式常用于需要逐级审批或转交处理的…

网络编程——套接字和字节序

目录 一、BSD套接字接口1.1 套接字类型1.2 套接字的位置 二、字节序2.1 大小端2.2 大小端判断2.3 主机字节序和网络字节序2.4 字节序转换函数 一、BSD套接字接口 BSD套接字接口是BSD的进程间通信的方式&#xff0c;它不仅支持各种形式的网络应用而且它还是一种进程间通信的机制…