红蓝对抗是最近很火的一个词,也是非常多小伙伴想要学习的技术方向,那么什么是红蓝对抗,如何学习?
其实很好理解,就是通过攻防的方式来检验企业是否安全,通过对抗的方式来找出安全的弱点,针对弱点进行防御建设,通过不断优化这个流程,让企业的安全状况越来越好。
这篇文章主要以老外整理的框架 ATT&CK 来看,我们如何学习红蓝对抗的技术,怎么提升自身的技术能力,更好的提升整体的安全能力。
ATT&CK 各个阶段(攻击)
突破边界
任何一个企业,敏感数据和核心资产都是存在于内部的,所以作为攻击方,想要获得最大的影响力就需要进入到企业内部,并且通过一系列的操作拿到公司的核心资产,这是攻击者最终的目标。
进入内部是我们的第一步,在这个阶段,我们可以通过两种不同的方式进行攻击,分别为:主动攻击、被动攻击。
主动攻击,我这里的理解就是不需要内部人员的配合,通过边界的应用程序或者服务的弱口令进入内网,这个过程中是没有企业内部人员参与的,而且成功与否取决于企业边界的安全防御能力和攻击者自身的能力和运气。
而被动攻击,就是需要内部员工的配合,这个过程是有内部人员参与的,比如钓鱼邮件、挂马、水坑、供应链等攻击方式,需要内部员工点击构造好的恶意页面,或者更新恶意的应用程序,或者攻击者通过社工欺骗的方式让内部员工安装有问题的软件,从而为攻击者提供一个可以进入内部的通道或者临时工作点。
这里涉及的技术点包括:
1、挂马:通过给大量的网站或者受害者经常访问的网站插入恶意的脚本,在受害者使用浏览器正常访问该网站时,截取用户的凭证、执行恶意脚本,可能需要依靠浏览器自身的漏洞或者用户无意识的输入自己的账号密码。
2、应用漏洞:这个最常见,也是大家接触最多的,比如 web 漏洞,通过这些漏洞获取服务器权限,如果服务器在内部网络,那么我们就很幸运的进入内网了,但是如今大多数的 web 服务器都放在了云上,通过这种方式进入内网的可能性相对会比较小。还有其他的一些漏洞,比如:Windows 协议的 ms17010、ms08067,或者其他应用或者服务的漏洞。
3、远程服务:为了远程工作方便,很多企业都会设置一些可以通过账号口令认证即可进入内部的方式,比如:V**、远程桌面等,我们需要做的就是要获取这些方式中使用的账号口令,这些口令可以主动去网络上收集,比如 github 等源代码分享平台,也可能从一些公开分享的网盘或者文件服务器上找到一些无意泄露的账号口令。还可以通过钓鱼的方式被动获取口令,还有暴力破解等方式。
4、硬件传播:提前给一些硬件做手脚,在将硬件插入设备时,释放恶意文件,达到获取权限的效果,成本和难度都比较高。
5、鱼叉式附件:发送钓鱼邮件或者消息,将捆绑恶意代码的应用或者文件发送给受害者,在受害者打开或者运行文件时,释放并运行恶意代码,从而达到获取权限的目的。
6、鱼叉式链接:这个攻击的难度在于链接背后的功能,比如:获取凭证、执行恶意脚本(依赖浏览器的漏洞)等。
7、社会工程:通过其他的服务媒体,与企业员工建立关系,从侧面了解公司的情况以及个人设备的情况,比如常用软件、版本信息,这样有了一定的信息基础之后,进行有针对性的攻击尝试。
8、供应链攻击:这个方式需要借助于先攻击了一些其他的公共软件提供商,然后将正常的软件捆绑恶意代码或者通过修改源代码的方式增加后门,也可以直接提供存在恶意代码的公共组件,大家为了方便,直接使用该组件进行编码或者执行,从而实现入侵。
9、第三方攻击:企业不是闭关锁国的,会存在大量的合作商,比如外包、子公司、外部支持等,这些人虽然不会一直在企业内部,但是存在业务往来,对于企业内部也是有部分访问权限的,通过获取第三方的权限,从而实现进入企业的目的。
10、有效账号:这里的账号主要包括一些系统的默认账号、域账号,账号的获取可以结合钓鱼和暴力猜解等方式,账号的使用需要依赖外部是否存在可以远程访问的服务,比如:V**、windows 3389,Linux ssh 等。。
如何学习这些技术
1、信息收集,收集目标公司的员工的联系方式、边界资产信息、公司的地理位置、目标公司的合作伙伴等
2、钓鱼挂马要解决的是如何匿名发邮件、如何与目标公司员工交流取得信任,涉及心理学的问题
3、技术方面,如何设计钓鱼邮件内容、如何设计钓鱼网站、历史浏览器 Nday 如何利用、如何给附件增加恶意代码(office 宏,绑马,快捷方式等)
4、应用安全,web 安全,各种 Nday 的利用,知道主流的应用有哪些,存在哪些历史漏洞,如何利用,更深一点知道是什么原理等
执行命令
这个阶段的学习主要是为了将恶意代码或者软件在目标操作系统中运行,让恶意代码发挥作用,所以对于系统的熟悉程度直接影响这个阶段的效果。
如何让恶意代码在主流的操作系统中运行?
目前国内外主流的操作系统包括 MAC、Windows 和 Linux,对于用户使用量来看,Windows 一定是最多的,也是大家最熟悉的操作系统,具体细节可以参考:
https://attack.mitre.org/tactics/TA0002/
任务目标
这里提到了非常多的在系统执行命令或者软件的方式,每一种都可以进行类似的研究,比如如何使用,适合哪种场景等,这里的场景主要包括:获得一个远程桌面、获得一个 webshell、获得一个 V** 入口、获得一个木马通道等,具体细节可以参考 ATT&CK 等框架,选择一些自己感兴趣的点进行研究并编写报告。
维持权限
这里的技术主要是如何让我们目前的权限得到保留,防止在一些特殊情况下被踢出去,比如:自己工具 BUG 意外退出、被安全软件发现自动清理、被安全人员发现清理等情况。这里的技术可能会贯穿整个供给链路,只要你拿到了比之前的更高的权限,那么你就需要维持住自己历史最高权限,这样一步一步的逼近最高权限,防止自己的努力白费。
这里涉及哪些技术呢?
可以参考 ATT&CK 的框架中关于 Persistence 的内容:
https://attack.mitre.org/tactics/TA0003/
任务目标
这里涉及的技术点非常多,不是一个人一篇报告可以完成的,所以大家可以根据兴趣和自身的优势选择一些知识点或者技术点来测试实现,编写报告,不做具体要求。
权限提升
通常我们获得的内部权限并非最高权限,可能是系统某个服务的权限,可能是某个普通用户的权限,这是我们就需要通过各种手段来获取系统的权限,这样我们才可以在系统中做更多的操作,比如抓取密码哈希、获取所有关键目录下的文件等
关于系统提权最常见的有:利用系统漏洞溢出提权、DLL 劫持、服务注入、应用漏洞等,涉及的技术更多是系统层面的,需要一些操作系统级别的基础,难度非常高。0daybank
文章评论