入侵与攻击模拟——安全有效性验证工具(开源篇)

渗透技巧 1年前 (2023) admin
570 0 0


前言


在进行内部安全验证之前,收集并测试了一些开源的安全验证类工具,共17个工具及2个对手知识库,范围涵盖了BAS、云、端点、 WAF、流量检测和对手模拟;在收集、测试各类安全验证工具时,我们主要关注工具的以下三部分:

  • 测试用例库

  • 执行、控制

  • 数据采集、分析

最后得出此文,对工具的信息、特点、使用、优劣做个小结


BAS


Breach and Attack Simulation (BAS) 入侵和攻击模拟

简单理解:对现有防御体系的各项能力的验证

Breach and Attack Simulation(BAS)是一种模拟攻击的安全测试方法,通过对网络系统进行模拟攻击,检测系统的安全性和抵抗能力。BAS通过使用模拟攻击工具模拟真实的攻击手段,对网络系统进行攻击测试,以检测系统的安全性和抵抗能力。BAS可以帮助企业了解自己的系统是否具有足够的安全性,并提供改进建议,以防止真实的攻击造成的损失。


 一、CALDERA[非常成熟] 


https://github.com/mitre/caldera

CALDERA™ 是一个网络安全平台,旨在轻松实现对手仿真的自动化、协助手动红队和自动化事件响应。它建立在MITRE ATT&CK™ 框架之上,是 MITRE的一个活跃研究项目。


小结:更新频繁,完成度高,提供api可融合进自研平台,大部分TTPs用例基于Atomic Red Team。基于插件提供灵活的功能。不局限于模拟红队入侵,蓝队也可使用该平台模拟自动化事件响应。


1.1 基本信息

持续更新中

官网:https://caldera.mitre.org/

文档:https://caldera.readthedocs.io/en/latest/

支持python源码/docker安装


① Agent-Server架构,Agent按照Server端配置执行行动。通过插件为框架提供了能力编辑/配置文件模拟指定对手/混淆执行命令等诸多功能,可自行创建插件


② CALDERA由两个组件组成:

核心框架 其中包括一个带有 REST API 和 Web 界面的异步命令和控制 (C2) 服务器。

入侵与攻击模拟——安全有效性验证工具(开源篇)

插件 插件扩展了核心框架功能并提供了附加功能,包括agent、报告、TTP 集合等。

入侵与攻击模拟——安全有效性验证工具(开源篇)


③ 功能/插件简要介绍


CAMPAIGNS:

1. Agents:Agents是在特定时间间隔连接回 CALDERA 以获取指令的软件程序。目前有以下三种agent

Sandcat:一个 GoLang Agent,可以通过各种 C2 通道进行通信,例如 HTTP、Github GIST 或 DNS 隧道。

Manx:一个 GoLang Agent,通过 TCP 联系进行通信并充当反向 shell

Ragdoll:通过 HTML 进行通信的 Python Agent


2. 用例库Abilities:Ability是一种特定的 ATT&CK 策略/技术实现,可以在运行的Agent上执行。Ability包括要运行的命令、适应的平台/执行器(Windows/PowerShell)、要包含的有效负载以及对模块的引用以解析 CALDERA 服务器上的输出。可以自建Ability。内置的Ability来自多个源,包括Atomic Red Team等。

入侵与攻击模拟——安全有效性验证工具(开源篇)

3. Adversaries:Adversaries对手配置文件是一组Abilities,代表威胁参与者可用的战术、技术和程序 (TTP)。在运行操作时使用对手配置文件来确定将执行哪些能力。可以理解为模拟特定目标的剧本,内置了多个场景的剧本。

入侵与攻击模拟——安全有效性验证工具(开源篇)

4. Operations:控制在Agent上运行Adversaries。Adversaries用于确定将运行哪些能力,Agent组用于确定将在哪些Agent上运行这些能力。

入侵与攻击模拟——安全有效性验证工具(开源篇)

PLUGINS:

Access (红队获取初始权限工具与技巧)

Atomic (Atomic Red Team 项目的 TTPs)

Compass (ATT&CK 可视化)

Debrief (活动分析,针对Operations生成分析报告)

入侵与攻击模拟——安全有效性验证工具(开源篇)

Fieldmanual (文档)

Manx (shell 功能和反向 shell 负载)

Sandcat (默认 agent)

Stockpile (技术资料库)

Training (引导用户了解 CALDERA 的大部分功能)


CONFIGURATION:

Fact Sources:Facts是可识别的数据片段,由agents收集或在服务器启动时加载。source是事实的集合。Rules是确保不能使用特定特征的界限。


Objectives:Objectives是adversary要完成的一组目标


Planners:Planners是一个模块,它包含一个运行中的operation应该如何决定使用哪些abilities和以什么顺序进行的逻辑。具体来说,一个Planner的逻辑包含了执行一个operation的单一阶段的决策。


Contacts:Contacts是agents的接触点。Contacts是服务器上的一个连接点,agents可以通过它进行交流。agents可以根据一个(或多个)Contacts自定义编写。每个Contacts都会记录所有agents的连接 – 以及它发出的所有命令。可以下载任何Contacts的报告。


Obfuscators:混淆器是为规避而设计的。当运行一个操作时,你可以选择一个混淆器。默认情况下,选择纯文本。在操作过程中,在agents收集指令之前,服务器将用所选择的混淆技术包装它–包括在执行前如何解包的说明。


Configuration:一些基础配置的修改


Exfilled Files:Exfilled文件在操作过程中从主机上的agents上传到服务器上,默认存储在服务器上的/tmp/caldera。如果一个操作有exfilled文件,你可以在这里查看和下载这些文件。


1.2 典型用例

CALDERA 作为网络安全框架,可以通过多种方式使用。对于大多数用户,它将用于运行进攻(红色)或防御(蓝色)操作。


? 自主红队参与

这是最基础的 CALDERA 用例。可以使用该框架来构建特定的威胁(对手)配置文件并在网络中启动它以查看您可能在哪里受到影响。这有利于测试防御和培训蓝队如何检测威胁。


步骤包含登录、部署agent、选择对手adversary和执行operation:

1. 以配置文件中red用户组的用户身份登录平台,默认red/admin或者admin/admin

入侵与攻击模拟——安全有效性验证工具(开源篇)

2. 部署agent

跳到CAMPAIGNS-Agents页面,点击Deploy an agent,选择符合目标环境的agent

入侵与攻击模拟——安全有效性验证工具(开源篇)

检查 app.contact.http 的值是否与 CALDERA 服务正在侦听的主机和端口相匹配。然后在受害机器上运行生成的命令。注意,某些功能需要高权限,这将需要将agent部署在高权限的 shell 中。确保新agent出现在Agents页面的表格中

入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)

3. 选择模拟的对手adversary

跳到CAMPAIGNS-Adversaries页面,从下拉列表中选择一个对手并查看能力,以Discovery为例,会列出模拟该对手会执行的行为

入侵与攻击模拟——安全有效性验证工具(开源篇)

4. 执行operation

跳到CAMPAIGNS-Operations页面,点击Create Operation,设置该次operation名字和要模拟的对手adversary后点击start

入侵与攻击模拟——安全有效性验证工具(开源篇)

5. 检查执行的operation

当执行operation时,能力abilities将在部署的agent上执行。可以查看执行的命令和输出

入侵与攻击模拟——安全有效性验证工具(开源篇)

6. 导出operation结果

operation执行完后,可以通过单击Operations页面的”Download”按钮以 JSON 格式导出报告或事件日志。operation完成后,事件日志也会自动写入磁盘。有关各种导出格式和自动/手动事件日志生成的更多信息,可以参阅Operation结果页面[https://caldera.readthedocs.io/en/latest/Operation-Results.html]

入侵与攻击模拟——安全有效性验证工具(开源篇)

7. 后续扩展

使用不同的adversary配置文件运行operation

创建自定义的abilities和adversary

使用不同的Planners运行operation(例如batch)

根据Debrief报告和operation结果评估、调整蓝队的现有安全能力


?自主事件响应[蓝队]

CALDERA 可用于通过部署的agent执行自动化事件响应。这有助于识别其他安全工具可能看不到或无法阻止的 TTP。


步骤包含登录 CALDERA blue、部署blue agent、选择defender和运行operation:

1. 以配置文件中blue用户组的用户身份登录平台,默认blue/admin

2. 部署blue agent 与部署red agent操作一样

入侵与攻击模拟——安全有效性验证工具(开源篇)

3. 选择defender配置文件

跳到CAMPAIGNS-defenders页面,从下拉列表中选择一个profile并查看能力,以事件响应者Incident responder为例

入侵与攻击模拟——安全有效性验证工具(开源篇)

4. 选择一个事实来源Fact Sources。Defender 配置文件利用事实来源来确定给定主机上的好与坏。

跳到CONFIGURATION-Fact Sources页面,选择一个事实来源,以response为例

入侵与攻击模拟——安全有效性验证工具(开源篇)

5. 执行operation

跳到CAMPAIGNS-Operations页面,点击Create Operation,选择之前选择的Defender配置文件和Fact Sources后点击Start

入侵与攻击模拟——安全有效性验证工具(开源篇)

6. 检查执行的operation

当执行operation时,能力abilities将在部署的agent上循环执行。可以查看执行的命令和输出

考虑手动运行命令(或使用red automated adversary),将触发事件响应操作(例如在未经授权的端口上启动服务)

以Incident responder和response配置的operation为例,agent会模拟事件响应者循环执行一系列应急响应操作,包括检查7011端口的进程并终止。如下为执行operation后,我们手动在7011端口起一个http服务,被agent发现并终止

入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)

7. 导出operation结果

与red operation导出操作一样


? 手动红队参与

CALDERA 可使用 Manx agent执行手动红队评估。有利于在手动评估中替换或附加现有的攻击性工具集,因为该框架可以使用您可能拥有的任何自定义工具进行扩展。


步骤包含登录、部署 Manx agent和手动运行命令:

1. red/admin登录

2. 部署 Manx agent

入侵与攻击模拟——安全有效性验证工具(开源篇)

3. 手动运行命令

跳到PLUGINS-Manx页面,在终端窗口有内手动运行命令

入侵与攻击模拟——安全有效性验证工具(开源篇)


 二、Infection Monkey1.13[勒索模拟] 


https://github.com/guardicore/monkey

Infection Monkey是一种开源安全工具,用于测试数据中心对外围入侵和内部服务器感染的弹性。Monkey 用各种方法在数据中心自我传播并向 Monkey Island 命令和控制服务器报告。


小结:更新速度一般,完成度高,安装简易,可快速进行一次勒索软件行为模拟测试,可输出报告,提供api。但日志记录和内置的ttp用例有限


注意:2023.2发布的v2.0版本与本文所述v1.13版本存在差异,可对比体验,新版将重点从漏洞扫描和入侵与攻击模拟转向了对手仿真


2.1 基本信息

持续更新中

官网:https://www.akamai.com/zh/infectionmonkey

文档:https://techdocs.akamai.com/infection-monkey/docs


①下载安装,支持容器、公共云和私有云,win/docker/lin/aws/azure

https://github.com/guardicore/monkey/releases

https://techdocs.akamai.com/infection-monkey/docs/setting-up-infection-monkey


②agent执行的测试用例脚本库:https://github.com/guardicore/monkey/tree/develop/monkey/infection_monkey


③ 架构:Agent+Server

Monkey Agent(简称Monkey)——一种安全的、类似蠕虫的二进制程序,可以在本地网络上扫描、传播和模拟攻击技术。


Monkey Island Server(简称Island)——一个为用户提供GUI并与Monkey Agents交互的C&C web服务器。


用户可以在 Island 服务器机器上运行 Monkey Agent 或在网络上手动分发 Monkey Agent 二进制文件。Monkey Agents 根据配置参数在本地网络上扫描、传播和模拟攻击者的行为。所有有关网络的信息都汇总在 Island Server 中,并在所有 Monkey Agent 完成后显示。

入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)


2.2 快速使用

在Configuration设置好agent的执行设置,如果仅本机测试不扫描利用网段内其他主机,可以在Network中关闭Local network scan

入侵与攻击模拟——安全有效性验证工具(开源篇)

在Run Monkey选择部署agent方式,以Manual为例,会提供一键复制执行上线agent的命令。在测试机执行上线命令

入侵与攻击模拟——安全有效性验证工具(开源篇)

在Infection Map观察agent的活动情况

入侵与攻击模拟——安全有效性验证工具(开源篇)

在Security Reports查看该次活动结果

入侵与攻击模拟——安全有效性验证工具(开源篇)

运行 Monkey Agent 的结果:

1. Infection Map:显示攻击者可以看到多少网络、可以访问哪些服务以及潜在的传播路径。

入侵与攻击模拟——安全有效性验证工具(开源篇)


2. Security Report:显示 Monkey Agents 发现和利用的安全问题的安全报告。

入侵与攻击模拟——安全有效性验证工具(开源篇)

3. Zero Trust Report:显示 Monkey Agent 发现的违反零信任原则的报告。

入侵与攻击模拟——安全有效性验证工具(开源篇)

4. ATT&CK Report:MITRE ATT&CK 报告,显示有关 Monkey Agent 尝试使用的 ATT&CK 技术的信息。点开ttp方块可以查看ttp执行详情

入侵与攻击模拟——安全有效性验证工具(开源篇)

5. Ransomware Report:该处显示agent模拟勒索软件执行的突破/横向/加密行为情况

入侵与攻击模拟——安全有效性验证工具(开源篇)

Configuration

ATT&CK:决定agent执行哪些TTPs

Exploits:决定agent在横向对其他主机利用漏洞时执行哪些exp、密码枚举使用的字典等

Network:决定agent在网络中的活动范围

Ransomware:决定agent在主机上模拟勒索软件加密的文件路径

Monkey:决定agent在主机上具体执行的后渗透行为,包括执行指定命令、上传文件、信息收集、持续扫描等

Internal:其他设置,包括决定agent扫描的端口、限制扫描/利用的最大主机数量等


日志

server端提供了主日志,同时agent端会在机器上存储一份agent日志,可在Configuration中指定路径

入侵与攻击模拟——安全有效性验证工具(开源篇)


优缺点

有生成好的报告

模拟勒索软件行为较真实

可根据文档自行添加测试用例


部分测试没有写明执行的详细操作,只说了做了什么

日志记录还不够详细

存在执行了部分行为但没有显示在ttp中的情况,如执行mimikatz收集信息,日志中却有记录

虽然官方强调所使用exp为安全的,但考虑到exp的可能影响,不适合线上生产环境测试

完成度较高,安装方便,配置简单,能快速进行一次测试


 三、Atomic Red Team[用例库] 


https://github.com/redcanaryco/atomic-red-team

Atomic Red Team™ 是一个映射到 MITRE ATT&CK®框架的测试用例库。安全团队可以使用 Atomic Red Team 快速、可移植且可重复地测试他们的环境。


小结:依靠社区,更新频繁,可作为测试用例库融合进自研平台


3.1 基本信息

持续更新中

文档:https://github.com/redcanaryco/atomic-red-team/wiki/



① 测试用例索引:

https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/Indexes/Indexes-Markdown/index.md;https://atomicredteam.io/atomics/ ;https://atomicredteam.io/tags/


② 测试用例库yaml:

https://github.com/redcanaryco/atomic-red-team/tree/master/atomics


3.2 快速使用

①可以直接从命令行执行测试用例,参考https://github.com/redcanaryco/atomic-red-team/wiki/Getting-Started,每个ttp提供了安装依赖/执行测试/清理还原的命令行用例

入侵与攻击模拟——安全有效性验证工具(开源篇)


以T1087.001 – Account Discovery: Local Account[https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1087.001/T1087.001.md]为例:

入侵与攻击模拟——安全有效性验证工具(开源篇)

②也可以使用Invoke-AtomicRedTeam、ARTi-c2这类基于Atomic Red Team的执行框架执行测试用例


 四、Invoke-AtomicRedTeam[基于Atomic Red Team的ps1模块] 


https://github.com/redcanaryco/invoke-atomicredteam

Invoke-AtomicRedTeam 是一个 PowerShell 模块,用于执行Red Canary 的 Atomic Red Team 项目的atomics 文件夹中定义的测试用例。建议为atomics测试执行设置一台测试机器,该测试机器与您的环境中的构建类似。确保您已准备好收集/EDR 解决方案,并且端点正在签入并处于活动状态。


4.1 基本信息

①文档:https://github.com/redcanaryco/invoke-atomicredteam/wiki

② 使用条件:需要 PowerShell Core:

https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux?view=powershell-7.3

③ 安装执行框架和atomic文件夹并导入模块:


pwsh

IEX(IWR ‘https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1’ -UseBasicParsing);

Install-AtomicRedTeam -getAtomics

Import-Module “/root/AtomicRedTeam/invoke-atomicredteam/Invoke-AtomicRedTeam.psd1” -Force

Get-Module


4.2 快速使用

列出用例:https://github.com/redcanaryco/invoke-atomicredteam/wiki/List-Atomic-Tests

入侵与攻击模拟——安全有效性验证工具(开源篇)

执行测试:可本地或远程

https://github.com/redcanaryco/invoke-atomicredteam/wiki/Execute-Atomic-Tests-(Local)

https://github.com/redcanaryco/invoke-atomicredteam/wiki/Execute-Atomic-Tests-(Remote)

入侵与攻击模拟——安全有效性验证工具(开源篇)

清理还原:https://github.com/redcanaryco/invoke-atomicredteam/wiki/Cleanup-After-Executing-Atomic-Tests

入侵与攻击模拟——安全有效性验证工具(开源篇)

操作日志:https://github.com/redcanaryco/invoke-atomicredteam/wiki/Execution-Logging

入侵与攻击模拟——安全有效性验证工具(开源篇)


 五、ARTi-c2[基于Atomic Red Team的c2] 


https://github.com/blackbotsecurity/Atomic-Red-Team-Intelligence-C2

安装失败,但看issue有人能跑起来,建议自行体验


 六、Purple Team ATT&CK™ Automation[msf实现ttp] 


https://github.com/praetorian-inc/purple-team-attack-automation

以msf的模块形式实现ttp

基于msf实现ttp测试,模块可直接导入msf使用但是需要msf5,win环境的模块较多,总体数量较少


6.1 基本信息

已停止更新,最后更新时间2020

文档:https://github.com/praetorian-inc/purple-team-attack-automation/wiki

模块对应ttp索引:https://github.com/praetorian-inc/purple-team-attack-automation/wiki/Available-Modules

模块索引:https://github.com/praetorian-inc/purple-team-attack-automation/wiki/Additions-and-Changes#modules


 七、Metta[老] 


https://github.com/uber-common/metta

Uber出品。Metta 是一种信息安全准备工具。该项目使用 Redis/Celery、python 和 vagrant 以及 virtualbox 来进行对抗模拟。这允许您测试(大部分)基于主机的仪器,但也可以允许您测试任何基于网络的检测和控制,具体取决于您如何设置vagrants。该项目解析带有动作的 yaml 文件,并使用 celery 将这些动作排队,一次运行一个,无需交互。

已停止更新,最后更新2018年,安装失败

yml格式测试用例:https://github.com/uber-common/metta/tree/master/MITRE

入侵与攻击模拟——安全有效性验证工具(开源篇)


 八、RTA[老] 


https://github.com/endgameinc/RTA

RTA提供了一套脚本框架,旨在让蓝队针对恶意行为测试其检测能力,该框架是基于MITRE ATT&CK模型设计的。RTA由Python脚本组成,可以生成50多种不同的ATT&CK战术证据,以及一个编译的二进制应用程序,根据需要执行文件时间停止、进程注入和信标模拟等活动。在可能的情况下,RTA 尝试执行所描述的实际恶意活动。在其他情况下,RTAs 将模拟所有或部分活动。例如,某些横向移动默认会针对本地主机(尽管参数通常允许进行多主机测试)。在其他情况下,可执行文件(如 cmd.exe 或 python.exe)将被重命名,使其看起来像是 Windows 二进制文件正在执行非标准活动。


8.1 基本信息

已停止更新,最后更新时间2018

仅支持python2;一个ttp对应一个python脚本;win环境为主

ttp列表:

https://github.com/endgameinc/RTA/tree/master/red_ttp


8.2 快速使用

以https://github.com/endgameinc/RTA/blob/master/red_ttp/net_user_add.py为例,部分脚本有清理还原操作,且需要下载依赖至/bin

入侵与攻击模拟——安全有效性验证工具(开源篇)

https://github.com/endgameinc/RTA/blob/master/red_ttp/smb_connection.py,部分脚本需要提供参数

入侵与攻击模拟——安全有效性验证工具(开源篇)



验证组织对云环境的安全能力


 一、Stratus Red Team[aws] 


https://github.com/DataDog/stratus-red-team

在云环境中模拟映射ATT&CK的攻击技术


1.1 基本信息

更新频繁

文档:https://stratus-red-team.cloud

ttp列表:

https://stratus-red-team.cloud/attack-techniques/list/,部分ttp提供了sigma检测规则

测试用例库:

https://github.com/sbasu7241/AWS-Threat-Simulation-and-Detection/、https://github.com/DataDog/stratus-red-team/tree/main/v2/internal/attacktechniques

条件:需要aws keyID/secrect

本质是基于aws keyID+keysecrect+region调用aws的api执行相关行为


1.2 快速使用

类似Atomic Red Team,提供了 安装依赖->执行测试->清理还原->清理依赖

以Download EC2 Instance User Data为例:https://stratus-red-team.cloud/attack-techniques/AWS/aws.discovery.ec2-download-user-data/

入侵与攻击模拟——安全有效性验证工具(开源篇)

Associated Sigma rule:

https://github.com/SigmaHQ/sigma/blob/master/rules/cloud/aws/aws_ec2_download_userdata.yml


 二、AWS-Attack 


https://github.com/blackbotsecurity/AWS-Attack

AWSATT&CK 是 Rhino 安全实验室的开源 AWS 利用框架 Pacu 的修改版本,它将 MITRE ATT&CK 上下文添加到 Pacu 策略和额外的日志记录功能。SOC、AWS 安全工程师、DevSecOps、团队需要评估针对有针对性的 AWS 攻击的 AWS 工作负载保护并将结果映射到 MITRE ATT&CK

文档:https://github.com/RhinoSecurityLabs/pacu/wiki


端点检测和响应


 一、Chain Reactor[无用例库] 


https://github.com/redcanaryco/chain-reactor

Chain Reactor是一款用于测试Linux机器上检测和响应覆盖范围的开源工具,用于组合可执行文件,在Linux端点上模拟对手的行为和技术。该工具生成可执行文件,模拟诸如进程创建和网络连接等操作序列。Chain Reactor不需要先前的工程经验;该工具使用JSON,因此定制其行为就像编辑文件一样简单。


1.1 基本信息

文档:https://github.com/redcanaryco/chain-reactor/wiki/

按照规则编写剧本,工具按照剧本生成可执行文件,生成的可执行文件会按照剧本执行动作

项目未提供写好的剧本,需要自己按需求写


1.2 快速使用

以https://github.com/redcanaryco/chain-reactor/wiki/Getting-started为例

编写好Reaction/files-Atom/files-quake三个文件

入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)

检查终结点安全产品是否为所有四个夸克生成了遥测数据。您的安全产品是否检测到隐藏二进制文件的执行?使用此信息来评估和改进检测。


WAF


验证WAF的安全能力


 一、Gotestwaf 


https://github.com/wallarm/gotestwaf

GoTestWAF是一款API和OWASP攻击模拟工具,支持广泛的API协议,包括REST、GraphQL、gRPC、WebSockets、SOAP、XMLRPC等。旨在评估Web应用程序安全解决方案,如API安全代理、Web应用程序防火墙、IPS、API网关等。


1.1 基本信息

持续更新

自带测试用例:

https://github.com/wallarm/gotestwaf/tree/master/testcases

Go写的工具,提供docker安装

工具提供测试数据统计报告

入侵与攻击模拟——安全有效性验证工具(开源篇)


1.2 快速使用

使用前关闭WAF的ban模式

docker pull wallarm/gotestwaf

docker run –network=”host” –rm -it -v ${PWD}/reports:/app/reports

    wallarm/gotestwaf –url=http://127.0.0.1:8080 –skipWAFBlockCheck

docker run –rm -it -v ${PWD}/reports:/app/reports

    wallarm/gotestwaf –url=http://testphp.vulnweb.com –skipWAFBlockCheck

入侵与攻击模拟——安全有效性验证工具(开源篇)
入侵与攻击模拟——安全有效性验证工具(开源篇)


 二、waf-bypass 


https://github.com/nemesida-waf/waf-bypass

Nemesida WAF 团队的 WAF Bypass (nemesida-waf.com) 是一个开源工具 (Python3),用于使用预定义的有效负载(如果需要,可以更改有效负载集)检查任何 WAF 的误报/漏报数


2.1 基本信息

持续更新

自带测试用例:https://github.com/nemesida-waf/waf-bypass/tree/master/payload

工具提供测试数据统计


2.2 快速使用

使用前关闭WAF的ban模式

docker pull nemesida/waf-bypass

docker run nemesida/waf-bypass –host=’example.com’

docker run nemesida/waf-bypass –host=’example.com’ –proxy=’http://proxy.example.com:3128′

入侵与攻击模拟——安全有效性验证工具(开源篇)


 三、go-ftw 


https://github.com/coreruleset/go-ftw

WAF测试框架ftw的go版本。该项目由ModSecurity和Fastly的研究人员创建,旨在为WAF规则提供严格的测试。它使用OWASP Core Ruleset V3作为基线来测试WAF上的规则。从规则集中加载每个规则到一个YAML文件中,该文件发出HTTP请求以触发这些规则。用户可以在测试后验证规则的执行情况,以确保攻击得到了预期响应。


3.1 基本信息

持续更新

go-ftw有两种测试模式:default或者cloud。default模式,需要读取解析nginx或apache日志,判断测试结果;cloud模式,仅根据返回包状态码判断测试结果

使用CRS规则集作为测试用例:

https://github.com/coreruleset/coreruleset/tree/v4.0/dev/tests/regression/tests

入侵与攻击模拟——安全有效性验证工具(开源篇)


3.2 快速使用

以cloud模式为例

go install github.com/coreruleset/go-ftw@latest

git clone https://github.com/coreruleset/coreruleset.git

cd coreruleset/

touch .ftw.yaml

go-ftw run –cloud -d test/ 

.ftw.yaml

logfile:

logmarkerheadername:

mode: “cloud”

testoverride:

  input:

    dest_addr: “testphp.vulnweb.com”

    port: 80

    protocol: “http”

入侵与攻击模拟——安全有效性验证工具(开源篇)


 四、Wafbench 


https://github.com/microsoft/wafbench

WAF Bench一个类似ab的工具,可以在一次调用中发送多个完全自定义的数据包,接受基于 YAML 的输入,可以自定义数据包并轻松复制多个不同的数据包。


4.1 基本信息

通过 Dockerfile(推荐)、本机安装

提供4个组件(运行方式),彼此相互独立

入侵与攻击模拟——安全有效性验证工具(开源篇)

① WAF Bench (wb) 是用于进行性能测试的类似 ab 的工具。

文档:https://github.com/microsoft/WAFBench/tree/master/wb

使用:

# 进行正常的 ab 样测试

    docker run -ti –rm wafbench wb -t 10 testphp.vulnweb.com

# WAF 性能测试

    docker run -ti –rm wafbench wb -t 10 -c 20 -f ../example/WB-GET.sh testphp.vulnweb.com

入侵与攻击模拟——安全有效性验证工具(开源篇)

② Python WAF Bench (pywb) 是 wb 的增强工具。使用更友好,开发更容易。

增强选项(相比于wb)

-F 支持 *.yaml 和 *.pkt 以及包含这些类型文件的目录。同时,可以多次设置-F,一次发送多个保存在不同文件中的数据包。

-u 和 -p 会自动识别其ext要发送的文件类型,并修改Content-Type。这些选项几乎支持 MIME 提到的所有类型。


③ FTW-Compatible Tool (FTW 兼容工具)是WAFBench的一个组件,它支持FTW格式的YAML用于WAF正确性测试。作为FTW,它使用 OWASP 核心规则集V3作为基准。

文档:https://github.com/microsoft/WAFBench/tree/master/ftw_compatible_tool

用例库:https://github.com/microsoft/WAFBench/tree/master/util/regression-test


# crs-v3.1的黑盒回归测试

docker run -ti –rm -v `pwd`:/data –rm wafbench ftw_compatible_tool -d /data/regression.db -x “load util/regression-test/crs-v3.1/black-box/ | gen | start hostname:port| report | exit”


FTW-compatible-tool包括7个步骤。

1. 在SecRule的头部添加此规则(可选,用于白盒测试)。

2. 导入测试用例,如果数据库已经导入了一些测试用例,旧的测试用例不会被覆盖。

3. 生成.pkt文件,你可以通过SQL脚本指定你要测试的测试案例(默认为 “SELECT traffic_id, request FROM Traffic ORDER BY test_title;”)。

4. 开始测试,向服务器发送请求

5. 导入服务器日志,复制或挂载服务器日志到本地。(可选,用于白盒测试)

6. 报告测试结果

7. 退出程序

入侵与攻击模拟——安全有效性验证工具(开源篇)

④ Auto-Test Generator是一个自动测试生成器,通过 ModSecurity 规则集自动生成请求以测试 WAF 的覆盖率,如从真实流量日志或WAF 规则集中生成 YAML 文件。目前仍在开发中。


流量检测


生成可疑流量,验证IDS等网络层面的安全能力


 一、flightsim 

https://github.com/alphasoc/flightsim

flightsim 是一种轻量级实用程序,用于生成恶意网络流量并帮助安全团队评估安全控制和网络可见性。该工具执行测试以模拟 DNS 隧道、DGA 流量、对已知活动 C2 目的地的请求以及其他可疑流量模式。


1.1 基本信息

持续更新

生成流量类型按模块分类,已有模块如下。部分模块使用AlphaSOC API 收集目标地址,因此需要访问互联网

入侵与攻击模拟——安全有效性验证工具(开源篇)


1.2 快速使用

go install -v github.com/alphasoc/flightsim@latest

测试所有模块:flightsim run

列出可用模块:flightsim run -h

测试指定模块:flightsim run

以c2-dns模块为例:flightsim run c2-dns ,从AlphaSOC获取C2域名并随机做dns解析

入侵与攻击模拟——安全有效性验证工具(开源篇)


 二、Egress-Assess 

https://github.com/FortyNorthSecurity/Egress-Assess

Egress-Assess是一个用来测试数据渗漏行为检测能力的工具。典型用例是在两个位置复制此工具。一个位置充当服务器,另一个充当客户端。Egress-Assess会通过多种协议尝试将数据从客户端发送到服务端,传递的数据可选虚假的信用卡、身份信息、保险号码、ssn码


2.1 基本信息

持续更新

目前支持

FTP/SMTP/SMTP_Outlook/ICMP/HTTP(S)/SMB/DNS_TXT/DNS_Resolved


2.2 快速使用

git clone https://github.com/FortyNorthSecurity/Egress-Assess.git

python3 -m pip install -r requirements.txt

openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes


#以FTP为例

Server:python3 Egress-Assess.py –server ftp –username test –password 123 –server-port 64451

Client:python3 Egress-Assess.py –client ftp –username test –password 123 –ip {ip} –client-port 64451 –datatype identity

入侵与攻击模拟——安全有效性验证工具(开源篇)


对手模拟库


根据仿真库,通过CALDERA的Adversaries配置可以模拟特定对手的攻击行为


 一、community-threats 


https://github.com/scythe-io/community-threats

对手威胁模拟平台SCYTHE管理的社区项目

一个与整个社区共享用于测试人员、流程和技术的攻击链的地方。最大的对手模拟和对手模拟计划公共图书馆!支持在 markdown 、SCYTHE JSON 和 MITRE ATT&CK Navigator JSON 中共享威胁。


持续更新


 二、adversary_emulation_library 


https://github.com/center-for-threat-informed-defense/adversary_emulation_library

一个开放的对手模拟计划库,旨在使组织能够根据真实世界的 TTP 测试他们的防御。

该库包含两种类型的对手仿真计划:完全仿真和微仿真。


完整的模拟计划是模拟特定对手的综合方法,例如

FIN6[https://github.com/center-for-threat-informed-defense/adversary_emulation_library/tree/master/fin6] ,从初始访问到渗出。这些计划模拟了广泛的 ATT&CK 战术和技术,旨在模拟来自指定对手的真正突破。


微仿真计划是一种集中的方法,用于模拟在多个对手中看到的复合行为,例如

webshell[https://github.com/center-for-threat-informed-defense/adversary_emulation_library/tree/master/micro_emulation_plans/src/webshell]。这些计划模拟了少量 ATT&CK 技术,这些技术通常作为一次敌方行动的一部分执行。


| 持续更新


原文始发于微信公众号(货拉拉安全应急响应中心):入侵与攻击模拟——安全有效性验证工具(开源篇)

版权声明:admin 发表于 2023年4月6日 下午2:31。
转载请注明:入侵与攻击模拟——安全有效性验证工具(开源篇) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...