ETW绕过有步骤吗

极客

ETW绕过有步骤吗?老司机带你捋一捋那些坑,别慌!

ETW绕过有步骤吗

哎,兄弟们,最近后台好多搞安全测试的朋友私信我,问得最多的就是——“ETW绕过有步骤吗?” 说实话,每次看到这个问题,我都忍不住想笑,又有点无奈,因为这玩意儿哪有那么简单啊,动不动就谈绕过?你当是过家家呢?但既然大家这么关心,我这个老油条今天就来跟你们掏心窝子聊几句,看看这所谓的“步骤”到底是个啥玩意儿。

咱们先把话撂这儿,ETW(Event Tracing for Windows)这东西,本质上就是个“告密者”,你系统里干了啥坏事儿,它恨不得拿个大喇叭广播出来,你想在Windows上搞点小动作,绕过它就像在老师眼皮底下传纸条,紧张刺激,但得靠技巧,别光靠蛮力,对吧?

那回到正题,ETW绕过有步骤吗?我的答案是:有,但远没到“一键脚本”的地步。

你要是看过网上那些零散的帖子,可能会被忽悠得一愣一愣的,什么OpenProcess拿句柄啊,什么Patch EtwEventWrite啊……听上去专业得不行,但真到实战,你会发现,你最大的敌人不是ETW本身,而是你对面那个开着360、火绒,随时准备跟你“对线”的蓝队小哥,还有你为了绕过而绕过,结果把自己搞崩掉的尴尬局面。

第一步,认知步骤,你得先“懂”它。

很多新手上来就问步骤,就像追女生一上来就要微信一样,太急躁了!ETW不是铁板一块,它的核心在于ProviderConsumer的信任模型,理论上,只要你能以SYSTEM权限运行,并且找到那个特定的Session,你就可以调用EnableTraceEx2去“劫持”或者“关闭”某个Provider的日志记录。

但这只是“理论”,宝贝儿们,现实是,EDR(端点检测与响应)厂商早就不靠单一的ETW了,他们会在内核层看着你,看你是不是去patch了ntdll!EtwEventWrite,这种行为本身就是一个巨大的“特征”。你以为的“绕过步骤”,可能在人家眼里就是“自首步骤”,哎呀,有点扎心,但这是实话。

第二步,实战步骤,你得学会“演”。

如果非要让我说几个不算步骤的步骤,那我更倾向于“逻辑绕过”而非“技术对抗”。

  1. 隐藏调用栈:别傻乎乎地直接在主线程里Patch,你可以用APC注入或者异步过程调用,让ETW看到的是一个“干净”的调用栈,这一步,讲究的就是一个“嫁祸”,让告密者看不清是谁干的。
  2. 利用合法通道:ETW不是万能的,它只记录“被设计好”的事件,比如某些合法的PowerShell日志记录,你可以通过更底层的API调用,或者利用.NET的Assembly.Load(byte[])反射加载,绕开那个最显眼的监控点。这不算绕过,这叫正门不走,翻墙溜达,虽然行为可疑,但至少比直接毁坏监控器要好。
  3. 时间差与混淆:这个就有点累人了,比如在ETW Consumer重连的缝隙里搞事情,或者反序列化的时候用垃圾数据填充,稍微带点“社会工程学”的味道。

第三步,也是最关键的“步骤”——心态!

我跟你讲,真正的绕过高手,不研究步骤,研究“信任链”,他们知道ETW是盖在沙滩上的城堡,但他们不会去强拆,而是找那个最底层的沙子,当有人在论坛里问“ETW绕过有步骤吗”的时候,我总想回一句:“兄弟,送外卖需要步骤吗?你先得知道客户家在哪吧?”

你得先摸清楚目标环境到底开了哪些Provider?是Microsoft-Windows-PowerShell还是Sysmon?每个Provider的权限要求不一样,没有一劳永逸的“万能公式”,只有“具体问题具体分析”的经验积累。

总结一下吧,你说ETW绕过有步骤吗?当然有,但又没那么简单。这更像是一个“脑筋急转弯”,而不是“程序填空题”,如果你只是想过了静态检测,那你随便找个开源代码抄一下;但你要是想躲过实时监控还有后续的行为分析,那我劝你,忘了“步骤”这个词,多去研究研究Windows内部机制。

这行当,最怕的就是浮躁,你以为你在第五层,拿着个脚本就觉得天下无敌,其实人家在第十层,看着你对着EtwEventWrite的地址猛打补丁,就像看猴子表演一样,哎,不说了,说着说着又激动了,来来来,你们倒是说说看,你们觉得现在这年头,纯靠ETW绕过还能吃几年饭?

新手学习核心提示:别光搜“绕过”,多搜搜“如何收集证据”,知己知彼,反逻辑才是精髓啊,各位,共勉吧!

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]