taibeihacker
Moderator
什么是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可以運行如果您想運行這些示例,並且您的python2.7,那麼需要安裝argparse包,以便它們正常執行。對於Kerberos支持,您將需要安裝pyasn1包
對於加密操作,您將需要安裝pycryptodomex包
對於某些示例,您將需要安裝pyOpenSSL(rdp_check.py)和ldap3(ntlmrelayx.py)
對於ntlmrelayx.py你還需要安裝ldapdomaindump,flask並ldap3
如果你在Windows下,你將需要安裝pyReadline
最近發布的Impacket
安装
為了安裝源,請從解壓縮Impacket包的目錄中執行以下命令:pip install . 這將把類安裝到默認的Python模塊路徑中;請注意,您可能需要特殊的權限才能在那裡進行寫入。有關setup.py中可用的命令和選項的詳細信息,請運行python setup.py --help-commands测试
如果您想要運行庫測試用例,您需要主要做三件事:安裝和配置Windows 2012 R2域控制器。
確保遠程註冊表(RemoteRegistry)服務已啟用並正在運行。
使用必要的信息配置dcetest.cfg文件
安裝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
wmiquery.py:它允許發出WQL查詢並在目標系統上獲取WMI對象的描述(例如,從win32_account中選擇名稱)wmipersist.py:此腳本創建/刪除wmi事件使用者/篩選器,並在兩者之間建立鏈接,以基於指定的wql篩選器或計時器執行Visual Basic Basic
已知的漏洞
goldenPac.py:利用MS14-068。保存Golden Ticket並在目標位置啟動PSExec會話sambaPipe.py:該腳本將利用CVE-2017-7494,通過-so參數上傳和執行用戶指定的共享庫。
smbrelayx.py:利用SMB中繼攻擊漏洞CVE-2015-0005。如果目標系統正在執行簽名並且提供了計算機帳戶,則模塊將嘗試通過NETLOGON收集SMB會話密鑰。 利用SMB中繼攻擊漏洞CVE-2015-0005
SMB / MSRPC
smbclient.py:一個通用的SMB客戶端,可以允許您列出共享和文件名,重命名,上傳和下載文件,以及創建和刪除目錄,所有這些都是使用用戶名和密碼或用戶名和哈希組合。這是一個很好的例子,可以了解到如何在實際中使用impacket.smbgetArch.py:此腳本將與目標(或目標列表)主機連接,並使用文檔化的msrpc功能收集由(ab)安裝的操作系統體系結構類型。
rpcdump.py:此腳本將轉儲目標上註冊的RPC端點和字符串綁定列表。它還將嘗試將它們與已知端點列表進行匹配。
ifmap.py:此腳本將綁定到目標的管理接口,以獲取接口ID列表。它將在另一個界面UUID列表上使用這個列表,嘗試綁定到每個接口並報告接口是否已列出或正在偵聽。
opdump.py:這將綁定到給定的hostname

samrdump.py:從MSRPC套件與安全帳戶管理器遠程接口通信的應用程序中。它列出了通過此服務導出的系統用戶帳戶、可用資源共享和其他敏感信息
services.py:此腳本可用於通過[MS-SCMR] MSRPC接口操作Windows服務。它支持啟動,停止,刪除,狀態,配置,列表,創建和更改。
netview.py:獲取在遠程主機上打開的會話列表,並跟踪這些會話在找到的主機上循環,並跟踪從遠程服務器登錄/退出的用戶
reg.py:通過[ms-rrp]msrpc接口遠程註冊表操作工具。其想法是提供與reg.exe Windows實用程序類似的功能。=
lookupsid.py:通過[MS-LSAT] MSRPC接口的Windows SID暴力破解程序示例,旨在查找遠程用戶和組
MSSQL / TDS
mssqlinstance.py:從目標主機中檢索MSSQL實例名稱。mssqlclient.py:MSSQL客戶端,支持SQL和Windows身份驗證(哈希)。它還支持TLS。
文件格式
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數據包來檢查主機的狀態。
源码
您可以訪問https://github.com/SecureAuthCorp/impacket查看其源碼(開發版本)0.9.19,2019年4月1日更新-gzip'd tarball
0.9.18,2018年12月5日更新-gzip'd tarball
0.9.17,更新於2018年5月30日-gzip'd tarball
0.9.15,2016年6月28日更新-gzip'd tarball
0.9.14,2016年1月7日更新-gzip'd tarball,
0.9.13,2015年5月4日更新-gzip'd tarball,
0.9.12,2014年7月20日更新-gzip'd tarball,
0.9.11,2014年2月3日更新-gzip'd tarball,
0.9.10,2013年5月6日更新-gzip'd tarball,
0.9.9.9,更新於2012年7月20日-gzip'd tarball,zip文件
0.9.6.0,更新於2006年5月23日-gzip'd tarball
0.9.5.2,更新於2006年4月3日-gzip'd tarball,zip文件
0.9.5.1,更新於2003年12月16日-gzip'd tarball,zip文件