JonMon-Lite: The Remote Agentless EDR Proof-of-Concept for ETW Trace Monitoring

JonMon-Lite is a research proof-of-concept “Remote Agentless EDR” that creates an ETW Trace Session through a Data Collector Set. This session can be created locally or remotely.

Events Collected

JonMon-Lite collects the following data:

EventType Provider
Process Creation Microsoft-Windows-Kernel-Process
File Creation Microsoft-Windows-Kernel-File
DotNetLoad Microsoft-Windows-DotNETRuntime
WMIEventFilter Microsoft-Windows-WMI-Activity
RPCClientCall ETW Microsoft-Windows-RPC
RPCServerCall Microsoft-Windows-RPC
CryptUnprotectData Microsoft-Windows-Crypto-DPAPI
AMSI Microsoft-Antimalware-Scan-Interface

JonMon-Lite is broken up into 4 pieces:

  1. JonMon-Lite.exe – resonsible for creation of data collection sets and collection
  2. JonMon-Lite.json – configuration file
  3. JonMon-Lite.xml – XML file that the data collector set will use
  4. JonMon-Lite manifest files (.dll/.man) – needed to set up events in the Event Viewer

To execute:

Update the JonMon-Lite.json to fit your environment (This assumes you are running this from Machine3):

[pastacode lang=”markup” manual=”%7B%0A%20%20%20%20%22XMLFilePath%22%3A%20%22C%3A%5C%5CPath%5C%5CTo%5C%5CJonMon-Lite.xml%22%2C%0A%20%20%20%20%22ETLFilePath%22%3A%20%22C%3A%5C%5CPerfLogs%5C%5CAdmin%5C%5CJonMon-Lite%5C%5C%22%2C%0A%20%20%20%20%22RootPath%22%3A%20%22%5C%5CMachine3%5C%5CC%24%5C%5CPerfLogs%5C%5CAdmin%5C%5CJonMon-Lite%5C%5C%22%2C%0A%20%20%20%20%22TraceName%22%3A%20%22JonMon-Lite%22%2C%0A%20%20%20%20%22WorkstationName%22%3A%20%5B%22Machine1%22%2C%20%22Machine2%22%5D%2C%0A%20%20%20%20%22User%22%3A%20%22TestUser%22%2C%0A%20%20%20%20%22Password%22%3A%20%22ChangeMe1!%22%0A%20%20%20%20%0A%7D” message=”” highlight=”” provider=”manual”/]

Make sure that the user inserted in User and Password is an Administrator on all machines. If you want to test locally, you can simply do:

[pastacode lang=”markup” manual=”%7B%0A%20%20%20%20%22XMLFilePath%22%3A%20%22C%3A%5C%5CPath%5C%5CTo%5C%5CJonMon-Lite.xml%22%2C%0A%20%20%20%20%22ETLFilePath%22%3A%20%22C%3A%5C%5CPerfLogs%5C%5CAdmin%5C%5CJonMon-Lite%5C%5C%22%2C%0A%20%20%20%20%22RootPath%22%3A%20%22C%3A%5C%5CPerfLogs%5C%5CAdmin%5C%5CJonMon-Lite%5C%5C%22%2C%0A%20%20%20%20%22TraceName%22%3A%20%22JonMon-Lite%22%2C%0A%20%20%20%20%22WorkstationName%22%3A%20%5B%22LocalMachineName%22%5D%2C%0A%20%20%20%20%22User%22%3A%20%22%22%2C%0A%20%20%20%20%22Password%22%3A%20%22%22%0A%20%20%20%20%0A%7D” message=”” highlight=”” provider=”manual”/]

Afterwards, simply run: JonMon-Lite.exe as an Administrator. You should see something like this:

[pastacode lang=”markup” manual=”Reading%20JonMon-Lite%20Config%20File…%0A%0AUninstalling%20ETW%20Manifest%0AInstalling%20ETW%20Manifest%0AXMLFilePath%3A%20C%3A%5CUsers%5Cthor%5CDesktop%5CJonMon-Lite%5CJonMon-Lite.xml%0ATraceName%3A%20JonMon-Lite%0AETLFilePath%20C%3A%5CPerfLogs%5CAdmin%5CJonMon-Lite%5C%0ARootPath%3A%20%5C%5CAsgard-Wrkstn%5CC%24%5CPerfLogs%5CAdmin%5CJonMon-Lite%5C%0AWorkstationName%3A%20Wakanda-Wrkstn%0AUser%3A%20thor%0APassword%3A%20GodofLightning1!%0A%0ACreating%20JonMon-Lite%20Trace…%0AXMLFilePath%3A%20C%3A%5CUsers%5Cthor%5CDesktop%5CJonMon-Lite%5CJonMon-Lite.xml%0ATraceName%3A%20JonMon-Lite%0AETLFilePath%20C%3A%5CPerfLogs%5CAdmin%5CJonMon-Lite%5C%0ARootPath%3A%20%5C%5CAsgard-Wrkstn%5CC%24%5CPerfLogs%5CAdmin%5CJonMon-Lite%5C%0AWorkstationName%3A%20Asgard-Wrkstn%0AUser%3A%20thor%0APassword%3A%20GodofLightning1!%0A%0AProcessing%20events…%0ACreating%20JonMon-Lite%20Trace…%0AETL%20file%20not%20found%3A%20C%3A%5CPerfLogs%5CAdmin%5CJonMon-Lite%5CWakanda-Wrkstn_%5CJonMon-Lite.etl%2C%20waiting%204%20seconds…%0AProcessing%20events…%0AETL%20file%20not%20found%3A%20C%3A%5CPerfLogs%5CAdmin%5CJonMon-Lite%5CAsgard-Wrkstn_%5CJonMon-Lite.etl%2C%20waiting%204%20seconds…%0ACredentials%20set%20successfully.%0ACredentials%20set%20successfully.%0ApDataCollectorSet-%3Eput_RootPath%20was%20set%20successfully%0ApDataCollectorSet-%3Eput_RootPath%20was%20set%20successfully%0ApDataCollectorSet-%3ESetXml%20was%20set%20successfully%0ApDataCollectorSet-%3ESetXml%20was%20set%20successfully%0ACollector%20set%20’JonMon-Lite’%20has%20been%20created%2Fupdated%20successfully.%0ACollector%20set%20’JonMon-Lite’%20has%20been%20created%2Fupdated%20successfully.%0ACollector%20set%20’JonMon-Lite’%20started%20successfully.%0ACollector%20set%20’JonMon-Lite’%20started%20successfully” message=”” highlight=”” provider=”manual”/]

To stop the collection, simply go to the JonMon-Lite window and type “exit” and press enter.

One thing to note – I don’t manually clean up the ETL files, just in case someone wants to grab them, so before you start the next session – you will need to manually remove them.

Download

Support Our Threat Intelligence

If you find our technology report and cybersecurity news helpful, consider supporting our work.

Crypto QR Code
USDT (TRC20):
TN8BdV8cp4T1Cd28gK9qTAnZknzzuwyUtm
USDT (ERC20):
0x3725e1a7d3bc5765499fa6aaafe307fabcd75bce