AI 摘要(由 ChatGPT 总结生成):
这篇文章通过对红队和渗透测试的比较,引出了一种“积木思维”与玩俄罗斯方块的相似性。作者认为在红队攻防中,就像玩俄罗斯方块一样,可以利用不同的漏洞组合来最终达到目标,即获取目标shell。文章以俄罗斯方块游戏为例,描述了初步接触、经验积累、看攻略、实战练习和进阶的过程,强调了全局思维和漏洞连接的重要性。最后,强调勤学苦练的重要性。

前言

近期简单玩了下SRC和前面的“攻防演练”当红队时的总结,也借鉴了网络上其它大佬的想法思路,觉得很不错,遂分享之。

红队&渗透测试

红队与渗透测试在方法和实施过程中存在一定相似甚至重合的部分,故也在很多地方都有把混为一体、认为这两个是个差不多的东西,但其实不然。

渗透测试往往会讲究“点到为止”,只要能证明出该漏洞存在即可,且可以提交很多不一样的漏洞,例如 xss敏感信息泄露 等;而红队则更加偏向于“拿权限”。

红队想要拿权限,更主要靠 反序列化SQL注入文件上传 三类漏洞来实现 RCE(远程命令执行),并打入目标内网。

然而实战环境下,很多的漏洞都不是摆在面前给你利用,而是通过多重手段、一步一步的去发现、利用,最后去得到目标的 shell ,然而在这过程中,可能还需要绕过流量 WAF 这关,然后在你艰难的把 WAF 绕过后,又可能面临一个不出网或命令执行无回显的情况(绝望不)。

这时,我们就需要其它思维模式并结合多种手法去达到我们的目标。其中这让我想到了一个叫“积木思维”的方式(刚开始入安全领域时的一个文章点醒了我)。

积木思维

相信 俄罗斯方块 的游戏大家都有玩过,它是由很多方块去叠,利用不同的块去叠在一起,这看似是个无规律的,但最终的目的就是将某一行填满并消除即可。

而这也与红队有着异曲同工之妙,打红队时,我们可以利用不同的漏洞组合,不管是什么漏洞,最终只要符合其要求,那么最后都能达到最终的目的,获取目标 shell

下面结合 俄罗斯方块 的例子来举一下。

举个栗子

刚开始接触游戏

刚开始接触 俄罗斯方块 这个游戏的时候,想必大家也是不会去看什么攻略,直接先玩几把游戏熟悉下再说。虽然我们可能玩的不是很好,但是当我们尝到了将方块消除的甜头后,心里也就建立起对这个游戏的初步认知了,也渐渐了解了这个游戏的规则。

红队也是这样,什么实战还没玩过,就先看一堆文章、教程,想必很多人都是懵逼的,可能过一会儿就忘了。只有真正的去接触过、去玩过、才能体会到切实的理解。

三五局游戏后

在自己初步接触游戏并对该游戏建立起认知后,这时候你就会遇到一些问题,例如:为什么我玩的时候会挂的这么快?为什么有些方块在这里放就不行,在那里放就可以等等。又有时候我们虽然知道在这里放可以,但是比较片面,也没有理论依据,只是玩了几把,死的太多了,积累的一个初步经验,知道在这里继续放一定会死,以后就不在这里放了。

到了这儿,我们心里已经产生了一定的困惑,不过也有了一定的游戏经验了,同时自己为追求玩的更好,就要解决这些问题,那么这时候就是到了看攻略的时候了。

只有在自己心中有问题情况下,看攻略才会有它最大的价值,否则就算看了,获取的知识也就只能停留在纸面基础上,并不能作用到实际应用中去,这也是应一句古话:纸上得来终觉浅。

在看攻略的时候,前期一定要把握好全局思维观。此处在举个反栗:玩过俄罗斯方块的都知道它有很多块,如果我们一上来就研究长条块怎么去摆,然后就根据这个长条块去翻阅大量的教学视频、读一大堆资料,这是我想大家基本都会放弃,从而陷入迷茫。

在红队中也是,如果一开始整体攻防概念没有建立起来,先看 XSSXSS 发现一开始有啥 DOM 型、反射型,存储型。你也压根不知道啥玩意,然后发现 Javascript 不会,又先从 Javascript 看起,看了一堆语法语义,此时很多时间过去了,但是内心越来越想放弃,一方面感觉知识根本学不完,另一方面感觉这些东西学了屁用没有,这就很悲惨了。

实战与练习的结合

在整体的全局思维建立起来之后,此时已经知道俄罗斯方块怎么玩耍了,还能玩出一定的花样,但是水平距离职业选手还有很大差距。

这个时候,其实自己弱在哪里,心里已经有数了,那么可以就自己的弱项,做针对性的弥补,然后去实战中检验是否有效,然后把反馈进一步强化,循环往复,水平就能够不断提升。

红队实战中也是,发现一个站拿不下来,虽然这里有个注入点,但是注入的 WAF 绕不过去,这个时候心里就知道自己弱在那里了,回头专门就 WAF 的原理、绕过等去研究,下次就不怕了。

进阶

积木思维本质其实也是连接思维。我们不一定非要执着于最底层的方块叠起来,底层方块也可以作为上面方块的基石,使得它可以在其它行叠加、消除。

这里可以把每一种方块抽象成一种漏洞,也就是说,不管什么漏洞,只要能够叠加在一起,然后最后拿到 shell ,也就是类似于俄罗斯方块中的叠满消除,就能够达到我们的目的。

这里也就是所谓的漏洞连接,攻防中也叫组合漏洞。组合的训练一方面需要阅读大量的历史数据,也就是别人是怎么组合漏洞来利用的,另一方面需要开阔自己的想象力,多看点其他学科的书籍,开阔自己的思路。

例如一套完整的外网打进内网的流程可能包括如下:

外网上传 -- > 上传绕过WAF -- > 绕过 WAF 后文件找不到了 -- > 发现存在CDN,文件传到 CDN 上去了 -- > 找到真实 IP 进行上传 -- > 上传之后 webshell 被杀了,需要免杀 -- > 免杀完毕后成功上线,但是权限很低 -- > 提权发现被管家拦了 -- > 绕过管家进行提权 -- > 提权成功并尝试横向 -- > 扩大战果

这么多流程中,其实就是一层层的技术在累积木。先需要对单点技术做突破,然后把每一个单点的技术连接起来,最后组合成一整套东西。

最后的最后,还得是勤学苦练。瑞思拜!

End

本文标题:红队与俄罗斯方块的共性

本文链接:https://www.isisy.com/1454.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

如果觉得我的文章对你有用,请随意赞赏