Emulate User Behaviour

GHOSTS NPC Framework

GHOSTS simulates user activity on a computer, like creating documents, browsing websites, and downloading files. It drives various popular applications on both Windows and Linux machines. Whether you’re a friendly administrator or a cyber adversary, GHOSTS can replicate your expected behavior.

GHOSTS has many use cases in cyber experimentation, training and exercise, most notably for bringing non-player characters (NPCs) to life. However, it can also be used for other purposes requiring realistic activity on a computer.

https://github.com/cmu-sei/GHOSTS

๐Ÿ”น 1. Detonate

  • By: Elastic Security
  • What it does: Generates synthetic endpoint activity (browsing, file ops, process creation) for telemetry validation.
  • Similarities: Focuses on simulating benign user behavior to test detection.
  • GitHub: https://github.com/elastic/detonate

๐Ÿ”น 2. OpenNPC (Unofficial)

  • Unofficial recreations or forks of GHOSTS-like functionality.
  • Try GitHub search for: "npc user simulation" or "synthetic user desktop automation"
  • Caveat: Many are proof-of-concepts or outdated.

๐Ÿ”น 3. AtomicSim / SysmonSimulator / Eventgen tools

  • These tools create realistic logs without full desktop interaction:
  • Difference: Focus on log simulation, not live user desktop behavior.

๐Ÿ”น 4. AIWorker / UserSim Bots (custom)

  • Custom Python bots using:
    • pyautogui for GUI interactions
    • selenium for browser automation
    • Task scheduler + randomizer to mimic GHOSTS’ timeline behavior
  • No official project, but can be scripted to simulate:
    • Browser visits
    • Document editing
    • Email activity
    • App launching

๐Ÿ”น 5. FLARE VM + AutoIt Scripts

  • Use FLARE VM on a Windows box with AutoIt or PowerShell scripts to simulate user behavior (e.g., open documents, run CLI commands, visit sites).
  • Not as robust or managed as GHOSTS, but customizable.

๐Ÿง  If You Need GHOSTS-Like Capabilities But Want More Control:

You could also roll your own using:

  • Python + pyautogui for keyboard/mouse events
  • Selenium for browsing
  • Task scheduler (.json) to randomize actions per “NPC”

This is essentially how GHOSTS works under the hood.

1. Caldera (MITRE)

  • Type: Automated Red Team Framework
  • Use: Adversary emulation via agents and plugins.
  • Similarities: Simulates post-compromise behavior, can mimic NPC-like behavior in a cyber environment.
  • URL: https://github.com/mitre/caldera

๐Ÿ”น 2. Sysmon Simulator

  • Type: User Behavior Simulation
  • Use: Generates realistic Windows event logs (Sysmon) to test SIEM rules.
  • Similarities: Emulates user and malware activity like logins, file accesses, process launches.

๐Ÿ”น 3. Invoke-AtomicRedTeam / Atomic Red Team


๐Ÿ”น 4. PurpleSharp


๐Ÿ”น 5. Detonate (Elastic)

  • Type: Synthetic endpoint activity generator
  • Use: Simulates common user activity to generate EDR/telemetry data.
  • Similarities: Like NPC behavior for generating noise/data for detection testing.
  • URL: https://github.com/elastic/detonate

๐Ÿ”น 6. OpenNPC

  • Type: Open-source user emulation framework
  • Use: Simulates realistic user behavior (logon, file access, browsing, email, etc.)
  • Note: Not as widely known as GHOSTS, but similar in scope.

Summary Table

ToolGUI AutomationBehavior TimelineOpen SourceNotes
GHOSTS (CMU SEI)โœ… Yesโœ… Yesโœ… YesFull NPC framework
Detonateโœ… PartialโŒโœ… YesFocused on EDR telemetry
FLARE VM + Scriptsโœ… YesโŒ Manualโœ… YesNeeds customization
SysmonSimulatorโŒโŒโœ… YesLog generation only
Selenium + Scriptsโœ… Yesโœ… With effortโœ… YesBuild-your-own NPC
OpenNPC (unofficial)โœ… ??โœ… ?Varies by project

Reference