Uncategorized

WMEye : A Post Exploitation Tool That Uses WMI Event Filter And MSBuild Execution For Lateral Movement

WMEye is an experimental tool that was developed when exploring about Windows WMI. The tool is developed for performing Lateral Movement using WMI and remote MSBuild Execution. It uploads the encoded/encrypted shellcode into remote targets WMI Class Property, create an event filter that when triggered writes an MSBuild based Payload using a special WMI Class called Log File Event Consumer and finally executes the payload remotely.

UseCase

Fileless Lateral Movement using WMI, can be used with Cobalt Strike’s Execute-Assembly

Note: This is still in experimental stage and no where near to be used in a real engagement.

Preview

Current Working

  • Creates a Remote WMI Class
  • Writes Shellcode as property value to the above created Fake WMI Class
  • Creates a WMI Event Filter to trigger on powershell.exe process creation
  • On Event Trigger, it Uploads MSBuild Payload into remote system using LogFileEventConsumer (A WMI Consumer type to write Log Files)
  • Finally Invoke Win32_Process Create to call MSbuild remotely

The MSBuild Payload fetches encoded shellcode from WMI Class Property, decodes and executes it.

Upcoming Features

  • Replace WIN32_Process Create method of invocation with something better
  • Add GZIP Compression for Shellcode and XML File Bytes
  • Add NTLM PTH Support
  • Add CleanUp Functions for removing event filter after the logfileeventconsumer finished writing the MSBuild Payload

Whats Unique in this Project ?

  • Uploads the encoded/encrypted shellcode to remote machines WMI property on a Created Fake Class (can maybe tweak to write shellcode into existing class’s Property)
  • Uses LogFileEventConsumer to upload MSBuild File , instead of relying in spawning Powershell.exe using win32_process Create
R K

Recent Posts

git fetch vs git pull: How They Work and When to Use Each

Both git fetch and git pull talk to a remote repository, but they do very different things to your…

2 days ago

git cherry-pick Command: Apply Commits from Another Branch

Sometimes the change you need already exists, just on the wrong branch. A hotfix lands…

2 days ago

Best Email APIs for Secure Business Email: Why Developers Are Moving Beyond SMTP

Email is still one of the most important communication channels inside modern applications. Password resets,…

3 days ago

Nginx Commands in Linux: Start, Stop, Reload, Test, and Log

Nginx is a high-performance web server and reverse proxy trusted by some of the largest…

6 days ago

ufw Command in Linux: Manage Firewall Rules with Examples

ufw (Uncomplicated Firewall) sits on top of iptables (or nftables on newer systems) and replaces…

6 days ago

who Command in Linux: Show All Logged-In Users and Sessions

When you share a server with a team or investigate unexpected activity, the first question…

6 days ago