exploit原理分析与利用总结

[复制链接]
查看180 | 回复0 | 2012-4-1 19:15:16 | 显示全部楼层 |阅读模式
如果你刚刚学会穷举暴破,一定经常感到奇怪,为什么有些破解者发布的密码就是他的名字?为什么有些破解者能够发布某个网站的一大堆密码?而当你逐渐熟悉暴力破解之后,也自然会经常碰到这个问题,那就是--exploit。
到底什么是exploit呀?谁能给我一些exploitlist?这个exploit怎么利用呀?......诸如此类的问题随处可见。诚然,exploit是所有破解者追求的更高境界。能够通过exploit获得网站的大把密码,甚至添加具有个人特征的自定义密码,确实是令人羡慕的技巧。但是,如果你公开提出有关exploit的问题,并不会得到实质性的解答。于是大家开始抱怨,高手们怎么那么吝啬呀,公开一些小秘密又不会身上少块肉,干嘛把那些宝贝藏着掖着不肯泄露一丝一毫。有这些疑问和抱怨也很正常,说明你对exploit的概念和特点还不是很清楚。
其实我也不会exploit,顶多算是刚刚沾边而已。之所以斗胆献丑,把自己对于exploit的理解写下来,目的是让新手们对exploit有个基本的认识,并且知道正确的努力方向,不再盲目提出那些让高手无法回答的问题而又四处抱怨没人教你。


★什么是exploit
exploit字面上的意思是“开拓、开发”,而在破解圈子里面,公认的概念可能是“漏洞及其利用”。通俗的说,exploit就是利用一切可以利用的工具、采用一切可以采用的方法、找到一切可以找到的漏洞,并且通过对漏洞资料的分析研究,从而达到获取网站用户资料文档、添加自定义用户、甚至侵入网站获得管理员权限控制整个网站的最终目的。对于cracker来说,能够得到密码档或者添加用户就足够了。而对于hacker来说,控制整个网站才是目的。
现在大家应该有些概念了吧。不管你用什么方法、什么工具,只要能够发现网站的漏洞,实现获取密码档、添加用户、控制网站的目标之一,那么你所做的就是exploit。
那么漏洞又是什么东西呢?我们应该知道,所谓网站,不过是由放在服务器上的很多相关程序及文件所组成的。既然是人编写的程序,就不会是无懈可击的,再优秀的程序都会有这样那样的缺陷,否则人们就不需要没完没了的更新升级程序了。而网站的漏洞,可能是组成网站的程序本身的缺陷造成的,也可能是程序之间的配置缺陷而造成的,还有就是网站设计上的缺陷。


★关于exploitlist
exploitlist就是一个已知漏洞的列表。
网络上有很多公开的漏洞资料,如果你上google用不同的关键词搜索,就会找到很多这样的东西。
 一些扫描软件本身也附带漏洞列表。AD自带的exploitlist一直就是345个,从来没有增加过。CMXploiter1.2版本自带3K的list,而新版本CMXploiterIV虽然功能大大丰富,却没有了自带的list。PassCraft3.0中的exploit功能还自带200K的list,但是新版本的软件虽然将exploit功能独立出来,却同样没有了自带的list。可以看出来,这可能是一种趋势,为了保护已知的漏洞,很多流行的扫描软件不会再有自带的exploitlist,至少不会再更新它的exploitlist。
现成的exploitlist不会那么容易得到,别指望谁把这些东西拿出来共享。即使有这样的东西,里面恐怕也没有多少值钱的玩艺儿。只有自己不断努力,收集、整理相关资料,一点一点的丰富自己的漏洞列表。
有很多新手羡慕别人有一个庞大的漏洞列表,其实那样的列表即使给你,也未必对你有多大帮助。我们扫描漏洞的最终目的是要利用漏洞,如果你费了半天工夫,扫出一堆所谓的漏洞,可你却根本不懂如何去利用它们,那不是浪费时间么。所以,对于新手来说,用较小的漏洞列表扫描自己会利用的漏洞,可能是一种省时省力的办法。


★exploit的基本过程--扫描、分析、利用
exploit的第一步,就是对目标网站进行扫描。可以用我们已知的漏洞列表进行扫描,看看对方有没有我们列表中的漏洞。也可以用一些专门的软件,扫描目标的其它相关信息,包括网站使用的操作系统版本、提供的服务以及开放的端口,等等。没有什么最好的扫描工具,每种扫描工具都有它的优点和缺点,能够扫出的东西也不一样。所以,你需要掌握尽可能多的扫描工具,根据不同的目标、不同的目的,选择合适的扫描工具。
exploit的第二步,就是对扫描获得的信息进行分析研究,从而找出漏洞所在以及利用的方法。这是最困难的过程,也是对你的相关知识的考验。我们扫描获得的信息可能是多种多样的,不同的信息需要不同的知识来分析。
exploit的第三步,如果我们通过分析已经找到漏洞以及利用的方法,就可以选用相应的工具,完成我们的最终目的--拿到密码档、添加用户、获得管理员权限,等等。


★exploit需要哪些相关知识
简单说,你想利用什么样的漏洞,就需要什么样的知识。反之,你拥有什么样的知识,也就能够利用什么样的漏洞。
现今,大部分网站都采用unix做为操作系统,如果你只会玩windows,那就熄火了。我们需要学习unix系统的理论,至少要学会基本的unix指令。如果条件允许,最好在自己的电脑上安装一套unix(Linux)系统,这样学习起来会更直观、更有效。当然,安装unix系统并不是一件容易事情,建议新手先去一些相关网站和论坛,仔细浏览有关unix系统的安装使用方法以及常见问题,在充分了解相关知识的前提下,再去尝试安装。否则,弄坏了你的windows系统,可不要怪老黑没有提醒你。
不同的网站可能会选择不同的unix版本。不仅如此,你还要了解网站的构成元素,比如php、sql等等相关知识。另外,可能有些网站采用其它特殊的系统例如Zeus什么的,如果你想要搞它,就要先学习它。
cgi脚本是比较常见的漏洞,我们需要了解它是做什么用的以及运行的原理,还要想办法得到cgi脚本的源代码进行分析研究。因为目前大部分的cgi程序都是用perl语言编写的,所以你还要学习perl的相关知识。cgi是cracker最常利用的漏洞,虽然很难获得网站的管理员权限,但是想要找到密码档和添加用户还是比较容易的。
缓存溢出也许是高级一点的exploit(这是hacker的常用手段之一),当然你必须了解如何造成缓存溢出并且会分析溢出的数据,从中找到可以利用的漏洞。
还有telnet、Ddos什么的攻击方法,我是一无所知。
呵呵,我也就知道这些。当然还有很多高级的exploit方法,那就要看你掌握多少知识了。

*
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则