Impacket官方使用指南

 

什麼是Impacket

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

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

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 .   而後在它的目錄中運行。git

安裝要求

  • 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-commandsgithub

測試

若是您想要運行庫測試用例,您須要主要作三件事:web

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

完成後,您能夠運行tox並等待結果。若是一切順利,全部測試用例都應該經過。您還能夠在impacket/tests/htlmcov/index.html上找到一個被覆蓋的HTML報告sql

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的文檔註釋包含在源代碼中。您還能夠經過其測試用例示例瞭解不少關於庫功能的信息.shell

相關文章
相關標籤/搜索