JPCERTCC / DetectLM

Detecting Lateral Movement with Machine Learning
137 stars 38 forks source link
deep-learning elasticsearch kibana machine-learning powershell python security

DetectLM

Detecting Lateral Movement with Machine Learning.
DetectLM is a proof of concept code to analyze and detect malicious commands executed via cmd.exe with machine learning.

DetectLM Architecture

Requirements

Each tools require the following modules:

for Server

for Client

Supported Client OS

Usage

for Server

  1. Download and install Elasticsearch.
  2. Download and install Kibana.
  3. Start Elasticsearch and Kibana.
  4. Download and save the DetectLM from Github.
    git clone https://github.com/JPCERTCC/DetectLM.git
  5. And your Elasticsearch IP Address to DetectLM/server/config/config.ini.
    els_server      = localhost
  6. And mapping in Elasticsearch.
    $ python DetectLM.py -m
  7. Create cron jobs for DetectLM.py.
    For example
    */15 * * * * python3.6 [Folder Name]/DetectLM.py

for Client

  1. Download client/cmdlogs.bat and client/Invoke-DetectLM.ps1.
  2. Register cmdlogs.bat in the registry entry that starts automatically when the cmd.exe is executed.
    > reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun /d [Downloaded Folder Name]\cmdlogs.bat

    or

    > reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor" /v AutoRun /d [Downloaded Folder Name]\cmdlogs.bat
  3. Create a scheduled task for Invoke-DetectLM.ps1.
    > powershell -exec bypass .\Invoke-DetectLM.ps1 -ehost [Elasticsearch Server]

How to Check Log

Executed command logs can be checked from Kibana.
AlertLevel 2 is the malicious commands.

Kibana GUI

AlertLevel

The log has three levels of detection level

Ignore Flag

Ignore flag is automatically added to any command executed by the user.
When malicious Windows command execution is detected by machine learning, a notification will be sent to the client.
A user also can set a ignore flag to specific command execution when asked by client tool.

Alert example

Dashboard

Using Kibana dashboard, logs are visualized.
Example of dashboard is in kibana_objects. Import is [Management -> Saved Objects -> Import]

Kibana dashbord

Known Issues