flightsim 是一个轻量级工具,用于生成恶意网络流量,帮助安全团队评估安全控制和网络可见性。该工具执行测试以模拟 DNS 隧道、DGA 流量、向已知活跃 C2 目的地的请求以及其他可疑流量模式。
从 GitHub Releases 页面下载适用于您操作系统的最新 flightsim 二进制文件。或者,可以在任何环境(例如 Linux、macOS、Windows)中使用 Golang 构建该工具,如下所示:
go install github.com/alphasoc/flightsim/v2@latest
安装后,按如下方式测试 flightsim:
$ flightsim --help
AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)
flightsim 是一个应用程序,用于为安全团队生成恶意网络流量,以评估安全控制措施(例如防火墙)并确保监控工具能够检测到恶意流量。
用法:
flightsim <命令> [参数]
可用命令:
get 获取某类别(如 c2)的元素列表(如家族)
run 运行所有模块或特定模块
version 打印版本号
速查表:
flightsim run 运行所有模块
flightsim run c2 模拟 C2 流量
flightsim run c2:trickbot 模拟 TrickBot 家族的 C2 流量
flightsim run ssh-transfer:1GB 模拟 1GB SSH/SFTP 文件传输
flightsim get families:c2 获取所有 C2 家族的列表
该工具运行各个模块来生成恶意流量。要执行所有可用的测试,只需使用 flightsim run,它将使用第一个可用的非环回网络接口生成流量。注意: 当运行多个模块时,flightsim 会从 AlphaSOC API 获取目标地址,因此需要出站互联网访问。
要列出可用模块,请使用 flightsim run --help。要执行特定测试,请使用 flightsim run <模块>,如下所示。
$ flightsim run --help
usage: flightsim run [flags] [modules]
要运行所有可用模块,请调用:
flightsim run
要运行特定模块:
flightsim run c2
可用模块:
c2, dga, imposter, miner, scan, sink, spambot, ssh-exfil, ssh-transfer, tunnel-dns, tunnel-icmp
可用标志:
-dry
打印操作而不执行任何网络活动
-fast
减少模拟事件之间的睡眠间隔
-iface string
要使用的网络接口或本地 IP 地址
-size int
每个模拟器生成的主机数量
$ flightsim run dga
AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)
用于 IP 流量的网络接口地址是 192.168.220.38
用于 DNS 查询的网络接口地址是 192.168.220.38
当前时间是 26-Oct-21 17:28:51
17:28:51 [dga] 生成 DGA 域名列表
17:28:51 [dga] 解析 6kauziij.com
17:28:52 [dga] 解析 paxeo0jk.biz
17:28:53 [dga] 解析 iuuub8al.biz
17:28:54 [dga] 解析 bxsei3nj.com
17:28:55 [dga] 解析 zbwltf1h.space
17:28:56 [dga] 解析 yoze7avi.com
17:28:57 [dga] 解析 ijax8aqw.space
17:28:58 [dga] 解析 wwrjyj4l.space
17:28:59 [dga] 解析 uioc5hky.com
17:29:00 [dga] 解析 lcwdji5t.biz
17:29:01 [dga] 解析 zluwcb4h.biz
17:29:02 [dga] 解析 8jodcvhj.space
17:29:03 [dga] 解析 ju5haxur.com
17:29:04 [dga] 解析 ivthu2dl.biz
17:29:05 [dga] 解析 ha0bsxft.com
17:29:05 [dga] 完成 (15/15)
全部完成!请使用上述时间戳和详细信息检查您的 SIEM 以获取告警。
该工具还有一个 get 命令,可用于查询稍后可用于模拟模块的信息。目前,可以获取 C2 家族列表以与 C2 模块一起使用。要查看如何使用 get 命令,请按如下方式运行 flightsim get -h。
$ flightsim get -h
AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)
当前时间是 26-Oct-21 17:42:23
usage: flightsim get [flags] element:category
可用元素:
families
可用类别:
c2
可用标志:
要获取 C2 家族列表,请运行:
$ flightsim get families:c2
AlphaSOC Network Flight Simulator™ (https://github.com/alphasoc/flightsim)
当前时间是 16-Nov-21 11:16:51
11:16:51 [families:c2] 正在获取 C2 家族
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] 已获取 35 个 C2 家族
全部完成!
该工具附带的模块如下表所示。
| 模块 | 描述 |
|---|
c2 | 向随机列表中的已知 C2 目的地生成 DNS 和 IP 流量 |
cleartext | 向 AlphaSOC 运营的互联网服务生成随机明文流量 |
dga | 使用随机标签和顶级域名模拟 DGA 流量 |
imposter | 向冒名域名列表生成 DNS 流量 |
irc | 连接到随机列表中的公共 IRC 服务器 |
miner | 向已知的加密货币矿池生成 Stratum 挖矿协议流量 |
oast | 模拟带外应用安全测试 (OAST) 流量 |
scan | 使用常见 TCP 端口对随机 RFC 5737 地址执行端口扫描 |
sink | 连接到安全研究人员运营的已知 sinkhole 目的地 |
spambot | 解析并连接到随机互联网 SMTP 服务器以模拟垃圾邮件机器人 |
ssh-exfil | 模拟向运行在非标准 SSH 端口的服务进行 SSH 文件传输 |
ssh-transfer | 模拟向运行在 SSH 端口的服务进行 SSH 文件传输 |
telegram-bot | 使用随机或提供的令牌生成 Telegram Bot API 流量 |
tunnel-dns | 向 *.sandbox.alphasoc.xyz 生成 DNS 隧道请求 |
tunnel-icmp | 向 AlphaSOC 运营的互联网服务生成 ICMP 隧道流量 |