Impacket官方使用指南


 

什么是Impacket

Impacket是用於處理網絡協議的Python類的集合。Impacket專注於提供對數據包的簡單編程訪問,以及協議實現本身的某些協議(例如SMB1-3和MSRPC)。數據包可以從頭開始構建,也可以從原始數據中解析,而面向對象的API使處理協議的深層次結構變得簡單。該庫提供了一組工具,作為在此庫找到可以執行的操作的示例。

有關某些工具的說明,請訪問:https://www.secureauth.com/labs/open-source-tools/impacket

Impacket中包含以下協議

  • 以太網,Linux“Cooked”數據包捕獲
  • IP,TCP,UDP,ICMP,IGMP,ARP
  • 支持IPv4和IPv6
  • NMB和SMB1,SMB2和SMB3(高級實現)
  • MSRPC版本5,通過不同的傳輸協議:TCP,SMB / TCP,SMB/NetBIOS和HTTP
  • 使用密碼/哈希/票據/密鑰進行簡單的NTLM和Kerberos身份驗證
  • 部分或完全實現以下MSRPC接口:EPM,DTYPES,LSAD,LSAT,NRPC,RRP,SAMR,SRVS,WKST,SCMR,BKRP,DHCPM,EVEN6,MGMT,SASEC,TSCH,DCOM,WMI
  • 部分TDS(MSSQL)和LDAP協議實現。

獲得Impacket

  • 已編譯的當前版本和以前的版本
  • 開源分支 

 程序安裝

快速開始

獲取最新的穩定版本,將其解壓縮並執行命令pip install .   然后在它的目錄中運行。

安裝要求

  • Python解釋器,已知Python 2.6/2.7和Python 3.6可以運行
    1. 如果您想運行這些示例,並且您的python<2.7,那么需要安裝argparse包,以便它們正常執行。
    2. 對於Kerberos支持,您將需要安裝pyasn1包  
    3. 對於加密操作,您將需要安裝pycryptodomex包   
    4. 對於某些示例,您將需要安裝pyOpenSSL(rdp_check.py)和ldap3(ntlmrelayx.py) 
    5. 對於ntlmrelayx.py你還需要安裝ldapdomaindump,flask並ldap3  
    6. 如果你在Windows下,你將需要安裝 pyReadline 
  • 最近發布的Impacket

安裝

為了安裝源,請從解壓縮Impacket包的目錄中執行以下命令:pip install .   這將把類安裝到默認的Python模塊路徑中; 請注意,您可能需要特殊的權限才能在那里進行寫入。有關setup.py中可用的命令和選項的詳細信息,請運行python setup.py --help-commands

測試

如果您想要運行庫測試用例,您需要主要做三件事:

  1. 安裝和配置Windows 2012 R2域控制器。  
    • 確保遠程注冊表(RemoteRegistry)服務已啟用並正在運行。 
  2. 使用必要的信息配置dcetest.cfg文件  
  3. 安裝tox(pip install tox)

完成后,您可以運行tox並等待結果。如果一切順利,所有測試用例都應該通過。您還可以在impacket/tests/htlmcov/index.html上找到一個被覆蓋的HTML報告

IMPACKET中包含以下工具

遠程執行

  • psexec.py:類似PSEXEC的功能示例,使用remcomsvc(https://github.com/kavika13/remcom)
  • smbexec.py:與使用remcomsvc的psexec w/o類似的方法這里描述該技術。我們的實現更進一步,實例化本地smbserver以接收命令的輸出。這在目標計算機沒有可寫共享可用的情況下很有用。
  • atexec.py:此示例通過Task Scheduler服務在目標計算機上執行命令,並返回已執行命令的輸出。
  • wmiexec.py:通過Windows Management Instrumentation使用的半交互式shell,它不需要在目標服務器上安裝任何服務/代理,以管理員身份運行,非常隱蔽。
  • dcomexec.py:類似於wmiexec.py的半交互式shell,但使用不同的DCOM端點。目前支持MMC20.Application,ShellWindows和ShellBrowserWindow對象。
  • GetTGT.py:指定密碼,哈希或aesKey,此腳本將請求TGT並將其保存為ccache
  • GetST.py:指定ccache中的密碼,哈希,aesKey或TGT,此腳本將請求服務票證並將其保存為ccache。如果該帳戶具有約束委派(具有協議轉換)權限,您將能夠使用-impersonate參數代表另一個用戶請求該票證。
  • GetPac.py:此腳本將獲得指定目標用戶的PAC(權限屬性證書)結構,該結構僅具有正常的經過身份驗證的用戶憑據。它通過混合使用[MS-SFU]的S4USelf +用戶到用戶Kerberos身份驗證組合來實現的。
  • GetUserSPNs.py:此示例將嘗試查找和獲取與普通用戶帳戶關聯的服務主體名稱。
  • GetNPUsers.py:此示例將嘗試為那些設置了屬性“不需要Kerberos預身份驗證”的用戶獲取TGT(UF_DONT_REQUIRE_PREAUTH).輸出與JTR兼容 
  • ticketer.py:此腳本將從頭開始或基於模板(根據KDC的合法請求)創建金/銀票據,允許您在PAC_LOGON_INFO結構中自定義設置的一些參數,特別是組、外接程序、持續時間等。 
  • raiseChild.py:此腳本通過(ab)使用Golden Tickets和ExtraSids的基礎來實現子域到林權限的升級。

Windows Secrets

  • secretsdump.py:
  • 執行各種技術從遠程機器轉儲Secrets,而不在那里執行任何代理。對於SAM和LSA Secrets(包括緩存的憑據),然后將hives保存在目標系統(%SYSTEMROOT%\ Temp目錄)中,並從中讀取其余數據。對於DIT文件,我們使用dl_drsgetncchanges()方法轉儲NTLM哈希值、純文本憑據(如果可用)和Kerberos密鑰。它還可以通過使用smbexec/wmiexec方法執行的vssadmin來轉儲NTDS.dit.如果腳本不可用,腳本將啟動其運行所需的服務(例如,遠程注冊表,即使它已被禁用)。運行完成后,將恢復到原始狀態。
  • mimikatz.py:用於控制@gentilkiwi開發的遠程mimikatz RPC服務器的迷你shell

服務器工具/ MiTM攻擊

  • ntlmrelayx.py:此腳本執行NTLM中繼攻擊,設置SMB和HTTP服務器並將憑據中繼到許多不同的協議(SMB,HTTP,MSSQL,LDAP,IMAP,POP3等)。該腳本可以與預定義的攻擊一起使用,這些攻擊可以在中繼連接時觸發(例如,通過LDAP創建用戶),也可以在SOCKS模式下執行。在此模式下,對於每個中繼的連接,稍后可以通過SOCKS代理多次使用它
  • karmaSMB.py:無論指定的SMB共享和路徑名如何,都會響應特定文件內容的SMB服務器
  • smbserver.py:SMB服務器的Python實現,允許快速設置共享和用戶帳戶。

WMI

已知的漏洞 

  • goldenPac.py: 利用MS14-068。保存Golden Ticket並在目標位置啟動PSExec會話

SMB / MSRPC

MSSQL / TDS

文件格式

  • esentutl.py:Extensibe存儲引擎格式實現。它允許轉儲ESE數據庫的目錄,頁面和表(例如NTDS.dit) 
  • ntfs-read.py:NTFS格式實現。此腳本提供了一個用於瀏覽和提取NTFS卷的功能小的反彈shell,包括隱藏/鎖定的內容
  • registry-read.py:Windwows注冊表文件格式實現。它允許解析脫機注冊表配置單元
 

其他

  • GetADUsers.py:此腳本將收集有關域用戶及其相應電子郵件地址的數據。它還將包括有關上次登錄和上次密碼設置屬性的一些額外信息。  
  • mqtt_check.py:簡單的MQTT示例,旨在使用不同的登錄選項。可以很容易地轉換成帳戶/密碼暴力工具。 
  • rdp_check.py:[MS-RDPBCGR ]和[MS-CREDSSP]部分實現只是為了達到CredSSP身份驗證。此示例測試帳戶在目標主機上是否有效。
  • sniff.py:簡單的數據包嗅探器,使用pcapy庫來監聽在指定接口上傳輸的包。
  • sniffer.py:簡單的數據包嗅探器,它使用原始套接字來偵聽與指定協議相對應的傳輸中的數據包。
  • ping.py:簡單的ICMP ping,它使用ICMP echo和echo-reply數據包來檢查主機的狀態。如果遠程主機已啟動,則應使用echo-reply數據包響應echo探針。 
  • ping6.py:簡單的IPv6 ICMP ping,它使用ICMP echo和echo-reply數據包來檢查主機的狀態。 

源碼  

文檔

我們希望有更多可用的文檔,因此大多數文檔都作為Python的文檔注釋包含在源代碼中。您還可以通過其測試用例示例了解很多關於庫功能的信息.

 

 

 
 
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM