Skip to content

Commit 66c7320

Browse files
authored
Merge pull request #49 from mrozitron/mrozitron-pre-release-fixes
update README and help; bump default ssh transfer size; goreleaser
2 parents 1775d49 + 14585d2 commit 66c7320

File tree

6 files changed

+87
-43
lines changed

6 files changed

+87
-43
lines changed

.goreleaser.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ release:
5555
footer: |
5656
## Enjoy!
5757
58-
Those were the changes on {{ .Tag }}!
59-
6058
# You can change the name of the release.
6159
# Default is `{{.Tag}}` on OSS and `{{.PrefixedTag}}` on Pro.
6260
name_template: "{{.ProjectName}}-v{{.Version}}"

README.md

Lines changed: 77 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,20 @@ teams to evaluate security controls (e.g. firewalls) and ensure that monitoring
2424
are able to detect malicious traffic.
2525
2626
Usage:
27-
flightsim <command> [arguments]
27+
flightsim <command> [arguments]
2828
29-
Available Commands:
30-
run Run all modules, or a particular module
31-
version Prints the version number
29+
Available commands:
30+
get Get a list of elements (ie. families) of a certain category (ie. c2)
31+
run Run all modules, or a particular module
32+
version Prints the version number
3233
3334
Cheatsheet:
34-
flightsim run Run all the modules
35-
flightsim run c2 Simulate C2 traffic
36-
flightsim run c2:trickbot Simulate C2 traffic for the TrickBot family
35+
flightsim run Run all the modules
36+
flightsim run c2 Simulate C2 traffic
37+
flightsim run c2:trickbot Simulate C2 traffic for the TrickBot family
38+
flightsim run ssh-transfer:1GB Simulate a 1GB SSH/SFTP file transfer
39+
40+
flightsim get families:c2 Get a list of all c2 families
3741
```
3842

3943
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.
@@ -44,7 +48,7 @@ To list the available modules, use `flightsim run --help`. To execute a particul
4448
$ flightsim run --help
4549
usage: flightsim run [flags] [modules]
4650
47-
To run all available simulators, call:
51+
To run all available modules, call:
4852
4953
flightsim run
5054
@@ -54,45 +58,82 @@ To run all available simulators, call:
5458
5559
Available modules:
5660
57-
c2, dga, miner, scan, sink, spambot, tunnel-dns, tunnel-icmp
61+
c2, dga, imposter, miner, scan, sink, spambot, ssh-exfil, ssh-transfer, tunnel-dns, tunnel-icmp
5862
5963
Available flags:
6064
-dry
61-
print actions without performing any network activity
65+
print actions without performing any network activity
6266
-fast
63-
reduce sleep intervals between simulation events
67+
reduce sleep intervals between simulation events
6468
-iface string
65-
network interface or local IP address to use
69+
network interface or local IP address to use
6670
-size int
67-
number of hosts generated for each simulator
71+
number of hosts generated for each simulator
6872
6973
$ flightsim run dga
7074
7175
AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)
72-
The IP address of the network interface is 172.20.10.2
73-
The current time is 23-Jan-20 11:33:21
74-
75-
11:33:21 [dga] Generating a list of DGA domains
76-
11:33:21 [dga] Resolving nurqatp.space
77-
11:33:22 [dga] Resolving uahscqe.top
78-
11:33:23 [dga] Resolving asimazf.biz
79-
11:33:24 [dga] Resolving phxeohj.biz
80-
11:33:25 [dga] Resolving crgwsoe.biz
81-
11:33:26 [dga] Resolving sazafls.biz
82-
11:33:27 [dga] Resolving gljyxdv.space
83-
11:33:28 [dga] Resolving eiontgl.top
84-
11:33:29 [dga] Resolving pqjseqc.top
85-
11:33:30 [dga] Resolving mamsnmu.biz
86-
11:33:31 [dga] Resolving ntettqn.top
87-
11:33:32 [dga] Resolving niyvbvg.top
88-
11:33:33 [dga] Resolving bxgqonb.biz
89-
11:33:34 [dga] Resolving encggla.top
90-
11:33:35 [dga] Resolving qphfoxn.biz
91-
11:33:35 [dga] Done (15/15)
76+
The address of the network interface for IP traffic is 192.168.220.38
77+
The address of the network interface for DNS queries is 192.168.220.38
78+
The current time is 26-Oct-21 17:28:51
79+
80+
17:28:51 [dga] Generating a list of DGA domains
81+
17:28:51 [dga] Resolving 6kauziij.com
82+
17:28:52 [dga] Resolving paxeo0jk.biz
83+
17:28:53 [dga] Resolving iuuub8al.biz
84+
17:28:54 [dga] Resolving bxsei3nj.com
85+
17:28:55 [dga] Resolving zbwltf1h.space
86+
17:28:56 [dga] Resolving yoze7avi.com
87+
17:28:57 [dga] Resolving ijax8aqw.space
88+
17:28:58 [dga] Resolving wwrjyj4l.space
89+
17:28:59 [dga] Resolving uioc5hky.com
90+
17:29:00 [dga] Resolving lcwdji5t.biz
91+
17:29:01 [dga] Resolving zluwcb4h.biz
92+
17:29:02 [dga] Resolving 8jodcvhj.space
93+
17:29:03 [dga] Resolving ju5haxur.com
94+
17:29:04 [dga] Resolving ivthu2dl.biz
95+
17:29:05 [dga] Resolving ha0bsxft.com
96+
17:29:05 [dga] Done (15/15)
9297
9398
All done! Check your SIEM for alerts using the timestamps and details above.
9499
```
95100

101+
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.
102+
103+
```
104+
$ flightsim get -h
105+
106+
AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)
107+
The current time is 26-Oct-21 17:42:23
108+
109+
usage: flightsim get [flags] element:category
110+
111+
Available elements:
112+
113+
families
114+
115+
Available categories:
116+
117+
c2
118+
119+
Available flags:
120+
```
121+
122+
To get a list of C2 families, run:
123+
124+
```
125+
$ flightsim get families:c2
126+
127+
AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)
128+
The current time is 26-Oct-21 17:43:51
129+
130+
17:43:51 [families:c2] Fetching c2 families
131+
17:44:01 [families:c2] 404 Keylogger, AB Stealer, AceRAT, Adwind, Agent Tesla, Aggah, Alien, Amadeus Stealer, Amadey, Anubis, APT29, Ares, Arkei Stealer, ARS VBS Loader, AsyncRAT, Athena, ATRAPS, Avalon, Ave Maria, AZORult, Banload, BASHLITE, BazarBackdoor, Beta Bot, BitRAT, BlackMatter, BlackNET RAT, BlackRock, Blackshades, BlackWorm RAT, Bloody Stealer, BlueBot, Bozok RAT, Buer Loader, Cafeini, CCleaner Backdoor, cerberus, Cerberus, ChaChi, Chrysaor, Citadel, Cloud Stalker, Cobalt Strike, Colibri, Collector Stealer, cookiestealer, coronastealer, Crimson RAT, CryptBot, CyberGate RAT, Cypress, Cythosia, DanaBot, DarkComet, DarkSide, Darktrack RAT, DCRat, deeprats, DiamondFox, Djvu, DoppelDridex, Dridex, Eredel, evilbear, FakeCop, Ficker Stealer, FIN7, FlawedGrace, FormBook, GachiSteal, Gaudox, Gazorp, GCleaner, Gh0st RAT, Glupteba, Godzilla Loader, Gomorrah, gomorrahstealer, Gorynych, Gozi, Grandoreiro, griffon, GuLoader, H1N1, HAFNIUM, Hancitor, Haxdoor, Hidden Tear, HorusEyes, Houdini, Hydra, IcedID, ISR Stealer, JackPOS, JSOutProx, KeyBase, Keylogger, Kimsuky, KPOT Stealer, Lemon Duck, Lilith, LimeRAT, LiteHTTP, littlethief, Loda, LokiBot, Lu0bot, Lucifer, MassLogger, Mekotio, Metamorfo, Metasploit, Mirai, MirrorBlast, Mispadu, modernloader, MooBot, Mozi, Mythic, NanoCore RAT, Netbounce, NetBus, Netfilter Rootkit, NetSupport Manager, NetWire RAT, Neutrino, Nexus, Nishang, Nixscare, njRAT, NOBELIUM, NodeJS Ransomware, NovaHTTP, Orcus RAT, Oski Stealer, Ostap, Ousaban, Ozone RAT, Parallax RAT, Parasite HTTP RAT, plague, Poison Ivy, Pony, PoshC2, Poulight Stealer, PowerShell Empire, Predator the Thief, ProjectSpy, ProRat, PsiXBot, Purple Fox, QNAPCrypt, QNodeService, Quakbot, Quasar RAT, Qudox, Raccoon Stealer, Ratty, RedLine, RedLine Stealer, Remcos RAT, RevengeRAT, REvil, Rezo, RMS, RuRAT, Ryuk, saint, Sality, SamoRAT, Saruman Stealer, SectopRAT, ServHelper, Seth HTTP Botnet, sh1zo1der, sicherheitrat, SilverFish, sliver, sLoad, Smoke Loader, SolarMarker, SOMBRAT, Squirrelwaffle, SquirrelWaffle, Stealer-DT, StealthWorker, StealthWorker Go, StormKitty, STRRAT, SupremeMiner, systembc, SystemBC, TA505, Taurus, TeamBot, Tofsee, TrickBot, TriumphLoader, Tsunami, TVRAT, uAdmin, Umbra Loader, Ursnif, vertex, VertexNet, Vidar, Vjw0rm, VKeylogger, VoidRAT, Vulturi Stealer, XOR DDoS, XpertRAT, XtremeRAT, ZeroAccess, Zeus, zgRAT, ZHacker13 ReverseTCPShell, Zloader, ztds, Zyklon
132+
17:44:01 [families:c2] Fetched 220 c2 families
133+
134+
All done!
135+
```
136+
96137
## Description of Modules
97138

98139
The modules packaged with the utility are listed in the table below.
@@ -101,9 +142,12 @@ The modules packaged with the utility are listed in the table below.
101142
| ------------- | ----------------------------------------------------------------------------- |
102143
| `c2` | Generates both DNS and IP traffic to a random list of known C2 destinations |
103144
| `dga` | Simulates DGA traffic using random labels and top-level domains |
145+
| `imposter` | Generates DNS traffic to a list of imposter domains |
104146
| `miner` | Generates Stratum mining protocol traffic to known cryptomining pools |
105147
| `scan` | Performs a port scan of random RFC 5737 addresses using common TCP ports |
106148
| `sink` | Connects to known sinkholed destinations run by security researchers |
107149
| `spambot` | Resolves and connects to random Internet SMTP servers to simulate a spam bot |
150+
| `ssh-exfil` | Simulates an SSH file transfer to a service running on a non-standard SSH port|
151+
| `ssh-transfer`| Simulates an SSH file transfer to a service running on an SSH port |
108152
| `tunnel-dns` | Generates DNS tunneling requests to \*.sandbox.alphasoc.xyz |
109153
| `tunnel-icmp` | Generates ICMP tunneling traffic to an Internet service operated by AlphaSOC |

cmd/get/get.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,15 +126,16 @@ func RunCmd(args []string) error {
126126
cmdLine := flag.NewFlagSet("get", flag.ExitOnError)
127127
// TODO: replace cols with -format (issue #45).
128128
// cols := cmdLine.Int("cols", 0, "print elements in number of columns")
129+
usageMsg := fmt.Sprintf(usage, strings.Join(supportedElements(), ", "), strings.Join(supportedCategories(), ", "))
129130
cmdLine.Usage = func() {
130-
fmt.Fprintf(cmdLine.Output(), usage, strings.Join(supportedElements(), ", "), strings.Join(supportedCategories(), ", "))
131+
fmt.Fprintf(cmdLine.Output(), usageMsg)
131132
cmdLine.PrintDefaults()
132133
}
133134
cmdLine.Parse(args)
134135
// Next arg should be element:category (ie. families:c2)
135136
toGet := cmdLine.Arg(0)
136137
if len(toGet) == 0 {
137-
return fmt.Errorf("nothing to get")
138+
return fmt.Errorf("nothing to get\n\n%v", usageMsg)
138139
}
139140
toGetArr := strings.Split(cmdLine.Arg(0), ":")
140141
if len(toGetArr) != 2 {

main.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@ Available commands:
2626
version Prints the version number
2727
2828
Cheatsheet:
29-
flightsim get families:c2 Get a list of all c2 families
3029
flightsim run Run all the modules
3130
flightsim run c2 Simulate C2 traffic
3231
flightsim run c2:trickbot Simulate C2 traffic for the TrickBot family
33-
flightsim run ssh-transfer:1MB Simulate a 1MB SSH/SFTP file transfer
32+
flightsim run ssh-transfer:1GB Simulate a 1GB SSH/SFTP file transfer
33+
34+
flightsim get families:c2 Get a list of all c2 families
3435
`
3536

3637
func main() {

simulator/ssh-exfil.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ func (s *SSHExfil) defaultTargetHosts() []string {
2727
return []string{fmt.Sprintf("ssh.sandbox-services.alphasoc.xyz:%v", ports[pos])}
2828
}
2929

30-
// defaultSendSize returns a 100 bytesize.MB default.
30+
// defaultSendSize returns a 200 bytesize.MB default.
3131
func (s *SSHExfil) defaultSendSize() bytesize.ByteSize {
32-
return 100 * bytesize.MB
32+
return 200 * bytesize.MB
3333
}
3434

3535
// Hosts sets the simulation send size, and extracts the destination hosts. A slice of

simulator/ssh-transfer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ func NewSSHTransfer() *SSHTransfer {
3030
return &SSHTransfer{}
3131
}
3232

33-
// defaultSendSize returns a 100 bytesize.MB default.
33+
// defaultSendSize returns a 200 bytesize.MB default.
3434
func (s *SSHTransfer) defaultSendSize() bytesize.ByteSize {
35-
return 100 * bytesize.MB
35+
return 200 * bytesize.MB
3636
}
3737

3838
// defualtTargetHosts returns a default string slice of targets in the {HOST:IP} form.

0 commit comments

Comments
 (0)