THM学习笔记——Nmap

Nmap是一款用于网络发现和安全审计的网络安全工具,通常情况下,Nmap用于:

  • 列举网络主机清单

  • 管理服务升级调度

  • 监控主机

  • 服务运行状况

Nmap可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。

系统管理员可以利用Nmap来探测工作环境中未经批准使用的服务器,黑客通常会利用Nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Nmap通常用在信息搜集阶段,用于搜集目标机主机的基本状态信息。扫描结果可以作为漏洞扫描、漏洞利用和权限提升阶段的输入。

Nmap不仅可以用于扫描单个主机,也可以适用于扫描大规模的计算机网络

Nmap是一个功能强大的网络扫描工具,用于发现主机、服务和开放端口等信息。

Nmap的基本用法:

扫描单个主机或主机范围

nmap target
nmap 192.168.1.1
nmap example.com
nmap 192.168.1.1-100

扫描整个子网

nmap 192.168.1.0/24

扫描多个目标

nmap target1 target2 target3

扫描特定端口

nmap -p port target
nmap -p 80,443 example.com

扫描常见端口

nmap -F target

指定扫描技术

nmap -sS target   # TCP SYN 扫描
nmap -sT target   # TCP 连接扫描
nmap -sU target   # UDP 扫描

指定扫描范围

nmap -p1-100 target   # 扫描端口范围
nmap -sS -p- target   # 扫描所有65535个TCP端口

扫描速度和详细级别

nmap -T4 target   # 设置扫描速度
nmap -v target    # 详细输出

指定输出格式

nmap -oN output.txt target   # 输出到文本文件
nmap -oX output.xml target   # 输出到XML文件

禁用主机发现

nmap -Pn target   # 禁用Ping扫描

指定脚本扫描

nmap --script scriptname target   # 执行特定脚本

这些是Nmap的一些基本用法,但Nmap具有更多高级功能和选项,可以根据需要进行深入研究和学习。

详细介绍

在使用Nmap进行端口扫描时,有三种基本的扫描类型。它们分别是:

- TCP连接扫描 (-sT)
- SYN "半开放"扫描 (-sS)
- UDP扫描 (-sU)

TCP连接扫描

要理解TCP连接扫描 ,最重要的是对 TCP三次握手熟悉。

三次握手包括三个阶段。首先,连接的终端向目标服务器发送一个带有SYN标志的TCP请求。然后,服务器用一个包含SYN标志和ACK标志的TCP响应确认此数据包。最后,我们的终端通过发送一个带有ACK标志的TCP请求来完成握手。

TCP连接扫描通过依次与每个目标端口执行三次握手来工作。换句话说,Nmap尝试连接到每个指定的TCP端口,并通过接收到的响应确定服务是否开放。

SYN扫描

与TCP扫描类似,SYN扫描用于扫描目标或目标的TCP端口范围;然而,这两种扫描类型的工作方式略有不同。SYN扫描有时被称为“半开放”扫描,或“隐秘”扫描。

TCP扫描与目标执行完整的三次握手,而SYN扫描在从服务器收到SYN/ACK后发送一个RST TCP数据包(这可以防止服务器重复尝试请求)。

这对我们有很多优势:

- 它可以用来绕过旧版入侵检测系统,因为它们正在寻找完整的三次握手。对于现代IDS解决方案来说,情况通常不再是这样;正是因为这个原因,SYN扫描仍然经常被称为“隐秘”扫描。
- SYN扫描通常不会被打开端口上侦听的应用程序记录,因为标准做法是在建立连接后记录连接。这再次体现了SYN扫描的隐蔽性。
- 由于不必为每个端口完成(和断开)三次握手,SYN扫描比标准TCP连接扫描快得多。

然而,SYN扫描也有一些缺点,即:

- 它们需要sudo权限才能在Linux中正确工作。这是因为SYN扫描需要创建原始数据包的能力(与完整的TCP握手相反),这是仅root用户默认拥有的特权。
- 不稳定的服务有时会被SYN扫描关闭,如果客户端为测试提供了生产环境,则可能会出现问题。

总的来说,优点胜过缺点。

因此,如果具有sudo权限运行,则SYN扫描是Nmap使用的默认扫描。如果没有sudo权限运行,则Nmap默认使用我们在前面任务中看到的TCP连接扫描。

在使用SYN扫描识别关闭和过滤端口时,与使用TCP连接扫描相同的规则适用。

如果端口关闭,则服务器将以RST TCP数据包做出响应。如果防火墙过滤了端口,则TCP SYN数据包要么被丢弃,要么被伪造成TCP重置。

UDP扫描

与TCP不同,UDP连接是无状态的。这意味着,UDP连接不是通过来回的“握手”来建立连接,而是依靠将数据包发送到目标端口,并希望它们能到达。这使得UDP非常适用于速度优先于质量的连接(例如视频共享),但是缺乏确认使得UDP扫描变得更加困难(也更加缓慢)。

当一个数据包发送到一个打开的UDP端口时,不应该有响应。当这种情况发生时,Nmap将端口标记为 open|filtered。换句话说,它怀疑该端口是开放的,但可能已经被防火墙过滤。如果它收到UDP响应(这是非常不寻常的),那么该端口将被标记为open。更常见的情况是没有响应,此时请求会第二次发送以进行双重检查。如果仍然没有响应,则端口将被标记为 *open|filtered*,并且Nmap继续进行扫描。

当一个数据包发送到一个关闭的UDP端口时,目标应该用包含端口不可达消息的ICMP(ping)数据包做出响应。这清楚地标识了关闭的端口,Nmap会将其标记为关闭并继续进行扫描。

由于很难确定UDP端口是否真正开放,与各种TCP扫描相比,UDP扫描往往非常缓慢(在良好连接下扫描前1000个端口需要大约20分钟)。因此,通常最好使用启用了 --top-ports <number> 的Nmap扫描。例如,

使用 nmap -sU --top-ports 20 <target> 进行扫描,将扫描最常用的20个UDP端口,从而获得更可接受的扫描时间。

在扫描UDP端口时,Nmap通常发送完全空的请求 -- 仅仅是原始的UDP数据包。也就是说,对于通常由众所周知的服务占用的端口,它将发送一个特定于协议的有效载荷,这更有可能引发响应,并得出更准确的结果。

ICMP网络扫描

在黑盒分配中第一次连接到目标网络时,我们想看看哪些IP地址包含活动主机,哪些不包含。

其中一种方法是使用Nmap执行所谓的“ping扫描”。这正如其名字所示:Nmap向指定网络的每个可能的IP地址发送一个ICMP数据包。当它收到响应时,它将标记响应的IP地址为活动。

要执行ping扫描,我们使用 -sn 开关与IP范围结合使用,IP范围可以用连字符(-)或CIDR表示法指定。例如,我们可以使用以下命令扫描192.168.0.x网络:

- nmap -sn 192.168.0.1-254

或者

- nmap -sn 192.168.0.0/24

-sn 开关告诉Nmap不要扫描任何端口 -- 强制其主要依赖ICMP回显数据包(或者在本地网络上运行时使用sudo或直接作为根用户的ARP请求)来识别目标。

除了ICMP回显请求外,-sn 开关还将导致nmap向目标的端口443发送TCP SYN数据包,并向目标的端口80发送TCP ACK(或如果未以根用户身份运行,则发送TCP SYN)数据包。

NSE脚本概述

Nmap脚本引擎(NSE)是Nmap的一个非常强大的补充,它相当大地扩展了Nmap的功能。NSE脚本使用 Lua 编程语言编写,可用于各种用途:从扫描漏洞到自动化对其的利用。NSE特别适用于侦察,但是值得注意的是脚本库有多么庞大。

有许多可用的类别。一些有用的类别包括:

- safe:不会影响目标
- intrusive:不安全:可能会影响目标
- vuln:扫描漏洞
- exploit:尝试利用漏洞
- auth:尝试绕过运行服务的认证(例如,匿名登录FTP服务器)
- brute:尝试对运行服务的凭据进行暴力破解
- discovery:尝试查询运行服务以获取有关网络的更多信息(例如,查询SNMP服务器)。

使用NSE

要运行特定的脚本,我们将使用 --script=<script-name> ,例如 --script=http-fileupload-exploiter。

可以通过用逗号分隔它们来以这种方式同时运行多个脚本。例如:--script=smb-enum-users,smb-enum-shares。

某些脚本需要参数(例如,如果它们正在利用经过身份验证的漏洞,则需要凭据)。这些参数可以使用 --script-args Nmap开关提供。例如,http-put 脚本(用于使用PUT方法上传文件)就需要两个参数:要上传文件的URL和磁盘上文件的位置。例如:
nmap -p 80 --script http-put --script-args http-put.url='/dav/shell.php',http-put.file='./shell.php'

注意,参数由逗号分隔,并且与相应的脚本用句点连接(即 <script-name>.<argument>)。

防火墙规避

Nmap提供了一个选项:-Pn,告诉Nmap在扫描之前不要费心ping主机。这意味着Nmap将始终将目标主机视为活动的,有效地绕过ICMP阻塞;但是,它的代价是可能需要很长时间才能完成扫描(如果主机确实死了,那么Nmap仍将检查和重复检查每个指定的端口)。

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

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

相关文章

如何使用Python+Flask搭建本地Web站点并结合内网穿透公网访问?

文章目录 前言1. 安装部署Flask并制作SayHello问答界面2. 安装Cpolar内网穿透3. 配置Flask的问答界面公网访问地址4. 公网远程访问Flask的问答界面 前言 Flask是一个Python编写的Web微框架&#xff0c;让我们可以使用Python语言快速实现一个网站或Web服务&#xff0c;本期教程…

将Vue2中的console.log调试信息移除

前端项目构建生产环境下的package时&#xff0c;咱们肯定要去掉development环境下的console.log&#xff0c;如果挨个注释可就太费劲了&#xff0c;本文介绍怎么使用 babel-plugin-transform-remove-console 移除前端项目中所有的console.log. 1. 安装依赖 npm install babel-…

OpenAI发布新模型!ChatGPT性能重磅提升,API大幅降价,GPT-4 「变懒」被修复

OpenAI 对ChatGPT进行了大更新&#xff1a;推出了新一代的嵌入模型&#xff0c;对GPT-4 Turbo模型进行了更新&#xff0c;并将很快对GPT-3.5 Turbo的API进行大幅降价&#xff0c;GPT-4「变懒」行为也被修复。 接下来二狗就带大家看看ChatGPT的这次详细更新。 推出新的嵌入模型…

2024年华为OD机试真题-API集群负载统计-Python-OD统一考试(C卷)

题目描述: 某个产品的RESTful API集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。 RESTful API的由多个层级构成,层级之间使用 / 连接,如 /A/…

电脑护眼模式怎么设置?4个有效方法保护眼睛!

“我感觉每天使用电脑的时间久了&#xff0c;眼睛总是不太舒服。电脑护眼模式怎么设置呢&#xff1f;有什么比较好用的方法可以推荐吗&#xff1f;” 如果长时间使用电脑&#xff0c;或许会让我们感到用眼疲劳。电脑护眼模式是现代人常用的电脑设置之一&#xff0c;它能有效地减…

分布式ID(4):雪花算法生成ID之Leaf(美团点评分布式ID生成系统)

1 Leaf官方地址 Leaf源码地址: https://github.com/Meituan-Dianping/Leaf Leaf官方说明文档地址: https://tech.meituan.com/2019/03/07/open-source-project-leaf.htmlhttps://github.com/Meituan-Dianping/Leaf/blob/master/README_CN.md 这边只做简单介绍,详细说明…

大数据学习之Redis,十大数据类型的具体应用(一)

目录 3. 数据类型命令及落地应用 3.1 备注 3.2 Redis字符串&#xff08;String&#xff09; 单值单value 多值操作 获取指定区间范围内的值 数值增减 获取字符串长度和内容追加 分布式锁 getset(先get后set) 3.3 Redis列表&#xff08;List&#xff09; 简单说明 …

switch-case的简单使用

签名&#xff1a;但行好事&#xff0c;莫问前程。 文章目录 前言一、switch二、case三、break四、default总结 前言 记录一下switch-case的简单使用。 一、switch switch中的表达式只能是特定的数据类型。如下&#xff1a; byteshortcharint枚举&#xff08;jdk5.0&#xff…

ping命令常用选项

ping -t 不间断地Ping指定计算机&#xff0c;直到管理员中断 ping -n 指定发送多少数据包&#xff0c;在默认情况下无参数ping一般都是只发送四个32字节数据包。通过这个命令从数据包返回的最短时间、最长时间、平均时间可以衡量网络速度、延迟&#xff0c;从丢失率可以衡量网…

Java API 操作 HDFS

Java API 操作HDFS一般有两种方式&#xff1a; 使用HDFS客户端配置文件自动配置 Java 代码中配置 一 使用HDFS客户端配置 1.1 下载HDFS客户端配置 1.2 创建Maven项目 创建Maven项目&#xff0c;将下载的客户端配置文件 core-site.xml、hdfs-site.xml 放入resources目录下&…

力扣225 用队列实现栈 Java版本

文章目录 题目描述解题思路代码 题目描述 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈…

echart 完整例子

<!--集团用电数据柱状图--> <template><div class"scsj-wsd"><div class"type-btns"><divclass"btns-item":class"currType 0 ? active : "click"change(0)">年</div><divclass&q…

华为OD-华为机试精讲500篇系列文章目录介绍(持续补充ing)

目录 背景介绍 什么是华为OD&#xff1f; OD现状 OD趋势 华为OD机考刷题攻略 1、刷题资料&#xff1a;投递岗位通过筛选后提供 2、注意事项&#xff1a; 真题代码目录 背景介绍 经济下行的这几年&#xff0c;每个人都感同身受&#xff0c;如何让自己在芸芸众生中脱颖而…

【高效开发工具系列】Wolfram Alpha

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

pgsql中with子句和直接查询差别

1、代码的可读性和维护性&#xff1a; 当查询较为复杂时&#xff0c;WITH子句可以将复杂的查询分解成多个简单的步骤&#xff0c;每个步骤都可以有一个易于理解的名字。这样做提高了代码的可读性&#xff0c;也便于后期维护。 2、代码的重用性&#xff1a; 在WITH子句中定义…

Unity3d Cinemachine篇(三)— FreeLook

文章目录 前言一、使用FreeLook制造第三人称跟随效果1. 创建一个游戏物体2. 创建FreeLook相机4. 完成 前言 上一期我们简单的使用了Dolly CamerawithTrack相机&#xff0c;这次我们来使用一下FreeLook 一、使用FreeLook制造第三人称跟随效果 1. 创建一个游戏物体 游戏物体比较…

(十)springboot实战——springboot3下的webflux项目mysql数据库事务处理

前言 WebFlux 是 Spring Framework 5.0 中引入的一种新型反应式编程模型&#xff0c;支持非阻塞 I/O&#xff0c;适用于高并发、高吞吐量的应用程序。在 WebFlux 应用程序中使用事务需要注意以下几点。使用 Reactive R2DBC&#xff1a;WebFlux 支持使用 Reactive R2DBC 访问关…

WebService的services.xml问题

WebService有多种实现方式&#xff0c;这里使用的是axis2 问题&#xff1a; 在本地开发&#xff0c;访问本地的http://localhost:8080/services/ims?wsdl&#xff0c;正常访问 但是打成jar包&#xff0c;不管是linux还是window启动&#xff0c;都访问不到&#xff0c;报错…

金线检测步骤

半导体行业,金线检测是必不可以少的一个检测项,除了焊点,die面,手指以外的必检项目. 重难点在于金线的提取,算法多种多样,找到适合才是关键,涉及到打光,图像处理,这里不做深入分析,软件和硬件配合好才能做的最好. 经典算法Block分析,结合图像检测. 高斯算法提取 边缘检测算法提…

克拉玛依市白碱滩区(克拉玛依高新区)环保产业园生产用气提升工程设计

克拉玛依市白碱滩区(克拉玛依高新区)环保产业园生产用气提升工程设计 (招标编号&#xff1a;JKJL[服招]2024-09) 项目所在地区&#xff1a;新疆维吾尔自治区,克拉玛依市,白碱滩区 一、招标条件 本克拉玛依市白碱滩区(克拉玛依高新区)环保产业园生产用气提升工程设计已由项目审批…