入侵目标之前有一个分析目标主机的阶段,那么现在就来谈一下关于入侵服务器前是如何分析对方的(也就是入侵前的资料搜集,当然搜集到的资料越详尽的帮助就越大),虽然现在一些牛人开发了好用的工具,但是我们总不能依赖着那些X-Scan、流光等全自动的分析,扫描工具。因为要成为高手、大侠也应学会不要依赖工具的思想,这技术才有所提高,同时也因为一般有条件的服务器也有专业的IDS系统,如果盲目的利用这类型的工具,对方的IDS系统就会响个不停,到时候可能你的X-Scan或流光的进度条才完成10%,网警就按你家的门铃了。那我们应该如何来进行入侵前的资料搜集呢?
第一式:WWW服务器应答报文的分析,也就是看看服务器的BANNER(读这里的仅限菜鸟,高手把这个机会留给徒弟们吧)。这种方法在以前是比较常用的,也比较准确。为了有更多的资料给小菜们,我在这里也提一提吧。分析这类的报文件最好用NC来抓取,喜欢图形界面的朋友也可以用“WSockExpert”这个工具.
HTTP/1.1 200 OK
Date: Sun, 20 Feb 2005 00:43:03 GMT
Server: Apache/2.0.48 (Win32) PHP/4.3.1
Accept-Ranges: bytes
X-Powered-By: PHP/4.3.1
Transfer-Encoding: chunked
Content-Type: text/html; charset=gb2312
这行“Server: Apache/2.0.48 (Win32) PHP/4.3.1”就回应出服务器的相关信息,它是使用Windows操作系统,可惜这种方法在现在这个时代的并不准确。因为Banner可以随意来修改,你可以把MS的IIS改成*NUX的APACHE,或改成你自己出品的IIS,只要盖茨不反对你就可以了。那如何分大概分出对的服务器呢?
第二式:对服务器的目录进行访问,看看服务器的回应是怎么样的。一般对直接访问服务器的目录就可以大体分析出对方的系统是*NUX或Windows。例如对方是个产品展示的网站,通常网站都是由图片来增加其色彩的,你可以去访问一下这网站里的图片目录。如:http://localhost/images/a.jpg,你就可以在浏览器里通过 “http://localhost/images”来进行访问。如果对方是MS的IIS,那么一般情况下它会返回的是:“Directory Listing Denied”和“This Virtual Directory does not allow contents to be listed.”这两句话。如果对文件配置了目录索引的,这就会列出文件。
IIS的回应就是这样,如果是Apache的回应又是如何呢,Apache的服务器回应的一般有IIS的禁访问或文件的索引列表。不过它的回应就与IIS的有差别了。下面这个图的图就是Apache返回的信息。以同样的方法去访问相应的目录。当目录存在时,如果目录没有设置默认的文件列表索引,那么它会回应:“403 Forbidden”,并时有回应对文件的服务器的版本信息:
这还告诉我们它的服务器是Apache,且版本是Win32位的2.048,也就是对方的WWW服务器是运行在Windows上的APACHE,够易懂了吧!但是,一些网管不愿这些出错的信息带给访问者,通常会把出错的页面带到正常的页面,如首页或上一页又或者是出错报告的页面。那么,一般的新手也很难分辩出对方在耍什么把戏!下面我们引用一个更合理的分析。
第三式:利用文件名的差异性。对操作系统有所认识的人也许知道文件名的问题。如在Windows系统上,文件名通常是由26个字母和10个啊拉伯数字来组成的。*NUX系统上的也与Windows关系道理上相同,但是有一个不同点的就是Windows上的文件名里的字母大小写并不敏感。也就是“ABC.eXe”和”abC.ExE”认定为同一个文件。而在*NUX系统上,这种事情是不容许的。根据这两种系统的之间的差异性,我们可以有.对性地进行目标分析。如将浏览器访问的页面URL进行变异:例如在浏览器的地址栏上有http://localhost/index.php这个URL,把“/”后面的页面名“.php”改成“.phP”,如果是Windows系统的话,它也会正常访问到这个页面。如果是*NUX系统的,它就会提示找不到这个文件。顺理成章,就这样不费什么工具就可以知道对方是什么来头了。
对服务器的分析只要灵活结合以上的三种方法,95%的系统都可以分析出来。本来我并没有打算写这些的,因为觉得这些方法比较有效,且为了能使爱好者或网管有更好地了解系统方面的知识,努力奋战,写了这些。如果有更好的方法欢迎来黑防论坛探讨!