MCPcopy Index your code
hub / github.com/alphasoc/flightsim

github.com/alphasoc/flightsim @v2.5.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.5.1 ↗ · + Follow
222 symbols 452 edges 33 files 119 documented · 54%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Network Flight Simulator

flightsim is a lightweight utility used to generate malicious network traffic and help security teams to evaluate security controls and network visibility. The tool performs tests to simulate DNS tunneling, DGA traffic, requests to known active C2 destinations, and other suspicious traffic patterns.

Installation

Download the latest flightsim binary for your OS from the GitHub Releases page. Alternatively, the utility can be built using Golang in any environment (e.g. Linux, MacOS, Windows), as follows:

go install github.com/alphasoc/flightsim/v2@latest

Running Network Flight Simulator

Upon installation, test flightsim as follows:

$ flightsim --help

AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)

flightsim is an application which generates malicious network traffic for security
teams to evaluate security controls (e.g. firewalls) and ensure that monitoring tools
are able to detect malicious traffic.

Usage:
    flightsim <command> [arguments]

Available commands:
    get         Get a list of elements (ie. families) of a certain category (ie. c2)
    run         Run all modules, or a particular module
    version     Prints the version number

Cheatsheet:
    flightsim run                   Run all the modules
    flightsim run c2                Simulate C2 traffic
    flightsim run c2:trickbot       Simulate C2 traffic for the TrickBot family
    flightsim run ssh-transfer:1GB  Simulate a 1GB SSH/SFTP file transfer

    flightsim get families:c2       Get a list of all c2 families

The utility runs individual modules to generate malicious traffic. To perform all available tests, simply use flightsim run which will generate traffic using the first available non-loopback network interface. Note: when running many modules, flightsim will gather destination addresses from the AlphaSOC API, so requires egress Internet access.

To list the available modules, use flightsim run --help. To execute a particular test, use flightsim run <module>, as below.

$ flightsim run --help
usage: flightsim run [flags] [modules]

To run all available modules, call:

    flightsim run

 To run a specific module:

    flightsim run c2

Available modules:

        c2, dga, imposter, miner, scan, sink, spambot, ssh-exfil, ssh-transfer, tunnel-dns, tunnel-icmp

Available flags:
  -dry
        print actions without performing any network activity
  -fast
        reduce sleep intervals between simulation events
  -iface string
        network interface or local IP address to use
  -size int
        number of hosts generated for each simulator

$ flightsim run dga

AlphaSOC Network Flight Simulator™  (https://github.com/alphasoc/flightsim)
The address of the network interface for IP traffic is 192.168.220.38
The address of the network interface for DNS queries is 192.168.220.38
The current time is 26-Oct-21 17:28:51

17:28:51 [dga] Generating a list of DGA domains
17:28:51 [dga] Resolving 6kauziij.com
17:28:52 [dga] Resolving paxeo0jk.biz
17:28:53 [dga] Resolving iuuub8al.biz
17:28:54 [dga] Resolving bxsei3nj.com
17:28:55 [dga] Resolving zbwltf1h.space
17:28:56 [dga] Resolving yoze7avi.com
17:28:57 [dga] Resolving ijax8aqw.space
17:28:58 [dga] Resolving wwrjyj4l.space
17:28:59 [dga] Resolving uioc5hky.com
17:29:00 [dga] Resolving lcwdji5t.biz
17:29:01 [dga] Resolving zluwcb4h.biz
17:29:02 [dga] Resolving 8jodcvhj.space
17:29:03 [dga] Resolving ju5haxur.com
17:29:04 [dga] Resolving ivthu2dl.biz
17:29:05 [dga] Resolving ha0bsxft.com
17:29:05 [dga] Done (15/15)

All done! Check your SIEM for alerts using the timestamps and details above.

The utility also has a get command which can be used to query information that can later be used with the simulation modules. At present, a list of C2 families can be obtained to be used with the C2 module. To see how to use the get command, run flightsim get -h as below.

$ flightsim get -h

AlphaSOC Network Flight Simulator™  (https://github.com/alphasoc/flightsim)
The current time is 26-Oct-21 17:42:23

usage: flightsim get [flags] element:category

Available elements:

        families

Available categories:

        c2

Available flags:

To get a list of C2 families, run:

$ flightsim get families:c2

AlphaSOC Network Flight Simulator™  (https://github.com/alphasoc/flightsim)
The current time is 16-Nov-21 11:16:51

11:16:51 [families:c2] Fetching c2 families
11:16:55 [families:c2] Adwind, Agent Tesla, Amadey, AsyncRAT, AZORult, BASHLITE, BazarBackdoor, BlackNET RAT, Cobalt Strike, Collector Stealer, CryptBot, DarkComet, DiamondFox, Dridex, Emotet, Gozi, IcedID, Kimsuky, KPOT Stealer, LokiBot, Mirai, NanoCore RAT, njRAT, Oski Stealer, Pony, Predator the Thief, Quakbot, RedLine, RedLine Stealer, Remcos RAT, Smoke Loader, Taurus, TrickBot, XtremeRAT, Zloader
11:16:55 [families:c2] Fetched 35 c2 families

All done!

Description of Modules

The modules packaged with the utility are listed in the table below.

Module Description
c2 Generates both DNS and IP traffic to a random list of known C2 destinations
cleartext Generates random cleartext traffic to an Internet service operated by AlphaSOC
dga Simulates DGA traffic using random labels and top-level domains
imposter Generates DNS traffic to a list of imposter domains
irc Connects to a random list of public IRC servers
miner Generates Stratum mining protocol traffic to known cryptomining pools
oast Simulates out-of-band application security testing (OAST) traffic
scan Performs a port scan of random RFC 5737 addresses using common TCP ports
sink Connects to known sinkholed destinations run by security researchers
spambot Resolves and connects to random Internet SMTP servers to simulate a spam bot
ssh-exfil Simulates an SSH file transfer to a service running on a non-standard SSH port
ssh-transfer Simulates an SSH file transfer to a service running on an SSH port
telegram-bot Generates Telegram Bot API traffic using a random or provided token
tunnel-dns Generates DNS tunneling requests to *.sandbox.alphasoc.xyz
tunnel-icmp Generates ICMP tunneling traffic to an Internet service operated by AlphaSOC

Extension points exported contracts — how you extend this code

HostSource (Interface)
TODO: pass context [13 implementers]
v2/simulator/simulator.go
Packet (Interface)
Packet interface represents specific sftp packet type (data section to be exact) ex. sshFxpInitPacket, sshFxpVersionPack [7 …
v2/simulator/ssh/packet.go
Simulator (Interface)
(no doc) [12 implementers]
v2/simulator/simulator.go
HostMsgFormatter (Interface)
HostMsgFormatter allows a simulator to implement a custom HostMsg method to be called in place of parsing the Module.Hos [1 …
v2/simulator/simulator.go
Module (Interface)
(no doc)
v2/simulator/simulator.go

Core symbols most depended-on inside this repo

String
called by 11
v2/simulator/simulator.go
ReadUint32
called by 9
v2/simulator/ssh/fxp/fxp.go
ReadString
called by 8
v2/simulator/ssh/fxp/fxp.go
printMsg
called by 7
v2/cmd/run/print.go
GetError
called by 7
v2/simulator/ssh/fxp/fxp.go
isSoftError
called by 6
v2/simulator/simulator.go
Marshal
called by 6
v2/simulator/ssh/packet.go
Init
called by 5
v2/simulator/simulator.go

Shape

Method 109
Function 73
Struct 34
Interface 5
TypeAlias 1

Languages

Go100%

Modules by API surface

v2/simulator/ssh/fxp/fxp.go34 symbols
v2/simulator/simulator.go22 symbols
v2/simulator/ssh-transfer.go13 symbols
v2/simulator/telegram-bot.go12 symbols
v2/simulator/ssh/packet.go11 symbols
v2/simulator/ssh/client.go10 symbols
v2/cmd/run/run.go9 symbols
v2/simulator/irc.go8 symbols
v2/cmd/get/get.go8 symbols
v2/simulator/tunnel-icmp.go7 symbols
v2/simulator/scan.go7 symbols
v2/simulator/cleartext-protocol.go7 symbols

For agents

$ claude mcp add flightsim \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact