首先红队是什么?红队是通过模拟真实黑客攻击目标企业,尽可能多的获取目标权限,然后整理整个模拟攻击方案和利用的弱点,从而让目标企业根据模拟入侵的结果和过程,来做针对性的防御。如果你的企业很久没有发现攻击事件,也不知道企业哪里还有弱点问题,那么就来一次模拟的红蓝对抗服务吧。
关于红队技术,已经有了一个非常完善的框架,也就是大家熟知的 ATT&CK:
是不是看不清楚?看不清就对了,有兴趣可以去官网查看:
https://attack.mitre.org/#
技术上分的很细,今天的目的是通过技术来分析作为红队成员要学习哪些基础知识,所以分析的过程主要分为两个部分,打点和内网,接下来就看看这两个部分分别需要那些基础知识。
打点的意思是,你作为攻击者,不可能直接让你来企业内部进行测试,而是在不给你任何帮助和内部信息的情况下,一切从零开始,通过自身的信息收集和漏洞发现利用,从而突破边界之后,再进行更深入的内网渗透,获取更多敏感权限。
1、在我们毫不了解目标的情况下,需要做的就是熟悉目标情况,收集目标边界资产。边界资产就是我们可以外部实施攻击的目标对象,包括不限于公开或者未公开的应用系统、边界网络设备(路由器、交换机等)、内部系统(邮件系统、vpn系统等)、内部员工(联系方式、个人基本信息等)、第三方服务公司(供应链分析)等。
这个过程需要的技术主要是信息收集,你要知道不同的信息来源在哪里,如何主动和被动收集相关信息,这个考验的不是某个技术点的研究,而是经验,经验越多,信息收集的越全,可以攻击的目标越多,成功率越大。
这里的经验,一方面是收集各个 OSINT 平台的相关信息,另一方面需要主动收集,主动收集有相关工具可用,但是数据量大的情况下,需要做数据分析,那么就需要你有响应的数据分析能力,数据分析不可能只是手工操作, 那么还需要定制脚本,需要有脚本开发的能力,来实现一些自动化的能力。
2、有了相关信息之后,需要基于这些信息制定攻击方案,不同的攻击方案所需要的技能不同,比如针对应用系统的攻击, 那么你就需要懂得不同应用系统如何发现漏洞,通用型系统历史有哪些漏洞可以利用。
常见的应用系统包括 web、app、小程序等,如何测试这些系统并发现漏洞,首先要对这些系统有一定的理解,如果自己开发过相关系统的情况下,那么这一个环节就很容易完成。
再比如针对员工的攻击尝试,在获取员工联系方式及基本信息的情况下,可以利用人的心理弱点来进行欺骗攻击,这一块做的好的非网络诈骗分子莫属,作为红队成员如果有其一层实力,那成功率就大大的了,所以这部分基础主要是钓鱼所需技术和人类心理学研究。
除了上面两部分,还有一些设备服务器,比如路由器、交换机、各类服务的攻击,那么就需要对这些设备有一定的了解,如果做过设备运维,那这部分基础就有了。
综上,攻击方案的制定和实施,需要有应用系统的开发基础、有针对人员的社工基础、有针对系统的运维基础,那么在打点方面就会有很好的基础能力了。
3、除了以上能力,因为有安全防御设备的存在,所以对抗安全防御系统也是个比较关键的技术,比如打点时发现漏洞,但是目标存在 waf,那么怎么绕过?绕 waf 首先要懂 waf,然后还得比 waf 更懂攻击,才能做到绕过 waf。
当我们已经获得了一个可以进入内网的通道,但是目标存在主机防御产品,这个时候,就需要你的工具或者远控具有免杀能力,不然你都无法在目标内网建立稳定的通道,更别说后续的内网渗透了。所以免杀能力也要具备,而免杀需要懂防病毒软件的查杀原理,然后才能绕过其查杀,稳定使用。
当我们进入内网之后,因为打点的目标不固定,有可能获取到一个 linux 系统的权限,也有可能获取到一个 windows 系统的权限,还有可能是 macos,那么面对的第一个问题就是对于系统的信息收集和后门安装,这个时候需要基础就是对操作系统的理解和使用,如果你做过 IT 人员,负责系统的维护和安装部署,那么这部分你会比较熟悉。
针对单个系统了解完之后,需要做横向扩展,那么就需要了解内网的网络拓扑,那么这个时候就需要你有网络工程师的基础,通过一些网络探测技术,了解内网的网络拓扑,从而提高横向的准确度和效率。
内网的服务器通常有不同的管理模式,比如域控集群、终端管理系统设备、零散无集中管控等情况,那么就需要对这些不同的内网有一定的了解,这些工作是内部 IT 管理人员维护,那么红队成员最好能懂这些知识,然后才好在内网活动,遇到任何环境都能得心应手。
在内网活动同样会遇到各类安全防御系统,比如 EDR、HIDS、NIDS、IPS、DLP 等,那么遇到之后如何避免检测,那么就需要对这些安全防御系统有一定的了解,然后在内部活动时,才好一一应对,最好的学习方法就是真正的做过相关产品的运维和运营,对其检测规则的方法熟悉。
综上,在内网活动时,所需基础主要是内部 IT 人员的知识,IT 人员包括网络工程师、系统工程师等,红队成员虽然不用做到比这些工程师更精通原理,但是也需要都会。
这样看下来,好像红队成员所有技术都要会,这一个人哪里能学得过来?所以现在基本上红队都是一个团队,有人擅长打点,有人擅长域渗透、有人擅长钓鱼、有人擅长开发软件、有人擅长挖漏洞、有人删除网络等等,这样一个团队,每个人都有擅长的方向,可以研究的很深,那么这个团队的战斗力是非常强的,如果一个人啥都会点,可能都研究的不太深入,有一个环节被拦住,可能这个任务就无法完成。
那么,如果你想成为红队成员,你擅长哪个方向?