速通HW攻防绕过案例

极客

速通HW攻防绕过案例:一次让我头皮发麻的实战复盘

说实话,写这篇文章之前我犹豫了很久,为啥?因为速通HW攻防绕过案例这东西,讲太细了吧,怕踩线;讲太浅了吧,又跟没讲一样,但后来一想,咱做安全的,不就是在不断复盘和分享中成长起来的嘛!所以今天豁出去了,把我去年HW期间遇到的一个速通HW攻防绕过案例掰开揉碎了跟大家聊聊,希望能给兄弟们一些启发。

速通HW攻防绕过案例

先说结论啊——速通HW攻防绕过案例的核心,从来都不是什么高大上的0day,而是你对目标业务逻辑的理解深度,这话听起来像废话,但你往下看就知道了。

那个让我熬夜到凌晨三点的夜晚

HW行动的第三天,我们盯上了一个看似平平无奇的内网系统,WAF有,EDR也有,常规的注入、上传、命令执行,统统被拦得死死的,当时队友都在叹气,说这块骨头怕是啃不动了。

但我这人吧,就是轴,别人说不行,我偏要试试。

于是我干了一件特别“笨”的事——我把目标系统的前端JS全部拉下来,一行一行读,你知道那种感觉吗?就像大海捞针,眼睛都快瞎了,结果还真让我捞着了。

他们的文件上传接口,在前端做了后缀白名单校验,后端在接收文件的时候,用的是文件名拼接路径的方式,这就意味着——如果我构造一个特殊的文件名,test.jsp%00.jpg 这种(当然实际利用比这复杂得多),后端解析的时候就可能出现速通HW攻防绕过案例中经典的空字节截断逻辑漏洞。

等等,先别急着激动,因为WAF在中间卡着呢,%00这种东西一发过去就被拦了。

这时候,速通HW攻防绕过案例的精髓就来了——编码变形。

绕过WAF的那点“骚操作”

我当时试了好几种编码方式,URL编码?不行,双重URL编码?还是不行,Unicode?被拦。

就在我快放弃的时候,我突然想到一个点:WAF的规则库更新是有周期的,而有些老旧的中间件对分块传输编码(Chunked Transfer-Encoding) 的解析和WAF不一致。

说白了就是,WAF可能只检查第一个分块,或者对分块边界的处理有缺陷,于是我把恶意payload拆分成多个chunk,每个chunk看起来人畜无害,但拼在一起就是一把刀。

结果你猜怎么着?过了!

那一刻我真的从椅子上跳起来了,凌晨三点,合租的室友差点被我吓醒,这就是速通HW攻防绕过案例里最让人上头的部分——不是技术有多难,而是那个“灵光一现”的瞬间。

进入内网之后,才是真正的噩梦

拿到webshell只是第一步,接下来的内网横向,才是速通HW攻防绕过案例的重头戏。

目标内网部署了某款主流EDR,对常见的提权工具、mimikatz这些,查杀得那叫一个严,我试了三个提权exp,全被干掉,连个响都没听见。

这时候我换了个思路——不打系统层,打应用层。

我发现内网有一台服务器上跑着一个老版本的Jenkins,Jenkins这玩意儿,在速通HW攻防绕过案例里简直是常客,为啥?因为它的脚本命令行功能,本质上就是一个合法的命令执行入口,EDR一般不拦它,因为这是“正常业务功能”。

我通过前期拿到的凭据登录进去,在脚本命令行里执行了一个反向shell,EDR果然没报警,那一刻我真的笑了,笑得有点无奈——速通HW攻防绕过案例有时候就是这么讽刺,你费尽心思绕过的防线,可能因为一个配置疏忽就全线崩溃。

说点掏心窝子的话

兄弟们,速通HW攻防绕过案例我写了不少,但每次复盘都觉得,真正的绕过从来不是靠某个神器或者某个0day,靠的是你对HTTP协议的理解、对中间件特性的熟悉、对业务逻辑的敏感度。

——耐心,真的,别一上来就梭哈,先看看人家前端怎么写的,先抓抓包看看数据怎么流的,很多速通HW攻防绕过案例的突破口,就藏在你觉得“这玩意儿没啥好看的”地方。

最后提醒一句啊,本文提到的技术细节都做了脱敏处理,速通HW攻防绕过案例的分享是为了防御方更好地理解攻击思路,千万别拿去干坏事,技术这东西,用对了是刀,用错了是牢饭。

好了,今天就唠到这儿,如果你也有类似的速通HW攻防绕过案例想分享,欢迎评论区聊聊,咱们一起学习一起进步!


本文首发于个人博客,转载请注明出处,更多速通HW攻防绕过案例,欢迎持续关注。

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

目录[+]