1.Now I Have Your Signature
我们知道CS的C2 Profile的数据是在保存在堆上的,有个东西叫做beaconeye,他能扫描出我们的CS的堆,然后把我们像小鸡一样拎出来
解决的方法就是aceldr的做法,端倪就在GetProcHeap这个函数里面,下图是CS上线过程中触发的断点。
2.Kaspersky??
我们知道卡巴有内存扫描,他会扫描你的内存,如果不做内存对抗,是扫到必死(至于网上有些公众号上个线就说免杀卡巴的自行脑补。。。。) 怎么绕过内存扫描不多说,简单点的就是hook Sleep , Veh ,然后就是UDRL里面操作,都是能直接过卡巴的主动扫描。
但是这就是一个问题了,卡巴并不会扫描你的堆(在不做堆加密的情况下照样过)所以这也就是小标题的由来
下面是我只做内存对抗下卡巴不报但是会beaconeye会报毒
3.Long Live To AceLdr !!
网上有很多bypass的文章,比如下面这个“修改一个字节绕过beaconeye”
https://mp.weixin.qq.com/s/6kRg0_BmXYExy4_-pEAcLw?poc_token=HM1gBmijRhtDXluMmNvlwnGSvrp2uksOOZc_JaDE
然后就是也有说堆加密
https://mp.weixin.qq.com/s/vrGQ2L-XpMgRqjJxKQhuZQ
通过挂起全部线程,遍历所有堆,然后加密,确实也是能bypass掉beaconeye
但是挂起所有线程我们又需要引入一系列的API,SetThreadContext GetThreadContext OpenThread SuspendThread 等,这里推荐一种AceLdr的做法。
https://github.com/kyleavery/AceLdr
也就说的很明白了,我们自己去RtlCreateHeap,然后让CS用我们的这个Heap,然后在Sleep的时候去对他做加密就行,这种方法并不需要挂起任何线程,同样有堆加密的效果
这样卡巴和beaconeye都没有说法了
当然了,除了堆加密,aceLdr 也是有很多亮眼的说法的,作者都有很详细的描述,这里我就不多赘述,UDRL的强悍懂得都懂。
原文始发于微信公众号(半只红队):【UDRLTrick】| CS Heap Encypt实现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论