最新Nmap入门技术

news2024/11/17 15:44:48

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

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.coloradmin.cn/o/934751.html

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

相关文章

如何卸载mysql?windows版

查看电脑是否安装过mysql&#xff1a; cmd输入&#xff1a;mysql -V 卸载第一步&#xff1a; 停止Mysql服务&#xff1a;winR 打开运行&#xff0c;输入 services.msc 点击"确定"调出系统服务。 这个进程名为安装MySQL的进程名,是可以更改的,默认为MySQL80 打开控制…

独家采访WizardLM团队,详解WizardCoder/Math超越GPT4/ChatGPT的RLEIF算法

最新消息&#xff01; 在Meta AI发布Code Llama后仅两天的时间&#xff0c;WizardLM 团队基于该模型及其最新的对齐算法训练的WizardCoder-Python 34B V1.0在权威代码生成评测榜单HumanEval上即达到了惊人的 73.2% pass1分值&#xff0c;同时超越了Claude-2&#xff08;71.2%&…

python-下载数据-制作全球地震散点图:JSON格式

查看JSON数据 import json# 探索数据的结构 filename eq_data_1_day_m1.geojson with open(filename) as f:all_eq_data json.load(f)readable_file readable_eq_data.json with open(readable_file, w) as f:json.dump(all_eq_data, f, indent4)json.load() 将数据转换为P…

ExpressLRS开源之接收机固件编译烧录步骤

ExpressLRS开源之接收机固件编译烧录步骤 1. 源由2. 编译步骤2.1 推荐源代码指定方案2.2 方法一&#xff1a;ELRS Configurator步骤一&#xff1a;下载ELRS Configurator工具步骤二&#xff1a;安装ELRS Configurator工具步骤三&#xff1a;使用ELRS Configurator工具进行配置步…

快速启动 - 一键启动您的目标应用

《快速启动》- 快速管理&#xff0c;便捷控制 作为一款管理类应用&#xff0c;《快速启动》拥有简洁且实用的分类功能。它能将你的应用归类&#xff0c;让你轻松找到所需。无论是工具类、娱乐类还是社交类应用&#xff0c;《快速启动》都能让你的手机变得井井有条。 与普通管理…

学霸有特权

导读 同时保有两种截然相反的观念还能正常行事&#xff0c;这是第一流智慧的标志 -- 菲茨杰拉德 周末愉快。 1. 有一次在西湖公园门口等着接娃&#xff0c;凑上来一位并不面善的大汉&#xff0c;低声问我&#xff1a;兄弟你有没兴趣了解下"我主"。 我&#xff1a;可以…

LeetCode--HOT100题(43)

目录 题目描述&#xff1a;98. 验证二叉搜索树&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;98. 验证二叉搜索树&#xff08;中等&#xff09; 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定…

软件测评单位需要哪些资质?

软件测评资质 在进行软件测试或其他项目检测需要选择软件测评公司时&#xff0c;我们常常会把该公司有无资质认证考虑进去。那么软件测评公司在为企业出软件测试报告过程中&#xff0c;需要有什么资质才是合法合规的&#xff1f; 软件测评公司需要什么资质&#xff1f; 国内第…

用 PHP 和 JavaScript 显示地球卫星照片

向日葵 8 号气象卫星是日本宇宙航空研究开发机构设计制造的向日葵系列卫星之一&#xff0c;重约 3500 公斤&#xff0c;设计寿命 15 年以上。该卫星于 2014 年 10 月 7 日由 H2A 火箭搭载发射成功&#xff0c;主要用于监测暴雨云团、台风动向以及持续喷发活动的火山等防灾领域。…

基于微信小程序中小学生练字书法家校联合系统

对于一些学生和书法爱好者来说&#xff0c;需要时时刻刻了解&#xff0c;自己及自己所喜欢的书法的相关信息&#xff0c;书法作业的相关事宜&#xff0c;学生作业的相关信息&#xff0c;比如查询教学进度、书法作业等这样才能更好的推动我国的书法事业发展,为此今后有必要对书法…

【硬件设计】硬件学习笔记一--元器件的介绍与选型

硬件学习笔记一--元器件的选型 一、电阻1.1 电阻的分类1.2 电阻的选型 二、电容2.1 陶瓷电容2.2 钽电容2.3 铝电解电容2.4 电容选型 三、电感3.1 定义与介绍3.2 电感的分类3.3 电感的参数 四、磁珠4.1 磁珠的介绍4.2 磁珠的参数 五、二极管5.1 定义5.2 稳压管5.3 肖特基二极管5…

心法利器[97] | 判断问题是否真的需要大模型来解决

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

微服务系统面经之二: 以秒杀系统为例

16 微服务与集群部署 16.1 一个微服务一般会采用集群部署吗&#xff1f; 对于一个微服务是否采用集群部署&#xff0c;这完全取决于具体的业务需求和系统规模。如果一个微服务的访问压力较大&#xff0c;或者需要提供高可用性&#xff0c;那么采用集群部署是一种常见的策略。…

社区供稿 | FaceChain 开源项目原理解析

一、背景说明 各类 AI 写真软件由于其精准的个人形象精美的生成效果引爆了朋友圈传播&#xff0c;证件照满足了用户刚需&#xff0c;古装照等风格照满足了用户“美照”的需求。 FaceChain 是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低三张照片即可获…

十五、pikachu之CSRF

文章目录 一、CSRF概述二、CSRF实战2.1 CSRF(get)2.2 CSRF之token 一、CSRF概述 Cross-site request forgery 简称为“CSRF”&#xff0c;在CSRF的攻击场景中攻击者会伪造一个请求&#xff08;这个请求一般是一个链接&#xff09;&#xff0c;然后欺骗目标用户进行点击&#xf…

对标 GPT-4?科大讯飞刘庆峰:华为GPU技术能力已与英伟达持平

科大讯飞创始人、董事长刘庆峰在亚布力中国企业家论坛第十九届夏季高峰会上透露了关于自家大模型进展的一些新内容。刘庆峰认为&#xff0c;中国在人工智能领域的算法并没有问题&#xff0c;但是算力方面似乎一直被英伟达所限制。 以往的“百模大战”中&#xff0c;训练大型模型…

mysql下载

网址 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 2、选择MSI进行安装 3、这里我选择离线安装 4、这里我选择直接下载 5、等待下载安装即可

改变癌症诊断!梯度提升方法可准确预测癌症患者的生存风险!

一、引言 癌症是全球范围内一种严重的疾病&#xff0c;对人类健康造成了巨大的威胁。据世界卫生组织统计&#xff0c;癌症是全球首要死因之一&#xff0c;每年有数百万人因癌症而丧生 [1]。然而&#xff0c;早期的癌症诊断和治疗非常重要&#xff0c;可以显著提高患者的存活率和…

滑动窗口系列4-Leetcode322题零钱兑换-限制张数-暴力递归到动态规划再到滑动窗口

这个题目是Leecode322的变种&#xff0c;322原题如下&#xff1a; 我们这里的变化是把硬币变成可以重复的&#xff0c;并且只有coins数组中给出的这么多的金币&#xff0c;也就是说有数量限制&#xff1a; package dataStructure.leecode.practice;import java.util.Arrays; i…

ChatGPT癌症治疗“困难重重”,真假混讲难辨真假,准确有待提高

近年来&#xff0c;人工智能在医疗领域的应用逐渐增多&#xff0c;其中自然语言处理模型如ChatGPT在提供医疗建议和信息方面引起了广泛关注。然而&#xff0c;最新的研究表明&#xff0c;尽管ChatGPT在许多领域取得了成功&#xff0c;但它在癌症治疗方案上的准确性仍有待提高。…