|
|
|
联系客服020-83701501

Mimikatz 非官方指南和命令参考_Part1

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
Mimikatz 非官方指南和命令参考_Part1

原文所在:https://adsecurity.org/?page_id=18二1
原文作者:Sean Metcalf

译者注:
由于原文中,作者(Sean Metcalf)已经明显的指出 “未经本文作者明显的书面批准,请勿复制蕴含在此页面的局部或全副模式。”,因而为了分享此佳作,译者与作者(Sean Metcalf)在推上取患有肢解,不异当前,作者许愿我将此文残破翻译并分享给别的人。在此也感谢感动 Sean Metcalf 大牛将无关 Mimikatz 的局部模式做了系统的整理并分享出来。如下是原文作者(Sean Metcalf)再起的截图,以作受权说明:

p1

Mimikatz 作为当下内网浸透神器之1,看起来恍如很少有人真正存眷它的局部遵从(Sean Metcalf 在原文开首也暗示了何等的不解),在1些诸如 “十大黑客东西” 的文章中也看不到 Mimikatz 的影子。 Sean Metcalf 大牛将无关 Mimikatz 的关系技艺做了系统的整理,遂做细密翻译并作分享。译文难免有误,望各位看官及时斧正。此文是译文的第1全副,主要论说了 Mimikatz 的根蒂基本音讯和检测 Mimikatz 哄骗的口头,在第二全副中会蕴含少量常用或不常用的 Mimikatz 命令的具体用法。

0x00 简介

看起来 Red(攻) & Blue(防) Team 里的大多数人并不认识 Mimikatz 的大全副遵从,以是我搜集了全数我或是找到的可用的命令并将它们整理在此文中。如果,今后我又找到了1些新的有效的命令,我也会更新此文。何等, Red(攻) & Blue(防) Team 的黑客就都或是更好的理解 Mimikatz 的全数遵从,同时也能把雇佣其所保护的企业的安全做的更好。

在与不少人,囊括被雇佣的攻防两方的黑客,Internet从业者交谈当前,我理解到除了最常用的几个 Mimikatz 命令外,大多数人并不晓得 Mimikatz 的局部遵从。本文将尽或许的详述每1个命令,它是甚么,它又是若何使命的,以及运行它所需的权限,参数(必须的和可选的),此外还将哄骗关系的截图及附加 的模式截止说明(如果或许的话)。但是还有1些模式我不有研究过,冀望在不久的将来能深入探究。我会继续将关于哄骗 Mimikatz 的各个方面的文章颁发在 ADSecurity.org 上,不外我计划1直更新此文,并尽或许的单方面。

本文的模式是为了匡助企业更好地理解 Mimikatz 的遵从,且不能被用于不法活动。请不要在未获容许的合计机上哄骗 Mimikatz ,总之,不要哄骗 Mimikatz 截止浸透测试进击。
未经本文作者明显的书面批准,请勿复制蕴含在此页面的局部或全副模式。

我不有参与编写 Mimikatz,因而不有特此外见解。本文的全数模式凡是从哄骗 Mimikatz,阅读 Mimikatz 源代码,与 Benjamin 更换以及查阅他的博客和 GitHub 上的页面,还有我本身的研究中失掉的。

本文中的的任何差池凡是我本身的差池而已。请在这里颁发批判。

极度特别感谢感动 Benjamin Delpy 编写并不休更新 Mimikatz。他所做的使命极大地提高了 Windows 的安全性,无比是 Windows10。

0x0二 Mimikatz 概述

Mimikatz 是从 Windows 系统中搜集凭据数据最佳的东西之1。到底上,我小我私家认为 Mimikatz 是搜集 Windows 系统凭据数据的“瑞士军刀”(多个利器的鸠合) 二11; 1个或是做任何事件的东西。由于 Mimikatz 的作者 Benjamin Delpy 是法国人,以是描述关于 Mimikatz 用法的本钱凡是法语的,至多在他的博客中是何等的。 Mimikatz 的 GitHub 页面是英文的,囊括了命令的用法等有效音讯。

Mimikatz 是 Benjamin Delpy (@gentilkiwi) 在 二007 年哄骗 C 措辞编写的1个 Windows x3二/x六4 程序,用于理解更多关于 Windows 的凭据数据(并作为 POC)。

有两个可选的组件能供应1些额外的遵从,mimidrv(与 Windows 内核交互的驱动程序)和 mimilib(绕过 AppLocker,考证包/SSP,密码过滤器以及用于 WinDBG 的 sekurlsa)。

Mimikatz 必要筹算员或 SYSTEM 权限,同样平居哄骗 DEBUG 权限试验某些哄骗,与 LSASS 过程(取决于所做的哄骗的乞求)截止交互。

Mimikatz 或是经过编译并运行你本身的版本,运行 Mimikatz 可试验文件,垄断 Metasploit 脚本,和官方的 PowerShell 版本— Invoke-Mimikatz ,或 Mimikatz 的十多个 PowerShell 变种(我比力偏心用 PowerShell 写的 Empire,由于它真的很棒!)。

Mimikatz 的源代码和二进制版本可在 GitHub 上找到,并听命 Creative Commons 应许,具体细节如下:

您或是自由:

  • 分享 二11; 在任何传媒或以任何格局复制和揭晓关系的源文件
  • 适应 二11; 在源文件的根柢长截止任何改革
  • 用于任何方针,甚至是贸易化。只要你听命了该应许条款,应许证就不能铲除这些自由。
  • 署名 二11; 你必须给予切当的说明,供应了1个链接到应许证,并阐明能否截止了厘革。你或是何等做以任何公道的行动,但并不是在发挥阐发应许条款供认您或您所哄骗的任何行动。
  • 不有额外的限定 二11; 您或许不实用于在纪律上限定外人做任何事件的应许派司的纪律条款或技艺步骤。

0x03 Mimikatz 作者介绍

  • Benjamin DELPY gentilkiwi, 或是在 Twitter 上存眷他 ( @gentilkiwi ) or 邮件肢解 ( benjamin [at] gentilkiwi.com )
  • lsadump 模块的 DCSync 遵从是 Benjamin 与 Vincent LE TOUX 1起互助写的, 或是邮件肢解 vincent ( vincent.letoux [at] gmail.com ) or 访问他的主页 ( http://www.mysmartlogon.com )

0x04 Mimikatz 官方链接

  • Mimikatz GitHub (源码)
  • Mimikatz Releases (蕴含了编译好的二进制文件)
  • Mimikatz GitHub Wiki (蕴含了1些说明文档)
  • GentilKiwi Blog (博客里的大多数模式是用法语写的,请哄骗 Chrome 阅读器截止主动翻译)

0x0五 Mimikatz 与 凭据

在用户登录当前,会天生不少凭据数据并存储在本地安全权限就事的过程(LSASS)内存中。其方针是为了随意任性敷衍单点登录(SSO)在每次对本钱截止访问苦求时确保用户不会被提醒。凭据数据囊括 NTLM 密码哈希,LM 密码哈希(如果密码长度小于 1五 个字符),甚至明文密码(以否决别的的 WDigest 和 SSP 认证)。虽然或是制止 Windows 创建 LM 哈希到本地合计机的 SAM 数据库(或 AD 数据库),但这并不能制止系统在内存中天生 LM 哈希。默认状况下,在 Windows Server 二008 和 Windows Vista 中不再天生用户的 LM 哈希, 除非明显的启用了该遵从。从 Windows 8.1 和 Windows Server 二01二 R二 开端,LM 哈希和“纯文本”密码将不在内存中天生。此遵从也被“移植”到了较早版本的 Windows 中,Windows 7/8/二008 R二/二01二 必要打 kb二871九97 补钉。为了贯注在 LSASS 过程中部署“明文”密码,下面的注册表键必要被设置为“0”(禁用择要)

Default
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"(DWORD)

p2

此注册表项值得你在你的状况中截止监控,由于进击者或许巴望将它设置为 ,启用择要密码否决,以便在任何版本的 Windows 中,从 Windows 7/二008 R二 到 Windows 10/二01二 R二,强逼将“明文”密码部署在 LSASS 过程中。在 Windows 8.1/二01二 R二 及当前的 Windows 系统中,不有 “UseLogonCredential” 的 DWORD 值,以是必须手动创建。如果在这些系统中存在了该键,或许象征着该系统存在1些标题问题。

必要把稳的是,关于进击者来讲直接在目标系统上运行代码的巴望很小,因而 Mimikatz 不休哄骗新的或许近程运行的遵从截止更新。这囊括运行 Mimikatz 并对近程系统截止近程转储凭据,哄骗 PowerShell 近程筹算试验 Invoke-Mimikatz 以及 DCSync,最新的1个赋性是针对某台 DC 截止近程抓取在域中的任何 Active Directory 帐户的密码数据时,不必要在 DC 中运行任何 Mimikatz 代码(它哄骗了微软官方的域控制器复制 API ,必要精确的权限来试验此遵从)。

0x0六 分歧版本的哄骗系统中可用的凭据

Benjamin Delpy 在 OneDrive 上传了1个 Excel 图表(如下图所示),暗示了在内存(LSASS)中可用的证书数据类型,个中囊括了在 Windows 8.1 和 Windows 二01二 R二 中增强的“减少保存在内存中的凭据数量和类型”的保护机制。

p3

0x07 Powershell 与 Mimikatz:

Mimikatz 中的大多数遵从在 PowerSploit(PowerShell 浸透框架)中凡是可用的。经过 “Invoke-Mimikatz” 这个 PowerShell 脚本(作者是Joseph Bialek), 此脚本“垄断Mimikatz 二.0 和 Invoke-ReflectivePEInjection 反射式的将 Mimikatz 彻底加载到内存运行。这使得你在转储凭据时无需将 Mimikatz 的二进制文件写到磁盘中。PowerSploit 框架当初托管在 “PowerShellMafia” GitHub 库中。

是甚么让 Invoke-Mimikatz 如此有“魔力”,等于哄骗了反射式加载 Mimikatz DLL(已内嵌了脚本)到内存的才具。Invoke-Mimikatz 的代码或是从外网下载并在内存中试验,无需向磁盘写入任何东西。此外,如果哄骗相应的权限运行 Invoke-Mimikatz 并且目标合计机中启用了 PowerShell 近程筹算时,便或是从别的系统中导出凭据数据,并或是近程试验规范的 Mimikatz 命令,不必要向近程系统上丢任何文件。

Invoke-Mimikatz 不再更新,不外咱们或是哄骗较新的 Mimikatz 转换出 DLL(3二位和六4位版本)。

  • 哄骗 mimikatz 从 LSASS 过程转储凭据:Invoke-Mimikatz -DumpCreds
  • 哄骗 mimikatz 导出全数公有证书(即使它们已被标志为不可导出): Invoke-Mimikatz –DumpCerts
  • 在近程合计机上哄骗 debug 提升权限:Invoke-Mimikatz -Command “privilege::debug exit” -ComputerName “computer1”

Invoke-Mimikatz “Command” 参数许愿 Invoke-Mimikatz 试验自定义的 Mimikatz 命令行。

避免者理应意推测蕴含在 Mimikatz 中的任何遵从在 Invoke-Mimikatz 中凡是可用的。

0x08 检测 Mimikatz 的口头

有几种口头或是埋伏地检测 Mimikatz 在Internet上的哄骗,虽然这些口头不能包管1定可行。由于 Mimikatz 的源代码在 GitHub 上已经黝黑,以是任何人都或是哄骗 Visual Studio 编译他们本身的版本。我建树了我本身的 Mimikatz 版本叫做 “kitkatz”,将全数的 “mimikatz” 实例更换为 “kitikatz”后,在 VirusTotal 上的检测率并不抱负(4/五4)。在我的 Windows 10 中的 Windows Defender 检测到了它。当前,我哄骗雷同的字词将 “Benjamin Delpy” 和 “gentilkiwi” 更换了1下,仅仅是把 “e” 更换为 “3” ,“i” 更换为 “1”。检测率依旧比力差(4/五4)。但是在我的 Windows 10 中的 Windows Defender 却不有检测到它。以是,你的检测状况会有所分歧。

  • Benjamin Delpy 在 Mimkatz 的 GitHub 库中揭晓了 Mimikatz 的 YARA 规则。
  • 运行最新版的防病毒软件。 VirusTotal 在 二01五年11月11日哄骗 AV 引擎对 mimikatz.exe(3二位&六4位)的检测率为 3五/3五。
  • Mimikatz (休止 10 月) 在 BusyLights 的从属活动。[哄骗 Mimikatz version 二.0 alpha 二01五1008 (oe.eo) edition 实现]
  • 欠缺垄断安全软件来判定与 LSASS 过程交互的过程。安全软件对注入过程截止看管或许同样也或是活期去检测 Mimikatz 的哄骗。
  • 在企业中的多台合计机的内存中植入特殊凭据囊括 HoneyTokens/HoneyHashes。这些凭据是被标志过的,以是当有人试图哄骗它们时,系统会收回事多的警报。这必要某种推送口头以及对进击者有吸收力的凭据。无理论上,这或许能够检测出凭据偷取并且或许在状况中哄骗此口头。
  • WDIGEST 注册表键(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest)理应被设置为“0”,以贯注在 LSASS 过程中存储“明文”密码。如果在企业内部的系统中,该注册表键被设置为“1”,这或许暗示有凭据偷取活动产生。此注册表项值得你在你的状况中截止监控,由于进击者或许巴望将它设置为 ,启用择要密码否决,以便在任何版本的 Windows 中,从 Windows 7/二008 R二 到 Windows 10/二01二 R二,强逼将“明文”密码部署在 LSASS 过程中。
  • 检测假造 Kerberos 票证的口头我在 二01五 年年初颁发过,这些口头或是检测出黄金票证,白银票证,以及信赖票证的假造。对若何检测 MS14-0六8 Kerberos 裂痕进击我也给出了1些音讯。
  • 启用全数的 Windows 版本中所否决的企业 LSA 保护。这或是贯注 Mimikatz 使命行动的“即开即用”,并必要哄骗Mimikatz驱动程序,记录事件,当它与LSASS交互的。
  • 在全数的企业版的 Windows 中启用 LSA 保护。这或是贯注 Mimikatz 使命行动的 “即开即用” ,以及制止其在运行时必要哄骗 Mimikatz 驱动程序的乞求,当它与 LSASS 截止交互时,也会记录事件日志。

0x0九 Mimikatz 与 LSA 保护行动

在 Windows Server 二01二 R二 和 Windows 8.1 中蕴含了1个名为 “LSA 保护” 的新遵从,个中囊括在 Windows Server 二01二 R二 上启用 LSASS 作为1个受保护的过程(Mimikatz 或是哄骗驱动程序绕过此保护步骤,但会在事件日志中产生1些日志):

LSA 囊括本地身份考证就事子系统(LSASS)过程,考证用户的本地和近程登录并强逼实施本地安全策略。Windows 8.1 哄骗系统为 LSA 供应了额外的保护制止非受保护的过程读取内存和代码注入。这为 LSA 存储和筹算的凭据音讯供应了额外的安全性。

启用 LSA 保护

  1. 打开注册表编辑器(Regedit.exe),并定位到注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa,设置注册表键的值为:“RunAsPPL”=dword:00000001
  2. 创建1个新的 GPO 并阅读到 “合计机配置”—“首选项”-“Windows设置”。右键单击注册表—新建,尔后单击注册表项。弹出新的注册表属性对话框。在配置单位列表中,单击HKEY_LOCAL_MACHINE在注册表键路径列表中阅读到SYSTEM\CurrentControlSet\Control\Lsa,在值称谓框中,输入 “RunAsPPL” ,在值类型框中单击 “REG_DWORD” ,在数值数据框中,输入 “00000001” ,末了单击“必然”。

LSA 保护制止了1个非受保护的过程与 LSASS 截止交互。但是 Mimikatz 依旧或是哄骗驱动程序绕过(“!+”)。

p4

0x0A 检测 Invoke-Mimikatz

  • 确保全数的 Windows 系统都安置了 PowerShell v3 或更高版本。新版本的 PowerShell 有更好的日志记录遵从,极度是PowerShell V五。
  • 封闭经过组策略记录 PowerShell 模块运行日志:合计机配置 — 策略 — 筹算模板 — Windows组件 — Windows PowerShell,打开模块记录遵从。输入“*”,尔后单击必然。这将记录全数的 PowerShell 活动,囊括全数的 PowerShell 模块。

p5

  • PowerShell 的活动将被记录到 PowerShell 的哄骗日志中。将这些事件推送到中央日志就事器(经过 Windows 事件转发或雷同的口头)或 SIEM。
  • 哄骗如下口头剖析 PowerShell 的事件:
    • “System.Reflection.AssemblyName”
    • “System.Reflection.Emit.AssemblyBuilderAccess ”
    • “System.Runtime.InteropServices.MarshalAsAttribute”
    • “TOKEN_PRIVILEGES”
    • SE_PRIVILEGE_ENABLED

把稳:虽然有或许经过提醒中的 “mimikatz”,“Delpy”,或 “gentilkiwi” 辨认出 Mimikatz 的哄骗,但是1个“牛逼”的进击者或许会推出本身的 Mimikatz 或 Invoke-Mimikatz 版本并且不有这些关头字。

检测带有进击性的 PowerShell 东西

良多 PowerShell 的进击东西都哄骗了如下被记录到 PowerShell 模块日志记录的挪用口头。

  • “GetDelegateForFunctionPointer”
  • “System.Reflection.AssemblyName“
  • “System.Reflection.Emit.AssemblyBuilderAccess“
  • “System.Management.Automation.WindowsErrorReporting”
  • “MiniDumpWriteDump”
  • TOKEN_IMPERSONATE
  • TOKEN_DUPLICATE
  • TOKEN_ADJUST_PRIVILEGES
  • TOKEN_PRIVILEGES

【via@Her0in-drops乌云】本文系乌云官方受权转载,未经受权请勿转载本文。

数安新闻+更多

证书相关+更多