前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Impackt 工具包使用指南- SMB / MSRPC

Impackt 工具包使用指南- SMB / MSRPC

作者头像
Gamma实验室
发布2023-09-13 18:49:36
2.2K0
发布2023-09-13 18:49:36
举报
文章被收录于专栏:Gamma安全实验室Gamma安全实验室

前言

Impacket 工具包是红队人员内网横向使用频率最多的工具包之一,而Impacket 是一个标准 Python 类库,用于对 SMB1-3 或 IPv4 / IPv6 上的 TCP、UDP、ICMP、IGMP,ARP,IPv4,IPv6,SMB,MSRPC,NTLM,Kerberos,WMI,LDAP 等协议进行低级编程访问。在 impacket 工具包中用到最多的协议就是 smb 协议,SMB 是一种网络协议,也称为服务器消息块协议,它被用于在客户端和服务器之间进行通信,它 还可以用来共享文件,打印机和其他一些网络资源。其次就是 MSRPC,MSRPC 或 Microsoft 远程过程调用是 DCE / RPC 的修改版本,它是由 Microsoft 创建的,用于在 Windows 中无缝创建客户端/服务器模型,Windows Server 域协议完全基于 MSRPC。

使用

安装就无需多言了,实在不会的就百度吧!

代码语言:javascript
复制
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket/
ls
python setup.py install

所有生成的工具包文件都在 example 目录下:

这里喔演示,这里没有搭建域环境,如果域存在就在用户名前面加上域名,用户:administator 密码:123456

为啥要以 administrator 用户为演示,因为在打了 kb2871997 补丁下,禁 止 sid500 以外的的用户进行 pth,如果不存在域就不需要加上域名参数。

smbclient.py

有时候,我们需要在攻击者计算机和目标计算机之间执行多项操作,那么s mbclien.py 足够满足我们的所需,它可以列出共享和文件,重命名某些文件,上传二进制文件或从目标计算机下载文件,当然还有更多妙用。。。。句法:

代码语言:javascript
复制
smbclient.py [域] / [用户]:[密码/密码哈希] @ [目标 IP 地址]

通过密码建立 smb 服务连接

代码语言:javascript
复制
Python smbclient.py

redteamspace/Administrator:123456@192.168.75.141

通过 hash 建立 smb 服务连接

代码语言:javascript
复制
python3 smbclient.py -hashes 00000000000000000000000000000000:32ed87bdb5fdc5e9cba88547376818d4 administrator@192.168.75.141

我们将连接到目标计算机,并且我们有了一个 smb shell,它可以运行各 种命令,例如 dir,cd,pwd,put,rename,更多,del,rm,mkdir,rmdir,信息等

lookupsid.py

安全标识符(SID)是可变长度的唯一值,用于标识用户帐户,通过 SID 用 户枚举,我们可以提取有关存在的用户及其数据的信息,Lookupsid 脚本可以枚举本地和域用户。

句法:

代码语言:javascript
复制
lookupsid.py [域] / [用户]:[密码/密码哈希] @ [目标 IP 地址]

通过密码进行验证

代码语言:javascript
复制
Pyhton lookupsid.py
redteamspace/Administrator:123456@192.168.75.141

通过 hash 进行验证

代码语言:javascript
复制
Pyhton lookupsid.py -hashes 00000000000000000000000000000000: 
32ed87bdb5fdc5e9cba88547376818d4 
redteamspace/Administrator@192.168.75.141

reg.py

Reg.exe 是一个可执行服务,当与 eh 分别结合查询,添加,删除关键字的组合使用时,可以读取,修改和删除注册表值,该脚本就是利用 reg 服务,它可用于获取有关各种策略,软件的信息,还可以更改其中一些策略。

句法:

代码语言:javascript
复制
reg.py [域] / [用户]:[密码:密码哈希] @ [目标 IP 地址] [操作] [操作参数]

通过密码进行验证

代码语言:javascript
复制
Python3 reg.py Administrator:123456@192.168.75.141 query -
keyName HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows -s

通过 hash 进行验证

代码语言:javascript
复制
Pyhton reg.py -hashes 00000000000000000000000000000000: 
32ed87bdb5fdc5e9cba88547376818d
redteamspace/Administrator@192.168.75.141 query -keyName 
HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows -s

上面实例可以获取windows的安全策略

rpcdump.py

RPC 或远程过程调用是指计算机程序使过程在不同的地址空间中执行时(被编码为常规过程调用)。该脚本可以为我们枚举这些端点。

句法:

代码语言:javascript
复制
rpcdump.py [域] / [用户]:[密码/密码哈希] @ [目标 IP 地址]

通过密码进行验证:

代码语言:javascript
复制
Python rpcdump.py 
redteamspace/Administrator:123456@192.168.75.141

通过 hash 进行验证:

代码语言:javascript
复制
Python rpcdump.py -hashes 
00000000000000000000000000000000:32196B56FFE6F45E294117B91A83BF38 
redteamspace/Administrator@192.168.75.141

opdump.py

该脚本绑定到给定的主机名:端口,并连接到 DCERPC(分布式计算环境/远程过程调用)接口。连接后,它将尝试依次调用前 256 个操作号中的每个操作号,并报告每次调用的结果,这会生成与给定 host:port 的 TCP 连接信息。

句法:

代码语言:javascript
复制
opdump.py [目标 IP 地址] [端口接口版本]
opdump.py 192.168.75.141 135 76F226C3-EC14-4325-8A99-
6A46348418AF v1.0

samrdump.py

Samrdump 是一个使用安全帐户管理器(SAM)检索有关指定目标计算机的敏感信息的应用程序。它是一个远程接口,可以在“分布式计算环境/远程过程调用(DCE / RPC)”服务下进行访问。它列出了所有系统共享,用户帐户以及 有关目标在本地网络中的存在状态的其他有用信息。

句法:

代码语言:javascript
复制
samrdump.py [域] / [用户]:[密码/密码哈希] @ [目标 IP 地址]

通过密码进行验证:

代码语言:javascript
复制
Python samrdump.py Administrator:123456@192.168.75.141

通过 hash 进行验证:

代码语言:javascript
复制
Python samrdump.py -hashes 00000000000000000000000000000000:
32196B56FFE6F45E294117B91A83BF38 
redteamspace/Administrator@192.168.75.141

services.py

Impacket 的服务脚本在 MSRPC Interface 的帮助下与 Windows 服务进行通信。它可以启动,停止,删除,读取状态,配置,列出,创建和更改任何服务。

句法:

代码语言:javascript
复制
services.py [域] / [用户]:[密码/密码哈希] @ [目标 IP 地址] [操 作]

通过密码进行验证:

代码语言:javascript
复制
Python services.py Administrator:123456@192.168.75.141 list

通过 hash 进行验证:

代码语言:javascript
复制
Python services.py -hashes 00000000000000000000000000000000:
32196B56FFE6F45E294117B91A83BF38 
redteamspace/Administrator@192.168.75.141 list

ifmap.py

Ifmap 脚本最初绑定到目标计算机的 MGMT 接口。它会在获取接口 ID 的列 表后,将这些 ID 添加到其数据库中已经具有的 UUID 的另一个大型列表中,然 后,它尝试绑定每个接口并报告接口状态(该状态可以列出或正在监听),会 展示程序的 UUID(通用唯一标识符)列表,通过这些在互联网搜索此 uuid,来检索服务安全性。

句法:

代码语言:javascript
复制
ifmap.py [目标 IP 地址] [目标端口]
ifmap.py 192.168.75.141 135

getArch.py

使用 NDR64 传输语法编码的所有 PDU(协议数据单元)必须使用 0x10 的值作为数据表示格式标签。此值仅在 x64 位系统的传输中使用。当目标脚本提供该脚本时,该脚本试图与目标系统进行通信,并收集数据表示格式标签的值。然后将其与存储在其代码中的 NDR64 语法匹配。然后,如果操作系统是 64 位或32 位系统,它可以将信息提供给攻击者。

句法:

代码语言:javascript
复制
getArch.py -target [目标 IP 地址]
getArch.py -targets [目标列表]
getArch.py -targets target.txt

netview.py

这是一个枚举工具,它要求使用域名来枚举主机。也可以提供主机或目标列 表 一旦找到信息,它就不会停止。它不断循环查找找到的主机,并详细跟踪谁从远程服务器登录/注销,它保持与目标系统的连接,并且非常隐蔽,因为它仅发送少量 DCERPC 数据包。此脚本要求攻击者计算机能够解析域计算机的NetBIOS 名称,这可以通过将攻击者计算机上的 DNS 设置为域 DNS 来实现。

句法:

代码语言:javascript
复制
netview.py [域] / [用户]-目标[目标 IP 地址]-用户[用户列表]
netview.py [域] / [用户]-目标[目标列表]-用户[用户列表]
netview.py redteamspace/Administrator -targets target.txt -users 
user.txt
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-30 18:11:02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Gamma安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档