当前位置: 首页 > news >正文

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),适用于需要绕过传统安全检测的场景。选择合适的工具应基于目标环境的安全防护措施、可用端口以及需要绕过的防火墙策略来做出决定。

相关文章:

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

在渗透测试中,横向移动(Lateral Movement)是指攻击者在获得一个系统的控制权限后,通过网络进一步渗透到其他系统的过程。Impacket 是一款强大的渗透测试工具集,提供了多种实现横向渗透的脚本,常见的工具包括…...

基于java,SpringBoot和Vue的医院药房药品管理系统设计

摘要 随着医疗行业信息化的快速发展,高效、精准的医院药房药品管理对于提升医疗服务质量和医院运营效率至关重要。本文基于 Java 语言,采用 SpringBoot 框架和 Vue 框架进行医院药房药品管理系统的设计与研究。该系统以 SpringBoot 作为后端开发框架&am…...

MQ保证消息的顺序性

在消息队列(MQ)中保证消息的顺序性是一个常见的需求,尤其是在需要严格按顺序处理业务逻辑的场景(例如:订单创建 → 支付 → 发货)。 一、消息顺序性被破坏的原因 生产者异步/并行发送:消息可能…...

cmake、CMakeLists.txt、make、ninja

文章目录 一、概念0.cmake官网1.什么是cmake2.为什么使用cmake3.CMakeLists.txt 二、CMakeLists.txt语法:如何编写CMakeLists.txt,语法详解(0)语法基本原则(1)project关键字(2)set关键字(3)message关键字(4)add_executable关键字(5)add_subdirectory关键…...

数据结构与算法 计算机组成 八股

文章目录 数据结构与算法数组与链表的区别堆的操作红黑树定义及其原理 计算机组成int和uint的表示原码反码补码移码的定义?为什么用补码? 数据结构与算法 数组与链表的区别 堆的操作 红黑树定义及其原理 计算机组成 int和uint的表示 原码反码补码移…...

RoboBrain:从抽象到具体的机器人操作统一大脑模型

25年2月来自北大、北京智源、中科院自动化所等的论文“RoboBrain: A Unified Brain Model for Robotic Manipulation from Abstract to Concrete”。 目前的多模态大语言模型(MLLM) 缺少三项必备的机器人大脑能力:规划能力,将复杂…...

算法 之 前缀和 与 滑动窗口 与 背包问题 的差异(子数组之和为k问题)

文章目录 使用前缀和哈希表560.和为K的子数组525.连续数组2588.统计美丽子数组数目 子数组的定义是原来的数组当中连续的非空的序列,而我们的背包问题的选与不选的情况,对应的是这个非连续的情况,那么这种情况就要注意当然啦,对于线性的时间内…...

微电网协调控制器ACCU-100 分布式光伏 光储充一本化

安科瑞 华楠 18706163979 应用范围: 分布式光伏、微型风力发电、工商业储能、光储充一体化电站、微电网等领域。 主要功能: 数据采集:支持串口、以太网等多通道实时运行,满足各类风电与光伏逆变器、储能等 设备接入&#xff…...

IDEA入门及常用快捷键

IDEA是java常用的IDE。当run一个.java文件时,其实是经历了先编译为.class,再运行的过程。 在project文件夹中,out文件夹存储编译的.class文件,src文件夹存储.java代码文件。 设置自动导包 快捷键: 格式化快捷键&…...

electron打包结构了解

Electron 应用打包后的文件结构和内容取决于你使用的打包工具(如 electron-builder、electron-packager 等)以及目标操作系统(Windows、macOS、Linux)。以下是典型 Electron 应用打包后的文件结构和关键组成部分: 1. 基…...

03.06 QT

一、使用QSlider设计一个进度条&#xff0c;并让其通过线程自己动起来 程序代码&#xff1a; <1> Widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QThread> #include "mythread.h"QT_BEGIN_NAMESPACE namespace Ui {…...

Python中的常用库

一、collections collections是 Python 标准库中的一个模块&#xff0c;提供了一些专门的容器数据类型&#xff0c;能够帮助你更高效地处理常见的数据结构操作。 1、Counter Counter 是一个字典的子类&#xff0c;用于计数可哈希对象。它会统计对象的出现次数&#xff0c;并…...

马尔科夫不等式和切比雪夫不等式

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 统计概率的利剑&#xff1a;掌…...

护照阅读器在汽车客运站流程中的应用

在汽车客运站的日常运营里&#xff0c;如何高效服务旅客、保障出行安全是工作重点。护照阅读器作为精准身份识别的得力工具&#xff0c;在客运站的多个关键流程&#xff0c;如自助购票、柜台购票、安检以及行李托运中&#xff0c;发挥着不可小觑的作用&#xff0c;有力地提升了…...

CentOS 7 安装Nginx-1.26.3

无论安装啥工具、首先认准了就是官网。Nginx Nginx官网下载安装包 Windows下载&#xff1a; http://nginx.org/download/nginx-1.26.3.zipLinxu下载 wget http://nginx.org/download/nginx-1.26.3.tar.gzLinux安装Nginx-1.26.3 安装之前先安装Nginx依赖包、自行选择 yum -y i…...

Unity 使用NGUI制作无限滑动列表

原理&#xff1a; 复用几个子物体&#xff0c;通过子物体的循环移动实现&#xff0c;如下图 在第一个子物体滑动到超出一定数值时&#xff0c;使其放到最下方 --------------------------------------------------------------》 然后不停的循环往复&#xff0c;向下滑动也是这…...

linux中断调用流程(arm)

文章目录 ARM架构下Linux中断处理全流程解析&#xff1a;从硬件触发到驱动调用 ⚡**一、中断触发与硬件层响应** &#x1f50c;**1. 设备触发中断** &#x1f4e1; **二、CPU阶段&#xff1a;异常入口与上下文处理** &#x1f5a5;️**1. 异常模式切换** &#x1f504;**2. 跳转…...

基于Matlab的多目标粒子群优化

在复杂系统的设计、决策与优化问题中&#xff0c;常常需要同时兼顾多个相互冲突的目标&#xff0c;多目标粒子群优化&#xff08;MOPSO&#xff09;算法应运而生&#xff0c;作为群体智能优化算法家族中的重要成员&#xff0c;它为解决此类棘手难题提供了高效且富有创新性的解决…...

【网络安全】——协议逆向与频繁序列提取:从流量中解码未知协议

目录 引言 一、为什么要结合频繁序列提取&#xff1f; 二、四步融合分析法 步骤1&#xff1a;原始流量采集与预处理 步骤2&#xff1a;多粒度序列模式挖掘 层1&#xff1a;单包内字节级频繁项 层2&#xff1a;跨数据包的行为序列 步骤3&#xff1a;关键字段定位与结构假…...

CSS 中等比例缩放的演变:从传统技巧到 aspect-ratio 属性

CSS 中等比例缩放的演变&#xff1a;从传统技巧到 aspect-ratio 属性 在响应式网页设计和多设备兼容成为主流的今天&#xff0c;如何实现元素的等比例缩放成为前端开发中一个重要的课题。无论是图片、视频还是其他容器&#xff0c;都常常需要保持固定的宽高比&#xff0c;以便…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...