Impacket工具中的横向渗透利器及其使用场景对比详解

在渗透测试中,横向移动(Lateral Movement)是指攻击者在获得一个系统的控制权限后,通过网络进一步渗透到其他系统的过程。Impacket 是一款强大的渗透测试工具集,提供了多种实现横向渗透的脚本,常见的工具包括 psexec.pysmbexec.pyatexec.pydcomexec.pywmiexec.py。尽管这些工具都可以执行远程命令,但它们在工作原理、依赖的服务以及使用条件上有显著差异。下面我们将对这些工具进行详细的对比分析。


1. psexec.py

psexec.py 是 Impacket 中非常经典的工具,仿照了 Microsoft 的 PsExec 工具。它通过 SMB(Server Message Block)协议和 RPC(远程过程调用)服务实现远程命令执行。具体流程是,psexec.py 在目标主机上通过 SMB 上传一个可执行文件,然后利用 RPC 启动该文件作为服务,从而执行命令。

工作原理

  • SMB 连接: psexec.py 首先尝试通过 SMB 协议连接到目标主机。
  • 文件上传: 一旦连接成功,它会将一个可执行文件上传到目标系统的共享文件夹(如 ADMIN$)。
  • 服务启动: 之后,psexec.py 会利用 RPC 启动该服务,从而在目标系统上执行远程命令。

依赖服务

  • SMB 服务: 需要目标主机开放 SMB 服务(通常是 TCP 445)。
  • RPC 服务: 依赖于 RPC(远程过程调用)来启动服务。

端口需求

  • TCP 445: 用于 SMB 通信,这是 psexec.py 的核心端口。
  • TCP 139: 在早期的 SMB 版本中,可能使用这个端口进行通信,但现代 SMB 使用 TCP 445。

优缺点

  • 优点: 操作简单,且不依赖于目标主机上的额外服务,只要 SMB 和 RPC 可用即可。且以管理员权限登录后直接以 SYSTEM 权限执行命令。
  • 缺点: 容易被防火墙和入侵检测系统检测到,因为上传文件和服务启动的行为很容易暴露。尤其是在目标环境中开启了 SMB 端口的安全监控时,攻击行为会被察觉。

2. smbexec.py

smbexec.py 是 Impacket 中的另一个工具,功能与 psexec.py 相似,但工作方式略有不同。它同样依赖于 SMB 协议来执行远程命令,但与 psexec.py 不同,smbexec.py 不需要上传可执行文件。相反,它利用共享资源(如 ADMIN$C$)直接在目标主机上执行命令。这使得 smbexec.py 相比 psexec.py 更加隐蔽。

工作原理

  • SMB 连接: smbexec.py 通过 SMB 协议连接到目标系统。
  • 共享资源: 一旦连接成功,它通过目标主机上的共享资源(如 ADMIN$C$)来执行命令。
  • 远程命令执行: 命令通过 SMB 共享直接在目标系统上执行,而不需要上传任何可执行文件。

依赖服务

  • SMB 服务: smbexec.py 完全依赖于 SMB 服务来实现命令执行。
  • 无 RPC 服务依赖:psexec.py 不同,smbexec.py 不依赖于 RPC 服务来启动进程或服务。

端口需求

  • TCP 445: 同样需要通过 TCP 445 端口进行 SMB 通信。
  • TCP 139: 在某些情况下,如果目标系统使用较旧的 SMB 协议,可能还会使用 TCP 139。

优缺点

  • 优点: 相比 psexec.pysmbexec.py 不需要上传文件,减少了被检测到的风险。它利用现有的共享资源直接执行命令,这使得攻击行为更加隐蔽。
  • 缺点: 依赖目标系统的共享权限。如果目标系统的共享权限配置严格,可能无法成功执行命令。此外,某些安全工具可能会对共享资源的异常访问进行监控。

3. atexec.py

atexec.py 是另一个用于远程执行命令的工具,但它与 psexec.pysmbexec.py 的工作原理有所不同。它通过 Windows 的任务计划程序(Task Scheduler)服务来执行命令。atexec.py 将命令作为计划任务添加到目标机器中,然后立即执行。

工作原理

  • 任务计划程序: atexec.py 将命令注册为计划任务。
  • 立即执行: 任务一旦添加到目标系统中,会立即启动执行命令。

依赖服务

  • SMB 服务: 需要通过 SMB 协议与目标主机建立连接。
  • RPC 服务: 需要 RPC 服务来与目标系统的任务计划服务进行交互。

端口需求

  • TCP 445 和 TCP 135: 需要通过这些端口与目标主机的 SMB 和 RPC 服务进行通信。

优缺点

  • 优点: 任务计划程序是 Windows 系统中常用的工具,执行命令的过程相对隐蔽,且不需要上传额外的文件。
  • 缺点: 需要目标系统的任务调度服务可用,而且某些目标系统可能会对计划任务进行严格的安全控制。

4. dcomexec.py

dcomexec.py 是通过 DCOM(分布式组件对象模型)协议进行远程命令执行的工具。它使用已注册的 DCOM 应用程序(如 MMC20.ApplicationShellWindows)来执行命令。由于 DCOM 协议较少用于渗透测试,它的攻击行为更难被发现。

工作原理

  • DCOM 协议: dcomexec.py 通过 DCOM 协议与目标主机建立连接,并利用已注册的 DCOM 应用程序执行命令。

依赖服务

  • DCOM 服务: 需要目标系统启用 DCOM 服务。
  • RPC 服务: 需要通过 RPC 与目标系统进行通信。

端口需求

  • TCP 445 和 TCP 135: 需要这两个端口来与目标主机的 SMB 和 RPC 服务进行通信。
  • 高端端口: DCOM 可能会使用动态分配的高端端口(49152-65535)进行通信。

优缺点

  • 优点: DCOM 协议较为隐蔽,不容易被传统防火墙或入侵检测系统监测到。
  • 缺点: 依赖于 DCOM 服务,且目标系统可能会有防御措施。

5. wmiexec.py

wmiexec.py 是通过 Windows 管理工具(WMI)来执行远程命令的工具。WMI 是 Windows 系统的强大管理工具,允许管理员和攻击者远程管理系统。wmiexec.py 利用 WMI 来执行命令,是一种极为隐蔽的渗透工具。

工作原理

  • WMI 协议: 通过 WMI 协议执行命令,不需要上传可执行文件。
  • 远程命令: 命令通过 WMI 在目标主机上执行,避免了传统的文件上传和服务创建。

依赖服务

  • WMI 服务: 需要目标系统启用 WMI 服务。
  • RPC 服务: 需要通过 RPC 与目标系统进行通信。

端口需求

  • TCP 445 和 TCP 135: 用于与 SMB 和 RPC 服务进行通信。
  • 高端端口: WMI 可能会使用动态分配的高端端口(49152-65535)。

优缺点

  • 优点: 非常隐蔽,不容易被防火墙或入侵检测系统检测到。
  • 缺点: 需要目标系统启用 WMI 服务,并且某些配置可能限制远程命令执行。

结论

不同的工具有不同的应用场景和优缺点。psexec.pysmbexec.py 都依赖于 SMB 协议来实现远程命令执行,但前者需要上传文件,后者则通过共享资源直接执行命令。atexec.py 通过任务计划服务实现远程执行,适用于不希望留下文件痕迹的情况;dcomexec.pywmiexec.py 则依赖于较为隐蔽的协议(DCOM 和 WMI),适用于需要绕过传统安全检测的场景。选择合适的工具应基于目标环境的安全防护措施、可用端口以及需要绕过的防火墙策略来做出决定。

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

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

相关文章

设计模式|策略模式 Strategy Pattern 详解

目录 一、策略模式概述二、策略模式的实现2.1 策略接口2.2 具体策略类2.3 上下文类2.4 客户端代码2.5 UML类图2.6 UML时序图 三、优缺点3.1 ✅优点3.2 ❌ 缺点 四、最佳实践场景4.1 适合场景描述4.2 具体场景 五、扩展5.1 继承复用机制和复合策略5.2 对象管理:优化策…

迷你世界脚本显示板管理接口:DisPlayBoard

显示板管理接口:DisPlayBoard 迷你世界 更新时间: 2023-04-26 10:21:14 具体函数名及描述如下: 序号 函数名 函数描述 1 showBoard(...) 对玩家显示显示板 2 hideBoard(...) 对玩家隐藏显示板 3 setBoardPicture 对玩家设置显示板的图片…

尚硅谷爬虫note14

一、scrapy scrapy:为爬取网站数据是,提取结构性数据而编写的应用框架 1. 安装 pip install scrapy 或者,国内源安装 pip install scrapy -i https://pypi.douban.com/simple 2. 报错 报错1)building ‘twisted.te…

merge函数

merge函数 今天在刷lc,从灵神题解中学到的 来源:560. 和为 K 的子数组 - 力扣(LeetCode) java8 merge()方法被引入到HashMap类中,用于简化键值对操作,在处理键值对时,提供一个重新映射函数来决…

Notepad++ 8.6.7 安装与配置全攻略(Windows平台)

一、软件定位与核心优势 Notepad 是开源免费的代码/文本编辑器,支持超过80种编程语言的高亮显示,相比系统自带记事本具有以下优势: 轻量高效:启动速度比同类软件快30%插件扩展:支持NppExec、JSON Viewer等200插件跨文…

建筑兔零基础自学python记录39|实战词云可视化项目——章节分布10(上)

这次我们来制作《红楼梦》各章节的分布情况: 源代码: import pandas as pd import numpy as np import matplotlib.pyplot as pltdf_hlm pd.read_csv("hlm.txt", names["hlm_texts"]).dropna()df_hlm df_hlm[~df_hlm.hlm_texts.s…

C++:#ifndef 头文件保护机制详解

在C开发中,头文件可能会被多个源文件包含,导致编译错误。为了避免这种情况,我们使用了头文件保护机制(防止重复包含)。 头文件保护的原理 通过预处理指令#ifndef(如果没有定义)和#define&…

利用MQ自动取消未支付超时订单最佳实践

一、利用MQ自动取消未支付超时订单最佳实践 1、基于 RocketMQ 延迟消息 1.1:延迟消息 当消息写入到 Broker 后,不会立刻被消费者消费,需要等待指定的时长后才可被消费处理的消息,称为延时消息。 1.2:实现流程 &am…

基于 ChatGPT 创建专属 GPTs

文章目录 基于 ChatGPT 创建专属 GPTs一、效果展示1.1 中文命名专家1.2 行程小助手 二、核心配置2.1 Instructions2.3 Actions 三、Agent 简介3.1 功能框架3.2 工作流程3.3 意图识别 四、数据流程 基于 ChatGPT 创建专属 GPTs ChatGPT 具备定制 GPTs 的能力,能够通…

Spring Boot WebFlux 中 WebSocket 生命周期解析

Spring Boot WebFlux 中的 WebSocket 提供了一种高效、异步的方式来处理客户端与服务器之间的双向通信。WebSocket 连接的生命周期包括连接建立、消息传输、连接关闭以及资源清理等过程。此外,为了确保 WebSocket 连接的稳定性和可靠性,我们可以加入重试…

【数据挖掘】异构图与同构图

在图论(Graph Theory)中,异构图(Heterogeneous Graph)和同构图(Homogeneous Graph)是两种不同的图结构概念,它们的主要区别在于节点和边的类型是否单一。 1. 异构图(Hete…

Golang实践录:go发布版本信息收集

go发布版本信息收集。 背景 本文从官方、网络资料收罗有关go的发布历史概况。主要目的是能快速了解golang不同版本的变更。鉴于官方资料为英文,为方便阅读,使用工具翻译成中文,重要特性参考其它资料补充/修改。由于发布版本内容较多&#xf…

【C++】: STL详解 —— set和map类

目录 关联式容器 键值对 set set的概念 set的构造函数 set的使用 map map的概念 map的构造函数 map的使用 multiset multimap 关联式容器 C标准库提供了多种容器,用于高效管理和操作数据集合。这些容器可分为以下几类: 顺序容器(…

DeepSeek:构筑大数据平台底座的最优解

一、大数据平台底座的重要性 在数字化浪潮席卷全球的当下,数据已成为企业乃至整个社会最具价值的资产之一 。大数据平台底座作为数据处理和业务支撑的核心枢纽,其重要性不言而喻,犹如大厦的基石,关乎整个数据生态系统的稳定与发展。 从数据处理角度来看,随着互联网、物联…

Minix OS的配置 SSH C程序编译

Minix3的下载 官网:https://www.minix3.org/ 安装 平台:VMware 开机后进入系统使用setup命令来配置和安装尽量配置一个DNS服务器,比如8.8.8.8 SSH 安装:pkgin install openssh 修改配置文件,需要: 修…

ubuntu20 安装python2

1. 确保启用了 Universe 仓库 在某些情况下,python2-minimal 包可能位于 Universe 仓库中。你可以通过以下命令启用 Universe 仓库并更新软件包列表: bash复制 sudo add-apt-repository universe sudo apt update 然后尝试安装: bash复制…

STM32---FreeRTOS中断管理试验

一、实验 实验目的:学会使用FreeRTOS的中断管理 创建两个定时器,一个优先级为4,另一个优先级为6;注意:系统所管理的优先级范围 :5~15 现象:两个定时器每1s,打印一段字符串&#x…

docker利用docker-compose-gpu.yml启动RAGFLOW,文档解析出错【亲测已解决】

0.问题说明 想要让RAGFLOW利用GPU资源跑起来,可以选择docker-compose-gpu.yml启动。(但是官网启动案例是86平台的不是NVIDIA GPU的,docker-compose-gpu.yml又是第三方维护,所以稍有问题) 1.问题 docker利用docker-c…

【AI深度学习网络】卷积神经网络(CNN)入门指南:从生物启发的原理到现代架构演进

深度神经网络系列文章 【AI深度学习网络】卷积神经网络(CNN)入门指南:从生物启发的原理到现代架构演进【AI实践】基于TensorFlow/Keras的CNN(卷积神经网络)简单实现:手写数字识别的工程实践 引言 在当今…

【ThreeJS Basics 06】Camera

文章目录 Camera 相机PerspectiveCamera 透视相机正交相机用鼠标控制相机大幅度转动(可以看到后面) 控制组件FlyControls 飞行组件控制FirstPersonControls 第一人称控制PointerLockControls 指针锁定控制OrbitControls 轨道控制TrackballControls 轨迹球…