【THM】Nmap Advanced Port Scans(高级端口扫描)-初级渗透测试

news/2025/3/16 6:20:52/

介绍

本房间是Nmap系列的第三个房间(网络安全简介模块的一部分)。在前两个房间中,我们了解了实时主机发现和基本端口扫描。

  1. Nmap实时主机发现
  2. Nmap基本端口扫描
  3. Nmap高级端口扫描
  4. Nmap后端口扫描

在Nmap基本端口扫描中,我们介绍了TCP标志并回顾了TCP 3 路握手。要启动连接,TCP要求第一个数据包设置 SYN 标志。因此,我们可以根据收到的响应判断TCP端口是否打开。

安全研究人员和黑客考虑了TCP标志(如下图所示并在之前的房间中进行了解释),并开始进行实验。他们想知道如果我们发送一个设置了一个或多个标志的TCP数据包(该数据包不属于任何正在进行的TCP连接的一部分)会发生什么。

例如,当您想要确认接收到的数据时,会设置 ACK 标志。 ACK 扫描就像尝试确认最初既没有发送也没有接收到的数据。考虑这个简单的类比,有人突然来找你,告诉你:“是的,我听到了,请继续。”当你什么都没说的时候。

该房间介绍高级扫描类型和扫描选项。其中一些扫描类型可用于特定系统,而其他扫描类型则可用于特定的网络设置。我们将介绍以下类型的端口扫描:

  • Null Scan
  • FIN Scan
  • Xmas Scan
  • Maimon Scan
  • ACK Scan
  • Window Scan
  • Custom Scan

此外,我们将涵盖以下内容:

  • 欺骗IP
  • 欺骗MAC
  • 诱饵扫描
  • 分片数据包
  • 空闲/僵尸扫描

我们将讨论规避防火墙和IDS系统的选项和技术。我们还介绍了从Nmap获取更多详细信息的选项。

TCP空扫描、FIN扫描、Xmas扫描

让我们从以下三种类型的扫描开始:

  • 空扫描
  • FIN 扫描
  • Xmas扫描
NULL扫描

空扫描不设置任何标志;所有六个标志位均设置为零。您可以使用该 -sN选项选择此扫描。没有设置标志的TCP数据包在到达开放端口时不会触发任何响应,如下图所示。因此,从Nmap的角度来看,空扫描中缺乏回复表明端口已打开或防火墙正在阻止数据包。

但是,如果端口关闭,我们希望目标服务器能够响应 RST 数据包。因此,我们可以利用缺少 RST 响应来找出未关闭的端口:打开或已过滤。

以下是针对Linux服务器的空扫描示例。我们进行的空扫描已成功识别出目标系统上的六个开放端口。因为空扫描依赖于没有响应来推断端口没有关闭,所以它不能确定地表明这些端口是开放的;由于防火墙规则,端口可能没有响应。

pentester@TryHackMe$ sudo nmap -sN 10.10.xxx.xxx

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:30 BST

Nmap scan report for 10.10.xxx.xxx

Host is up (0.00066s latency).

Not shown: 994 closed ports

PORT    STATE         SERVICE

22/tcp  open|filtered ssh

25/tcp  open|filtered smtp

80/tcp  open|filtered http

110/tcp open|filtered pop3

111/tcp open|filtered rpcbind

143/tcp open|filtered imap

MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 96.50 seconds

请注意,许多Nmap选项需要 root 权限。除非您以 root 身份运行Nmap,否则您需要 sudo像上面的示例一样使用该-sN选项。

FIN扫描

FIN 扫描发送设置了 FIN 标志的TCP数据包。您可以使用 选项选择此扫描类型-sF 。同样,如果TCP端口打开,则不会发送任何响应。同样,Nmap 无法确定端口是否打开或防火墙是否阻止与此TCP端口相关的流量。

但是,如果端口关闭,目标系统应使用 RST 进行响应。因此,我们将能够知道哪些端口是关闭的,并使用这些知识来推断打开或过滤的端口。值得注意的是,一些防火墙会“默默地”丢弃流量而不发送 RST。

下面是针对Linux服务器的 FIN 扫描示例。结果与我们之前使用空扫描获得的结果非常相似。

pentester@TryHackMe$ sudo nmap -sF 10.10.191.191

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:32 BST

Nmap scan report for 10.10.191.191

Host is up (0.0018s latency).

Not shown: 994 closed ports

PORT    STATE         SERVICE

22/tcp  open|filtered ssh

25/tcp  open|filtered smtp

80/tcp  open|filtered http

110/tcp open|filtered pop3

111/tcp open|filtered rpcbind

143/tcp open|filtered imap

MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 96.52 seconds

Xmas扫描

圣诞节扫描因圣诞树灯而得名。 Xmas 扫描同时设置 FIN、PSH 和 URG 标志。您可以使用选项选择圣诞扫描-sX

与Null scan和FIN scan一样,如果收到RST数据包,则表明端口已关闭。否则,它将被报告为 open|filtered。

下面两张图分别展示了TCP端口打开时的情况和TCP端口关闭时的情况。

下面的控制台输出显示了针对Linux服务器进行 Xmas 扫描的示例。获得的结果与空扫描和FIN 扫描非常相似。

pentester@TryHackMe$ sudo nmap -sX 10.10.191.191

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:34 BST

Nmap scan report for 10.10.191.191

Host is up (0.00087s latency).


http://www.ppmy.cn/news/1405535.html

相关文章

unity3d for web

时光噶然 一晃好多年过去了(干了5年的u3d游戏),记得最后一次使用的版本好像是 unity 2017。 那个是 unity3d for webgl 还需要装个插件。用起来很蛋疼。 最近做一个小项目 在选择是用 Layabox 还是 cocosCreate 的时候 我想起了老战友 Uni…

【LeetCode热题100】【技巧】多数元素

题目链接:169. 多数元素 - 力扣(LeetCode) 其实就是找众数,可以用哈希表记录每个元素的出现次数,然后返回最多的,或者排序一下返回中间位置的数 但是如果要O(n)的时间复杂度和O(1)的空间复杂度&#xff0…

SpringBoot -- Profiles

Profiles具备环境隔离能力,可以将我们的项目快速切换开发、测试、生产环境 我们的使用步骤也很简单: 1. 标识环境:指定哪些组件、配置在哪个环境生效 2. 切换环境:这个环境对应的所有组件和配置就应该生效 接下来就进行详细的…

【IP组播】PIM-SM的RP、RPF校验

目录 一:PIM-SM的RP 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.配置IGP 3.配置PIM-SM和静态RP 4.配置动态RP 5.配置Anycast RP 二: RPF校验 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.配置IGP 3.配置PIM-DM 4.RPF校…

c++ new int[10]()会进行初始化.

new int[10]()-CSDN博客 #include<iostream> using namespace std;int main() {int *p new int[10]();for(int i 0; i < 10; i){cout << p[i] << endl;}delete []p; } 会进行初始化.

【C++第三阶段】模板类模板通用数组实现案例

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 模板怎么使用模板函数模板注意事项普通函数与函数模板的区别普通函数与函数模板调用规则函数模板限制 类模板类模板语法类模板与函数模板区别类模板中成员函数创建时机类模板对象做函…

【御控物联】JSON结构数据转换在物流调度系统中的应用(场景案例三)

文章目录 一、前言二、场景概述三、解决方案四、在线转换工具五、技术资料 一、前言 物流调度是每个生产厂区必不可少的一个环节&#xff0c;主要包括线边物流和智能仓储。线边物流是指将物料定时、定点、定量配送到生产作业一线的环节&#xff0c;其包括从集中仓库到线边仓、…

C++从入门到精通——nullptr

nullptr 前言一、指针空值NULL二、指针空值nullptr(C11)C98中的指针空值 三、NULL与nullptr的区别总结 前言 nullptr是C11引入的一个新特性&#xff0c;用于表示空指针。它提供了一种类型安全的方式来区分空指针和非空指针&#xff0c;避免了传统空指针&#xff08;如NULL或0&…