第六节 缓冲区溢出(2 / 2)
意外,这是一个彻头彻尾的意外,段天狼之所以选择这个时间点开始跟戴蒙打仗,就是因为他知道这个时候美国是深夜,面具岛屿四人组其他三个人都睡着了,应该来不及帮助戴蒙。
然而,天算不如天算,原来近乎完美的,两人夹击戴蒙一人的计划,因为admin的突然加入,而彻底变形。
约莫十五分钟之后。
孙云梦对段天狼说道:“第一个王牌跳板大概就要被冲破了,你这边怎么样?”
“没问题,让他过来吧,我现在就进驻第二个超级跳板。”段天狼说道。
“你对他的系统已经了解到什么程度了?”孙云梦问道。
段天狼转过头,看了看孙云梦,说道:“面具岛屿自用的系统,怎么可能这么短时间里就被研究透?”
“那你又一副没问题的样子。”
“虽然还没有研究透,但是我已经找到了这个系统的一个小漏洞,我可以利用这个漏洞进行攻击。”
孙云梦好奇地问道:“漏洞?什么漏洞?”
“缓冲区溢出漏洞。”段天狼答道。
“不会吧?面具岛屿的自用系统,竟然会有这么初级的漏洞?”孙云梦笑着问道。
“越是复杂的系统,越是有简单的漏洞。”段天狼答道。
在这里,需要介绍一下,何所谓缓冲区溢出漏洞。
一般来说,只要是黑客,就都知道缓冲区溢出漏洞是怎么回事。
在最近的远程网络攻击中,利用缓冲区溢出漏洞的占绝大多数,算是最为普及地一种远程攻击方式了。而它之所以会这么普及,正是因为这个漏洞太普通了,而且易于达成进攻者的目标——利用一个匿名的inte用户获得一台主机的部分或全部的控制权!
要说缓冲区溢出漏洞,我们首先要知道什么是缓冲区。
我们打个比方,你是个租书店老板,你的店里很好几千册书,这些书有武侠小说,有言情小说,还有玄幻小说,每天都有很多人读者来你这里租书看。
刚开始的时候,你或许没什么感觉,但是等到你店开久了,你就开始有经验了,有的书很多人借,有的书很少人借。于是,为了招徕客户,你就专门整理出一个柜台,专门放这些很多人租的书。
这样的话呢,再有客人来的时候,他可能就直接从这个柜台上拿了,不用满店跑,大大节省了客人的时间。而这个专用柜台,就是缓冲区。
计算机上几乎所有的存储设备都有缓冲区,比如硬盘,当我们向我们的硬盘输入数据的时候,通常都是先输入到缓冲区,直到你把缓冲区塞满之后,才会再写入硬盘。
这样的好处,就跟前面说的租书店的故事一样,可以节省时间,避免过于频繁地写盘。
现在大家知道缓冲区是怎么回事了,那么缓冲区溢出又是怎么回事呢?
我们再来形象地打个比方,你是个很成功的公司高层,你有一个专职小秘。她除了供你调戏,帮你打文件,跑腿以及帮你陪客户喝酒之外,她还得帮你干另外一件事,那就是帮你倒茶。
有一天,她来到在你桌边,往你杯子里倒茶。这个杯子是只能装八百五十毫升水的杯子,而茶壶是一千五百毫升的容量,通常来说,你的小秘书会往你的茶杯里倒上七百五十至八百毫升,总之绝对不超过八百五十好生的水。
但是这一次,你的秘书却一直让水壶里的水往你的杯子里灌。那么结果会是什么呢?很显然,水将会从杯子里溢出来。
这跟缓冲区溢出是同样的道理,当数据容量超过缓冲区的容量的时候,就像水一样,缓冲区的数据也会溢出来,这也就是缓冲区溢出。
缓冲区溢出分为两种情况,一种是偶然的,一种是恶意的。如果是偶然的,那没什么大不了的,不过就是应用程序错误而已。但是如果是恶意的,那么黑客就可以趁机运行特别程序,获得优先级,指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,部分或者全部的控制这台计算机。
这样说,或许大家还是有点头晕,好吧,那我们就再形象一点,接着刚才的比方。
一般来说,你的小秘把水倒满,很可能是一时疏忽,这个时候,最多就是你被烫了一下,不满地瞪了她一眼,让她把桌子抹干净就完了。
这就是偶然的缓冲区溢出。
但是如果这个时候,你的秘书已经被别人收买了,她就会故意狂倒,水从杯子里溢出来,把你的整个桌面倒地到处都是水,连你腿上都滴满了。你气死了,跳起来骂娘,然后到另一个房间去换衣服。
而这个时候,你的秘书就趁机赶紧把你桌上的文件全部换了一遍,等你回来的时候,看到的,是你的敌人给你准备好的文件。这些文件促使你对当前的形势产生错误的判断,于是,你就按照敌人所希望你做的那样,做出他们想要你做的决定。
你自己并不觉得,但是事实上,你已经被你的敌人控制住。
这就是恶意的缓冲区溢出。
一般来说,缓冲区溢出攻击的目的,在于扰乱具有某些特权运行的程序的功能,这样可以使得攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了。为了达到这个目的,攻击者必须达到如下的两个目标:
第一,在程序的地址空间里安排适当的代码。
第二,通过适当地初始化寄存器和存储器,让程序跳转到我们安排的地址空间执行。
两个目标,需要两个步骤来完成,第一个步骤就是将攻击代码放入被攻击程序的地址空间。第二个步骤,就是使目标程序的缓冲区溢出,并且执行转移到攻击代码。
这个过程方法很多,就不在这里一一赘述了。
而段天狼就是在面具岛屿的共用系统中,发现了系统中发现了一个有破绽的代码。段天狼之所以向这个代码传递出一个简单的参数,就可以导致这个系统发生缓冲区溢出。
因为这个参数的数据量很小,如果隐蔽得好的话,很可能戴蒙无法察觉。而段天狼也就很可能在神不知鬼不觉的情况下,将他所制作的最新型的木马,伪装成系统程序的一部分,植入到戴蒙的计算机中。
应该说,这个计划很完美。
如果没有admin的插手的话,这个计划几乎是一定会成功的。
正是因为如此,所以当段天狼简单地跟孙云梦讲述了自己的计划之后,他马上得到了孙云梦的认同,“好,就这么干,我会尽力牵制他的注意力的。”
而这个时候,戴蒙已经成功地突破了第一个王牌跳板,来到了第二个王牌跳板。
“天啊,user说这个家伙是跳板王,果然没有说错的。”戴蒙摇了摇头,说道。
说完,他就开始继续扫描第二个王牌跳板,然而,就在他准备扫描这第二个王牌跳板的时候,admin却突然发了句话给他,“喂,你不觉得有点不对劲吗?”
“哪里不对劲了?”戴蒙奇怪地问道。
admin揉了揉眼睛,写道:“我也不是很确定。不过,我怎么感觉这个假aya好像并不是有心在跟你打仗,而是在刻意吸引你的注意力啊。”
“是吗?我没什么感觉啊。”戴蒙说道。
admin在电脑面前啧了一声,然后写道:“不对,我总觉得好像哪里有什么问题。你是怎么跟他遇上的?”
戴蒙把大致的情形跟admin说了一遍。
听完戴蒙的话,admin就有点犹豫了,“也许……是我多疑了吧?”
“不管那么多了,兵来将挡,水来土淹,我们两个人联手,就算是鸿钧来了,也要忌惮三分。”戴蒙说完,便开始对着第二台王牌跳板扫描起来。
段天狼就等着他这么干,在戴蒙扫描的过程中,这台跳板不断地有数据回馈到戴蒙的计算机上。
而段天狼就将这个只有几十个字节的参数,夹在这些数据中送回戴蒙的计算机上。这个字节来到戴蒙的计算机上,很快就找到了系统中的那个特定程序。
这个几十个字节的参数,就像是一个洗脑人员一样,在最短的时间内,便将对方的一名军官变成了叛徒。表面上服从上级,实际上执行攻击者的指令。
完成了这一步之后,段天狼马上就利用这个程序,迅速在戴蒙的计算机中建立一个临时帐户,并且将它的权限提高。
然后,获得了部分计算机控制权的段天狼,马上将自己早就准备好的木马程序,写入了另一个特定程序中,伪装成系统文件的一部分。
至此,就算是大功告成了。
就和段天狼以及孙云梦原先料想的一样,因为没有料到这是个陷阱,也没有料到对方是两个高手在对付自己一个,更没有料到对方竟然可以在这么短时间里找到自己的系统漏洞,另外再加上大量精力被孙云梦牵制的关系,戴蒙并没有察觉到段天狼所做的这一切。
但是他没有察觉到,不等于就没有人察觉到。
“你已经被人植入木马。”admin脸色无比严肃地在键盘上敲道。
(未完待续)