溢出,顾名思义,就是容器已经满了,东西从里面跑了出来。
在计算机领域中,溢出通常指的是内存中的“栈”结构溢出。“栈”是内存中一个类似于瓶子的数据结构,里面按照“先进后出”的规则保存各种变量和指令。
正常的代码,在栈满了的时候,就会进行判断,然后进行相应处理,不会在其满了之后,还继续向其中压入数据,而是会停止压入,或者清空栈里面的数据,再继续压入。
而很多程序员在编写程序的时候,往往会对这一步进行忽略,或者忘记了对这一步进行检查。
大家都知道溢出的危害,但是还是存在着很多这样的例子,原因就在于这个过程是编程函数自动进行的,例如c语言,只要程序员自己编写一个函数,那么肯定就会有一个“栈”结构被建立起来,这个函数里面的变量和数据全部压入这个栈中,然后再按照执行的顺序,一步一步弹出。
函数是程序中必然会用到的,并且是大量用到,也就是说,栈这个结构也是随处可见,可是要是不对其中的边界条件做严格的检查的话,很有可能就会产生溢出漏洞,尤其是一些涉及到艹作核心数据的函数。
林鸿对这种漏洞的利用简直是得心应手,当初他破解德州仪器的计算器的时候,使用的方式就是缓冲区溢出破解,成功让计算器的一个缓冲器溢出,然后执行他的破解代码。
而这一次,他想要做的事情也是一样,既然已经发现了这样的溢出可能,他接下来要做的,便是想办法将自己的代码插入进去,然后通过溢出的方式,执行自己的未授权代码。
这种方式,有点像是给一个瓶子不停地压入东西,然后再对方满了的时候,另外在瓶口处接一个弯弯的管子,将数据流引导从自己的管子里过一遍,然后再将数据流引回瓶中。
linx有个好处,很多东西都可以以插件的形式进行安装,为了能够让apache运行起来,林鸿直接将兼容unix的文件系统挂载进来,然后再将和蓝军相同的版本的apache安装在本地,再使用调试工具进行跟踪调试。
这是一个细致活,从调试工具中所看到的内容,都是十六进制的机器码,要想读懂其中的关键代码,必须对汇编和机器码相当熟悉。
林鸿有针对姓地对这个溢出漏洞进行调试,相对来说进展还是很快的,一步一步接近他想要得到的结果。
林鸿在调试代码的时候,其他人也没闲着。
刘辉继续对蓝军的目标进行洪水攻击,不但自己的机器上安装了这个软件,他还给其他几台运行windows系统的机器也安装了这个软件,增加一下攻击的力度。
可惜的是,他的这个方法,实在是过于简陋了点。持续使用相同的机器进行攻击,对方很容易将其ip加入过滤黑名单,对他的所有伪造请求都不语响应,这样的话,他所做的只能是无用功。
并且,林鸿大概了解了一下他所使用的软件,他的大数据洪水攻击,实在是过于原始了,这么点机器攻击,效果肯定不佳。
真正想要达到让对方拒绝服务的效果,必须使用ddos,也就是分布式拒绝服务攻击,使用成百上千台机器同时对目标进行数据风暴轰炸,这样,对方无法识别正确的ip来源,才能够有一些效果。
此外,洪水攻击实际上也是有很多种的,刘辉所使用的这种,是最基本最简单的一种,是单纯的syn洪水,也就是在第一次握手的时候就是个虚假的申请,没有有效的源地址。
这种情况,有点类似于,突然有个人打个电话过来挂断,当服务器端回拨过去的时候,却发现对方的电话号码根本不存在。
而偏偏服务器端的脑子并不是很聪明,或者说,涉及他的人暂时没有考虑到这一点,于是他便真的以为是有人打电话给他,于是拿着电话一直不挂,等着对方接听。而他本身同时只能接听一定数量的电话,当这样的人数一多,他所有的电话都给拿了起来,别人便打不进来了,相当于他拒绝服务了。
刘辉的软件所实现的功能,就是这个伪造打电话的过程。
这个原理是正确的,但是在现在这种场合中却并不适合使用,几个电话号码而已,只要服务器端的管理员跟他说,这几个号码是假的,别管他,就能避免拒绝服务的情况出现。
刘辉自己也应该知道这个情况,但是他也没办法,他能够做的事情有限,对方使用的系统,大部分都是非windows系列的,他根本没有用武之地,只能通过这个方式来凸显自己的存在和重要姓。
小蒋已经将自己的系统也配置完毕,他现在开始执行钱队长交给他的任务,将蓝军那边的网络拓扑结构给绘制出来,好让大家有个参考。
网络拓扑结构,其实就是电脑的连接方式,看看对方的电脑,到底是星形连接,还是环形,亦或者是交叉连接。
每一台电脑,可以看做是一个点,中间的网线就是一条连接的线段,这样将整个结构抽象出来,便形成了网络的拓扑结构。
要想探知这个结构,可以去实地查看,当然也可以通过技术手段来实现。
其原理,就是跟踪数据流动的节点路径,通过其返回的数据,便可以将整个结构给推断出来。
通过扫描网络上存活的机器,获知了对方的ip。而要想知道从对方的那太机器和自己中间,到底经过了多少个节点,便可以使用系统中特定的网络命令来实现。
例如在unix系统下,直接使用traceroute命令,便可以直接将自己和目标机器的路径给探索出来。
通过这些反馈回来的信息,很容易就可以将整个网络的拓扑结构给绘制出来。
只不过,如果手动的话,这个过程有点繁杂,好在他们人也多,做起来也方便。
老王此刻在做什么呢?
他扫描了一阵对方的机器,并没有发现什么可利用的漏洞,正常的手段行不通,他便想着搞点特别的。他的老本行是研究病毒,自然想在这个上面打主意。
临时俩编写一个病毒,那肯定是不现实的,病毒并不是随随便便就能搞出来的,这其中所涉及到的东西太多,有时候还得靠运气和天赋。
他心中想的是,将自己以前研究的一个蠕虫病毒修改一下,然后找个机会给对方偷偷种上,通过这种方式来获得对方的作战情报。
这样想着,老王便对林鸿说道:“他们防得可真严密啊,完全没有任何可趁之机。你这边怎么样?有没有什么办法?”
林鸿如实道:“他们使用的是apache,但是不是最新版,我发现了一个溢出漏洞,现在正在研究,怎么好好利用这个漏洞。”
“哦?”老王闻言眼睛一亮,“要是能搞起的话……我打算将以前研究的一个蠕虫改改。”
“这个主意不错。”林鸿微微一笑,“应该很快了,我调试得差不多了。”
林鸿和老王商量好之后,两人继续着手自己手中的工作。
时间一点点地流逝。
红军对蓝军暂时没有什么办法,蓝军同样也是如此。
“怎么样,找到对方的服务器了没?”李玉山来到丁华辉的身边问道。
“找到了!”丁华辉松口气道,“对方可真是狡猾,肯定是使用了用来伪装应答的程序,我好几次都将这台机器给忽略了过去。”
蓝军信息对抗大队的人,找了半天都没有找到对方服务器的ip地址是哪一个,刚开始的时候,还以为对方违反了规定,并没有将服务器给接入到网络中。
但是奇怪的是,导演部也没有提示说,对方已经违规。这说明,对方肯定是使用了什么手段将这台服务器给隐藏起来了。
于是,李玉山之前让得以弟子丁华辉亲自负责查探。丁华辉经过仔细分析,最终还是被他发现了异常,成功将对方的服务器给确定下来。
丁华辉继续说道:“根据我查出来的信息,他们的系统,应该是freebsd的。”
“看来对方也有高手坐镇啊!”李玉山有些意外地说道。
这点,和他们之前所掌握的情报并不符合。
按照蓝军情报部门所提供的资料,说对方应该是没有什么高手的,只是从地方上请了几个杂牌军助阵,和他们比起来,简直不知一提。
现在看来,情况似乎有所出入。
“的确是高手。”丁华辉点点头,“他们的服务器开了80端口,但是登录需要进行ip验证,并且这个验证并不是基于web程序的,而是基于数据包ip验证,开的服务也非常少,简直可以说固若精汤。”
丁华辉的意思就是,他根本拿这台服务器没有任何办法。除了80端口,其他所有的端口都给关闭了,而偏偏这个80端口还是基于数据包ip验证的,就算是伪造ip进入,还得输入用户名和密码,要想成功突破,难上加难。
(未完待续)