Home

Awesome

Not Maintained

APT Simulator

Important: Don't just ZIP download or clone the repo if you don't plan to develop some test. Use the package in the release which contains a packaged version with encrypted archives that don't contain cleartext samples and tools.

APT Simulator is a Windows Batch script that uses a set of tools and output files to make a system look as if it was compromised. In contrast to other adversary simulation tools, APT Simulator is designed to make the application as simple as possible. You don't need to run a web server, database or any agents on set of virtual machines. Just download the prepared archive, extract and run the contained Batch file as Administrator. Running APT Simulator takes less than a minute of your time.

Use Cases

  1. POCs: Endpoint detection agents / compromise assessment tools
  2. Test your security monitoring's detection capabilities
  3. Test your SOCs response on a threat that isn't EICAR or a port scan
  4. Prepare an environment for digital forensics classes

Motives

Customers tested our scanners in a POC and sent us a complaint that our scanners didn't report on programs that they had installed on their test systems. They had installed an Nmap, dropped a PsExec.exe in the Downloads folder and placed on EICAR test virus on the user's Desktop. That was the moment when I decided to build a tool that simulates a real threat in a more appropriate way.

Why Batch?

Focus

The focus of this tool is to simulate adversary activity, not malware. See the Advanced Solutions section for advanced tools to simulate adversary and malware activity.

APT vs Malware

Getting Started

  1. Download the latest release from the "release" section
  2. Extract the package on a demo system (Password: apt)
  3. Start a cmd.exe as Administrator
  4. Navigate to the extracted program folder and run APTSimulator.bat

Avoiding Early Detection

The batch script extracts the tools and shells from an encrypted 7z archive at runtime. Do not download the master repo using the "download as ZIP" button. Instead use the official release from the release section.

AV Excluder

APT Simulator contains a module named "AVExcluder" that tries to register the used %APTDIR% as AV exclusion in typical AV solutions. As I do not have access to all of the AV software products in the market, please report errors or add new exclusions as pull requests.

Extending the Test Cases

Since version 0.4 it is pretty easy to extend the test sets by adding a single .bat file to one of the test-set category folders.

E.g. If you want to write a simple test case for "privilege escalation", that uses a tool named "privesc.exe", clone the repo and do the following:

  1. Add your tool to the toolset folder
  2. Write a new batch script privesc-1.bat and add it to the ./test-sets/privilege-escalation folder
  3. Run build_pack.bat
  4. Add your test case to the table and test sets section in the README.md
  5. Create a pull request

Tool and File Extraction

If your script includes a tool, web shell, auxiliary or output file, place them in the folders ./toolset or ./workfiles. Running the build script build_pack.bat will include them in the encrypted archives enc-toolset.7z and enc-files.7z.

Extract a Tool

"%ZIP%" e -p%PASS% %TOOLARCH% -aoa -o%APTDIR% toolset\tool.exe > NUL

Extract a File

"%ZIP%" e -p%PASS% %FILEARCH% -aoa -o%APTDIR% workfile\tool-output.txt > NUL

Detection

The following table shows the different test cases and the expected detection results.

Test CaseAVNIDSEDRSMCA
Collect Local FilesX
C2 Connects(X)XXX
DNS Cache 1 (Cache Injection)(X)XXX
Malicious User Agents (Malware, RATs)XXX
Ncat Back Connect (Drop & Exec)XXXX
WMI Backdoor C2XXX
LSASS Dump (with Procdump)XXX
Mimikatz 1 (Drop & Exec)XXXX
WCE 1 (Eventlog entries)XXX
Active Guest Account AdminXXX
Fake System File (Drop & Exec)XXX
Hosts File (AV/Win Update blocks)(X)XX
Obfuscated JS Dropper(X)XXXX
Obfuscation (RAR with JPG ext)(X)
Nbtscan Discovery (Scan & Output)XX(X)X
Recon Activity (Typical Commands)XXX
PsExec (Drop & Exec)XXX
Remote Execution Tool (Drop)(X)X
At JobXXX
RUN Key Entry CreationXXX
Scheduled Task CreationXXX
StickyKey BackdoorXX
UserInitMprLogonScript Persistence(X)XX
Web ShellsX(X)X
WMI BackdoorXX

Cobalt Strike Beacon Activity

You should now be able to find events in your security monitoring solution (SIEM, EDR etc.) for the following keywords:

Named Pipes

Note: No Named Pipe Monitoring? You can use Sysmon + this config and this Sigma rule to get you started.

Get System Activity

Note: No events? you can use this Sigma rule to get you started.

C2 Beaconing

Test Sets

Collection

Collect Local Files

Command and Control

C2 Connects

DNS Cache 1

Malicious User Agents

Ncat Back Connect

WMI Backdoor C2

Credential Access

LSASS DUMP

Mimikatz-1

WCE-1

Defense Evasion

Active Guest Account Admin

Fake System File

Hosts

JS Dropper

Obfuscation

Discovery

Nbtscan Discovery

Recon

Execution

PsExec

Remote Execution Tool

Lateral Movement

No test cases yet

Persistence

At Job

RUN Key

Scheduled Task

Scheduled Task XML

Sticky Key Backdoor

Web Shells

UserInitMprLogonScript Persistence

WMI Backdoor

Batch Mode

Since version 0.8.0 APTSimulator features a batch mode provided by @juju4 that allows to run it in in a scripted way e.g. via Ansible

APTSimulator.bat -b

WARNING

This repo contains tools and executables that can harm your system's integrity and stability. Do only use them on non-productive test or demo systems. Create a snapshot before you start. Otherwise you have to remove all the modifications manually, which is a tedious task.

Screenshots

Screen Screen Screen Screen

Advanced Solutions

The CALDERA automated adversary emulation system https://github.com/mitre/caldera

Infection Monkey - An automated pentest tool https://github.com/guardicore/monkey

Flightsim - A utility to generate malicious network traffic and evaluate controls https://github.com/alphasoc/flightsim

Integrated Projects / Software

Contact

Follow and contact me on Twitter @cyb3rops