C2隐藏经验分享

极客

我的C2隐藏经验分享:那些没人告诉你的实战小技巧,我真的会谢!

C2隐藏经验分享:那些没人告诉你的实战小技巧,我真的会谢!

C2隐藏经验分享

姐妹们,兄弟们,今天咱不聊虚的,直接上干货!我接触C2这玩意儿也有两三年了,踩过的坑比你们吃过的盐还多(夸张了哈),但真心觉得,网上一堆教程讲得都太表面了,全是理论派!今天我就要把我压箱底的C2隐藏经验抖搂出来,保证让你看完直拍大腿:“卧槽,原来还能这样?!”

先别急,咱们得说清楚啊,我这篇文章纯属技术交流,分享的是在授权测试环境下的防御绕过和隐蔽通信思路,千万别拿去干坏事哈,不然进局子了别怪我没提醒你!

第一点:别死磕那个默认端口了,真的会谢!

很多新手拿到C2(比如CS、MSF这种)第一件事是干嘛?改默认端口!改成8888、6666这种?哎呀妈呀,这不等于告诉蓝队“我在这儿,快来打我”吗?我的隐藏经验第一条:端口号越“脏”越好! 你想想,正常流量里,80、443、8080这些端口满天飞,你非要用个54321,防火墙一看,直接拉黑好不好!

我现在的习惯是,直接复用Web服务的443端口,用TLS加密的HTTPS流量做伪装,甚至更狠一点,直接配置成“域名前置”(Domain Fronting),把流量伪装成访问谷歌或者微软的CDN节点,这才叫隐藏!咱主打的就是一个“大隐隐于市”,懂不懂? 这么搞,至少你的C2 beacon存活率能提升好几个档次,真的不骗你!

第二点:Beacon的“睡眠”时间,别那么死板!

哎,我知道你们很多人都设置回连时间是60秒一次,风雨无阻,准时得像闹钟一样,这不扯呢吗?蓝队的流量分析系统最喜欢你这种“有规律”的流量了,一抓一个准!我的经验是,一定要加“抖动”(Jitter)! 比如基础睡眠时间设个120秒,抖动设个50%,那实际回连时间就是在60秒到180秒之间随机跳。

你想象一下,蓝队分析师看着流量图谱,发现这个beacon一会儿出来冒个泡,隔了半天又没动静了,跟个神经病似的,他想追踪都难!咱就是让beacon“睡”得不规律,让他们摸不着头脑。 诶,这就对了!隐藏的核心是什么?就是不确定性和随机性啊,各位老铁!

第三点:内存执行才是yyds,别动不动就落地文件

我跟你们讲,最危险的时刻就是文件落地的一瞬间! 杀软那不是吃素的啊,我现在的C2隐藏铁律就是:权限再小,也要想办法搞内存执行! 比如CS的execute-assembly、powershell的shellcode直接注入内存,或者是用无文件攻击手法,让payload直接在内存里跑。

这样搞,你的C2痕迹就只存在于内存里,硬盘上干干净净,取证?取个寂寞!但是哈,这里有个小细节要注意,内存扫描(YARA规则)也很凶的,咱们的beacon的shellcode需要做加密混淆,别用那些公开已知的特征码,最好自己改一改AES密钥,或者用个冷门的加载方式,哎呀我跟你讲,这一套组合拳下来,EDR看了都摇头!

第四点:C2的基础设施,一定要“分家”!

我之前有个惨痛的教训,就是把重定向器、C2服务器、还有一个钓鱼网站全放在一个VPS上,想着省钱方便,结果哪知道,被人一锅端了!哥们儿直接裂开!我现在学乖了,强烈建议采用CDN+重定向器+Teamserver的分层架构。

CDN藏着真实IP,重定向器(比如一个Nginx反代)再过滤一波扫描流量,后面的C2服务器,我都买那种注册信息隐私保护的域名,用的是Cloudflare那种低倍率流量清洗服务,这样一来,就算蓝队把你CDN打掉了,你后面还有好几层马甲呢!你断了我的CDN,我还能走备用信道,气死你!这叫做什么?猥琐发育,别浪!我可不是跟你闹的,这真的是花钱买来的经验啊!

第五点:别忽略那些“伪装的”请求头!

来来来,最后一点,也是我最想吐槽的,很多人用HTTP的C2 beacon,那个User-Agent(UA)默认的或者改得很假,比如什么Chrome/91... 但你的网络流量里,其他的包都是Windows 10的Edge或者火狐,唯独你这一个beacon是Chrome的UA,你觉得蓝队的UEBA系统看不出来吗?

隐藏经验:一定要去目标环境里“学”一下正常的流量特征! 比如用C2的配置生成时,把UA改成和当天管理员访问网页时一模一样的版本号,顺便还能自定义一些Cookies,搞个合法的SessionID字段放在里面,让WAF一看觉得这是正常的会话请求,咱就是说,连“指纹”都对上了,这还不算完美隐藏吗?

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

目录[+]