在红蓝对抗免杀领域有几个误区需要说明,包括2个概念3个误区。
什么是加载器?
加载器是一种技术,打个比方,核弹,核弹它不是一个导弹,它是一个弹头配一个推进加载器,用什么推进器和弹头决定了它的威力,你用高超音速导弹,那就很厉害,你用普通导弹也不是不可以,只不过就是慢一点。还有一种是飞机搭载,就跟俄罗斯的匕首一样,他可以用先进战斗机搭载,战斗机就是他的平台,匕首就是加载器,它可以搭载核弹头也可以搭载钻地弹,弹头就相当于我们的shellcode或者是paylaod,用什么加载器决定了你能否绕过杀软或EDR,这么说明白了么?
误区1:免杀了为什么还会弹窗?
很多新手,以为免杀了就等于可以为所欲为,然后一顿操作,然后遇到弹窗可疑,为什么免杀了但依然不能随意操作呢?
事实上,现代杀毒软件和EDR使用了多种检测方式,除了特征码,还会使用行为分析、云端分析和机器学习等手段。它们会监控启动项、计划任务以及Windows内置的一些命令工具等,任何新增或修改变动都会告警,甚至你打开cmd也可能会被查杀。如果程序在运行过程中表现出和恶意软件类似的行为,也可能会被查杀。
从另一个角度来说,这都是美国人开发的技术,美国佬的思维理念是步步为营,一件事使用一种工具,,比如它有这个漏洞攻击类、持久化类、数据泄露、消痕等等,它都不是一个人在操作它是一群人,一般需要分析,目标上面有什么,再决定采用什么工具。操作出现弹窗,说明你的这项操作不先进被杀毒软件监控到,而不是免杀的问题。
我们说的免杀,它是建立立足点的一种技术,只是代表获得了在目标系统上操作的机会。然而,建立立足点只是攻击链中的一个环节,还需要实施一系列操作来保证行动的持久性和隐蔽性,这就涉及到操作安全(Operational Security, OPSEC)。
误区2:能不能开发自启动?
还有一些人问,能不能做自启动?
事实上,只有黑产才会提到这个词。通常说的"自启动"指的是程序自己在系统启动时就运行,通常需要通过修改注册表、创建计划任务或者服务等方式实现。但老外没有这个词,他们叫"持久化"。
这种“自启动”虽然可以在目标系统中持久存在,但如果操作不当,可能会暴露导致会话丢失,因为它违背操作安全。
这在Cobal Strike插件中可以得到体现,你可以看到很多开源项目,红队只是做到迁入就行了,因为功能做的越多,只会越容易暴露。
误区3:500KB的文件做好免杀只有20KB?
还有朋友不理解为什么一个500KB的文件最好免杀只有20KB,这是不是压缩了?
事实上,这是另一个误区,免杀不是加壳,在计算机中,但在免杀技术中有一种技术叫分离加载,也就是我这个加载器不直接携带你的payload,而是远程加载,例如我们可以把exe的payload转换成shellcode,放在一个托管平台让其远程加载。这与军事不同,相当于你用了高超音速导弹,它运行后远程拉取弹头。
PowerShell与BOF
在过去,红队普遍使用PowerShell进行操作,由于 PowerShell 被滥用于恶意活动,现代的防御系统(如 EDR、Windows Defender、Sysmon 等)对其进行了严格监控。Windows 提供了丰富的日志记录功能,如 Script Block Logging 和 Module Logging,这些功能可以详细记录每一个 PowerShell 命令的执行,甚至还原混淆代码.
红队不得不开发更隐蔽的技术。
2019年5月,美国佬Daniel Bohannon开发了知名的Invoke-Obfuscation,该工具也是黑客组织海莲花常用的Powershell混淆工具。 这工具在那几年可不得了。
但直到2019年5月,他才公开代码到github,你有没有想过这么好的东西为什么会公开,因为已经到了不得不淘汰的时候,更为先进的技术出来了。
2019年12月,Cobalt Strike团队开发了BOF技术,作为对抗现代安全防护体系的强大工具。而在BOF被引入之前,Cobalt Strike 的 Beacon 主要依赖于内置的攻击模块和脚本语言(如 PowerShell)来执行攻击操作。
BOF使红队能够在目标系统内存中执行小型、定制化的攻击代码,而无需依赖外部工具或在磁盘上留下痕迹。特别是在面对现代EDR时,能够有效规避静态文件检测,这得以在红队社区中广受欢迎,直到现在。
推荐阅读
欢迎点赞分享并留言,同时欢迎关注视频号。
原文始发于微信公众号(白帽子安全笔记):我有关于免杀的2个概念和3个误区要讲
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论