红队通常指在对抗情况下需要仿真、模拟或以其他方式扮演某个、某组入侵者或理论上的假想敌。其目的是训练蓝队,蓝队由负责各种防御活动的小组或个人组成。
首先,重要的是要了解攻击的生命周期,又称网络攻击链,或简称攻击链。这个大纲定义了入侵者完成攻击所需的所有步骤。
红队通常都具备大量技能,但至今还没有一种方法能够将这些技能组织起来以便得到最大的发挥。不过,从逻辑上将各种活动分为工程和操作对我们演研究红队有一定的帮助。
工程师构建工具,操作员部署和使用工具。许多团队会专门为某个操作设置特定的,临时的操作员角色。
一个成员负责发送网络钓鱼电子邮件,而另一个成员则负责攻击目标执行红队的payload时对传入的远程访问采取行动。
红队如何在一个或多个团队成员中分配这些技能完全取决于风格、能力、培训和可用人才。因此,每名红队队员应当掌握多项技能,以灵活面对加入红队后的各项任务。
攻击性思维不是指冒犯和伤害他人的思维,而是去积极主动地克服困难的思维。
培养方式:CTF、wargames或渗透测试
PicoCTF,Hack The Box,或者寻找在本地会议上现场演示的CTF的小组。
渗透测试是在网络或主机上搜索已知漏洞的过程。在对抗过程中利用已知的漏洞发动进攻是基本技能。
扫描无需身份验证的MongoDB实例以泄露有价值的数据。
培养方式:熟悉现有的自动漏洞扫描程序,如Nessus或OpenVAS。CTF、wargames或渗透测试。
漏洞研究没有强制性要求,该技能可以用于利用第三方或内部开发的应用程序中的未知漏洞。其与渗透测试关键区别在于0-day漏洞挖掘过程非常耗时,并且从检测和响应安全事件的角度来看,可能无法有效提高蓝队的应对能力。
培养方式:阅读,实践
https://www.securitysift.com/windows-exploit-development-part-1-basics/
成功的红队关键在于其软件开发能力,顶级的红队几乎无法与标准应用产品团队区分开来。其也会采用正规的开发方法,使用版本控制和发布软件,设置路线图,使用CI/CD技术,编写测试用例等等。
因此,要了解最小可行产品(MVP)原则。要让代码运行起来,要编写相应的文档。如果它在将来成为了一个重要的工具,那么,可在将来投入更多的事件来改进它。
培养方式:计算机原理和编程语言的学习,重在实践。
基础设施的可靠性和可还原性是非常重要的特性。使用基础设施自动化和配置管理工具,不仅可以实现快速迭代,同时也能节约花费在终端上的时间。
建立和维护C2基础设施的繁琐事宜交由其他人处理。反向代理应该被配置为抵御“好事的”分析师,并且该功能应该从存储库或容器中自动部署。最后,基础设施即代码
培养方式:云计算,容器,自动化。
在基础设施的设计和实现过程中,一定要搞清楚主机和网络相关的所有细节。因为可靠性和安全性都在细节中。
培养方式:设置反向代理、防火墙、身份验证等类型操作实践。
逆向工程是分析某些对象的过程,解目标应用程序的运行方式,以便找出相应的漏洞利用代码。目的是弄清楚其工作原理,掌握其功能,了解攻击者是如何利用漏洞。
技能培养:阅读,实践
入侵者发动网络攻击时,第一步通常是发送网络钓鱼电子邮件,因此,了解人们在哪方面容易上当受骗是非常重要的。社会工程在攻击过程中的应用非常广泛,例如佯装掉在地上的USB设备,水坑攻击等。
技能培养:观察学习垃圾邮件文件夹中的网络钓鱼样本。
字面意思,物理环境的安全
技能培养:开锁,安全系统绕过技术,徽章破解(badge hacking)和诈骗游戏(confidence games)等,都是不错的训练方法。
威胁情报可以确定入侵者的动机,以及在称为入侵追踪( threat actor tracking)的过程中识别攻击者的行为模式。红队可以使用这些信息来设计对抗演习相关背景。
培养方式:查看大量关于恶意软件分析和入侵者跟踪技术的相关文章和报告。
红队需要能够预测蓝队的能力,并在工作过程中充分利用这些知识。
培养方式:搭建Security Onion,以及基于主机的监控工具,如sysmon或auditd。学会从蓝队的角度思考问题。
制定规划,编写文档。
培养方式:多看,多写,多思考。
培训自己,培训他人。
培养方式:找机会向别人介绍自己熟悉的主题,例如写博客文章,或讲解给对网络安全感兴趣的朋友。
红队的核心是积极主动。