红队演练训练环境
建立靶机环境与知识库
分析三十六个 Techniques 为范例,分析攻击手法后作为红队演练的训练,可以制定一套学习 Windows 的流程与进度表:
第0步:了解 Windows 历史与文件
- Windows 版本与 Windows 服务器版本
- 各版本的差异与功能不同
- 已知弱点(如 CVE )也需要注意版本
第一步:了解基本指令的操作
分析 ATT&CK® 针对 Windows 相关的 Techniques ,可以发现 APT 组织皆以 Cmd 或是 Powershell 作为攻击媒介,因此可以针对两种指令进行训练。
可以针对 ATT&CK® 所使用的指令,进行学习,作为补充指令。
Powershell :可参考 微软官方文件 。
- Get-Help Command-Name :取得帮助内容。
- Get-Command 了解目前主机安装多少 cmdlet 。
- Invoke-WebRequest :送出请求,取得网页内容。
- 尝试了解 APT 组织所使用的 PowerShell 指令
第二步:了解 Windows File System
- Logical drives :硬盘 C 槽
- 默认文件夹( PerfLogs 、 Program Files and Program Files ( x86 )、 Users )
- 默认文件(操作系统的代码)
了解这些预设文件夹的功能与预设档案的功能。
第三步:Windows 权限档案
权限主体分成 Users 跟 Group ,而可以设定的权限可以分成以下七个:
- Full control :允许用户、组设置文件夹与其他人的所有权限(修改、读取、写入、执行)。
- Modify :允许用户和群组修改、读取、写入和执行文件。
- Read & execute :允许用户和组读取和执行文件。
- List folders content :允许用户和群组列出文件夹内容,含子文件夹。
- Read :仅允许用户和群组读取档案。
- Write :允许用户和组写入指定文件夹。
- Special permissions :特殊访问权限。
使用 icacls 检查文件权限和文件夹权限 :
- I :从父容器继承的权限
- F :完全控制
- M :修改权限
- OI :对象继承
- IO :仅继承
- CI :容器继承
- RX :读取并执行
- AD :追加子文件夹
- WD :写入资料
第四步:Windows 身份验证
验证身份该用户的合法性。
- 身份验证账户:本地用户账户和系统管理员账户。
登入概念
- 认证:确认身份过程,认证 = 凭证 + 验证
- 授权:该用户可以做什么操作与可以访问什么资源。
- 凭证:身份证明:系统用户帐号和密码
验证阶段通过 Local Security Authority (本地安全性验证),管理本地安全性原则,进行验证。
- 了解 Windows 验证的原理与流程
- Windows 内建帐号与群组的关系
- net 指令的相关应用
- Windows 密码与哈希( NTLM )
第五步:Windows 内建功能
一、 Computer Management :电脑管理
- 工作调度器:可以指定特定条件自动执行定义与操作。
- 事件查看器:查看 windows Log 相关事件(成功、失败登录事件与系统错误),可以将 Log 转发到 SIEM 中确认恶意动作。
- 共享文件夹:在网络上共享可以被多个用户访问的目录或文件夹。
- 本地用户和组:可以新增用户,可以管理群组。
- 效能:监视设备的 CPU 使用率、内存使用率。
- 装置管理器:硬件管理,网络接口卡、鼠标、韧体。
- 磁盘管理:可以缩小、扩展、新增分区并格式化。
- 服务和应用程序:可以检查系统上正在执行的服务,启动、停止、重新启动。
二、Local Security Policy:本机安全性原则
三、Disk Cleanup
四、Registry Editor
Win + R + RegEdit
五、Registry Editor (Regedit)
第六步:Windows Server
了解 Windows Server 的服务器可衍生出多种功能。
第七步:Windows Log
Windows 默认路径 。 C:\Windows\System32\winevt\Logs
三种查看 Windows 事件的工具
- Event Viewer
- Wevtutil.exe
- Get-WinEvent
五种 Windows 纪录的事件
- 关闭 Windows IIS HTTP Logging 的手法
C:\Windows\System32\inetsrv\appcmd.exe set config “website_name” /section:httplogging /dontLog:true
第八步:Active Directory
了解 Active Directory 与 Azure Active Directory 的差别,以及验证方式的不同。
Active Directory
- NTLM
- LDAP / LDAPS
- KERBEROS
Azure Active Directory
- SAML (安全性声明标记语言)
- OAUTH 2.0
- OpenID 连接
第九步:恶意脚本撰写
分析 APT 组织所撰写的恶意脚本内容,并学习该程式语言以及了解恶意脚本执行方式与内容。
- PowerShell
- VBScript
- JavaScript
以上为透过分析 Techniques 初步制定红队演练的学习流程,可以再继续透过分析 Technique 了解更多攻击手法,将红队演练的知识树扩展。
参考网址
- GitHub - redcanaryco/atomic-red-team: Small and highly portable detection tests based on MITRE's ATT&CK.