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.pswp.cn/bicheng/72642.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72642.shtml
英文地址,請注明出處:http://en.pswp.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 軌跡球…