CMS指纹识别技术及应用

CMS指纹识别技术及应用

simeon
javascript

在web***过程当中,对目标网站的指纹识别比较关键,经过工具或者手工来识别CMS系统是自建仍是二次开发,仍是直接使用公开的CMS程序相当重要。经过获取的这些信息来决定后续***的思路和策略。CMS指纹识别是***测试环节一个很是重要的阶段,是信息收集中的一个关键环节。php

1.1.1指纹识别技术简介及思路

1. 指纹识别技术css

组件是网络空间最小单元,Web应用程序、数据库、中间件等都属于组件。指纹是组件上能标识对象类型的一段特征信息,用来在***测试信息收集环节中快速识别目标服务。互联网随时代的发展逐渐成熟,大批应用组件等产品在厂商的引导下走向互联网,这些应用程序因功能性、易用性被广大用户所采用。大部分应用组件存在足以说明当前服务名称和版本的特征,识别这些特征获取当前服务信息,也即代表该系统采用那个公司的产品,例如论坛经常使用Discuz!来搭建,经过其robots.txt等能够识别网站程序是采用 Discuz!html

2. 指纹识别思路java

   指纹识别能够经过一些开源程序和小工具来进行扫描,也能够结合文件头和反馈信息进行手工判断,指纹识别主要思路:python

(1)使用工具自动判断laravel

(2)手工对网站的关键字、版权信息、后台登录、程序版本、robots.txt等常见固有文件进行识别、查找和比对,相同文件具备相同的md5值或者相同的属性。git

1.1.2指纹识别方式

网上文章对指纹识别方式进行了分析和讨论,根据笔者经验,能够分为如下一些类别:github

1.基于特殊文件的md5值匹配web

基于web网站独有的favicon.ico、css、logo.ico、js等文件的md5 比对网站类型,经过收集CMS公开代码中的独有文件,这些文件通常轻易不会更改,经过爬虫对这些文件进行抓取并比对md5值,若是同样,则认为该系统匹配。这种识别速度最快,但可能不许确,由于这些独有文件可能在部署到真实系统中会进行更改,那么就会形成很大的偏差。

(1)robots.txt文件识别

相关厂商下的cms(内容管理系统)程序文件包含说明当前cms名称及版本的特征码,其中一些独有的文件夹以及名称都是识别cms的好方法,如Discuz官网下robots.txt文件。dedecms官网http://www.dedecms.com/robots.txt文件内容:

Disallow: /plus/feedback_js.php

Disallow: /plus/mytag_js.php

Disallow: /plus/rss.php

Disallow: /plus/search.php

Disallow: /plus/recommend.php

Disallow: /plus/stow.php

Disallow: /plus/count.php

看到这个基本能够判断为dedecms。

(2)计算机md5值

计算网站所使中间件或cms目录下静态文件的md5值,md5码能够惟一地表明原信息的特征。静态文件包括html、js、css、image等,创建在站点静态文件存在的状况下访问,如 Dedecms 官网下网站根目录http://www.dedecms.com/img/buttom_logo.gif图片文件,目前有一些公开程序,经过配置cms.txt文件中的相应值进行识别,如图1所示。

1.jpg

图1对图片文件进行md5计算并配置

2.请求响应主体内容或头信息的关键字匹配

请求响应主体内容或头信息的关键字匹配方法能够寻找网站的css 、js代码的命名规则,也能够找关键字,以及head cookie等等,可是弊端是收集这些规则会耗费好久的时间。

3.基于Url关键字识别

基于爬虫爬出来的网站目录比对web信息,准确性比较高,可是若是改了目录结构就会形成问题,并且一部分网站有反爬虫机制,会形成一些困扰

4.基于TCP/IP请求协议识别服务指纹

   一些应用程序、组建和数据库服务会有一些特殊的指纹,通常状况下不会进行更改。网络上的通讯交互均经过TCP/TP协议簇进行,操做系统也必须实现该协议。操做系统根据不一样数据包作出不一样反应。如Nmap检测操做系统工具经过向目标主机发送协议数据包并分析其响应信息进行操做系统指纹识别工做,其扫描命令为“nmap –O 192.168.1.1”。

5.在owasp中识别Web应用框架测试方法

(1)http头。查看http响应报头的X-Powered-By字段来识别,能够经过netcat来识别,使用netcat 127.0.0.1 80对127.0.0.1主机的80端口web服务器框架进行识别。

(2)Cookies。一些框架有固定的Cookies名称,这些名称通常状况都不会更改,例如zope三、cakephp、kohanasesson、laravel_session。

(3)Html源代码。html源代码中包含注释、js、css等信息,经过访问这些信息来判断和确认cms系统框架。在源代码中经常会包含powered by、bulit upon、running等特征。

(4)特殊文件和文件夹

1.1.3国外指纹识别工具

1.whatweb

公司官方站点https://www.morningstarsecurity.com/research/whatweb,下载地址:https://github.com/urbanadventurer/WhatWeb。最新版本为0.4.9,Whatweb 是一个开源的网站指纹识别软件,它能识别的指纹包括 cms 类型、博客平台、网站流量分析软件、javascript 库、网站服务器,还能够识别版本号、邮箱地址、帐户 id、web 框架模块等。

(1)Whatweb安装

Whatweb 是基于 ruby 语言开发,所以能够安装在具有 ruby 环境的系统中,目前支持 Windows/Mac OSX/Linux。kali Linux下已经集成了此工具。

debian/ubuntu系统下:apt-get install whatweb

git clone https://github.com/urbanadventurer/WhatWeb.git

(2)查看某网站的基本状况

whatweb -v https://www.morningstarsecurity.com/,执行效果如图2所示,加参数v是显示详细信息。

2.jpg

图2显示详细信息

(3)结果以 xml 格式保存到日志

whatweb -v www.morningstarsecurity.com --log-xml= morningstarsecurity.xml

(4)Whatweb 列出全部的插件

whatweb -l

(5)whatweb 查看插件的具体信息

whatweb --info-plugins="插件名"

(6)高级别测试

whatweb --aggression(简写为-a)参数,此参数后边能够跟数字1-4分别对应4个不一样的等级。

1 Stealthy    每一个目标发送一次 http 请求,而且会跟随重定向

2 Unused     //不可用。(从2011年开始,此参数就是在开发状态。)

3 Aggressive    每一个目标发送少许的 http 请求,这些请求是根据参数为1时结果肯定的

4 Heavy    每一个目标会发送大量的 http 请求,会去尝试每个插件

命令格式:whatweb -a 3 www.wired.com

(7)快速扫描本地网络并阻止错误

whatweb --no-errors 192.168.0.0/24

(8)以https前缀快速扫描本地网络并阻止错误

whatweb --no-errors --url-prefix https://192.168.0.0/24

2.wapplyzer

Wappalyzer的功能是识别单个URL的指纹,其原理就是给指定URI发送HTTP请求,获取响应头与响应体并按指纹规则进行匹配。Wappalyzer是一款浏览器插件,经过Wappalyzer能够识别出网站采用了那种web技术。它可以检测出CMS和电子商务系统、留言板、javascript框架,主机面板,分析统计工具和其它的一些web系统。公司官方网站:https://www.wappalyzer.com,源代码下载地址:https://github.com/AliasIO/Wappalyzer

(1)Firefox添加Wappalyzer

   Wappalyzer一般是附加在浏览器中,在firefox中经过获取附加组件,添加Wappalyzer搜索并安装便可。经测试在Chrome中也能够经过附加来使用,其使用方法很简单,经过浏览器访问地址,单击浏览器地址栏最右上方的弧形图标便可获取某网站服务器、脚本框架等信息,效果如图3所示。

3.jpg

图3获取运行效果

3.whatruns

   https://www.whatruns.com/是单独为chrome开发的一款cms指纹识别程序,跟Wappalyzer安装相似,安装完成后,经过</>图标来获取服务的详细运行信息,效果如图4所示。对比Wappalyzer,whatruns获取的信息要多一些。

4.jpg

图4whatruns识别应用程序

4. BlindElephant

BlindElephant是一款Web应用程序指纹识别工具。该工具能够读取目标网站的特定静态文件,计算其对应的哈希值,而后和预先计算出的哈希值作对比,从而判断目标网站的类型和版本号。目前,该工具支持15种常见的Web应用程序的几百个版本。同时,它还提供WordPress和Joomla的各类插件。该工具还容许用户本身扩展,添加更多的版本支持。官方站点:http://blindelephant.sourceforge.net/,kali中默认安装该程序,缺点是该程序后续基本没有更新。程序下载地址:

https://sourceforge.net/code-snapshots/svn/b/bl/blindelephant/code/blindelephant-code-7-trunk.zip

(1)安装

cd blindelephant/src

sudo python setup.py install

(2)使用BlindElephant

BlindElephant.py www.antian365.com wordpress

5. Joomla security scanner

Joomla security scanner能够检测Joomla整站程序搭建的网站是否存在文件包含、sql注入、命令执行等漏洞。下载地址:https://jaist.dl.sourceforge.net/project/joomscan/joomscan/2012-03-10/joomscan-latest.zip

使用命令:joomscan.pl –u www.somesitecom

该程序自2012年后没有更新,对旧的joomla扫描有效果,新的系统须要手动更新漏洞库。

6. cms-explorer

cms-explorer支持对Drupal,wordpress ,Joomla,Mambo程序的探测,该程序后期也未更新。其下载地址为:https://code.google.com/archive/p/cms-explorer/downloads

7. plecost

plecost默认在kali中安装,其缺点也是后续无更新,下载地址:

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/plecost/plecost-0.2.2-9-beta.tar.gz

使用方法:

plecost -n 100 -s 10 -M 15 -i wp_plugin_list.txt 192.168.1.202/wordpress

8.总结

   国外目前对cms指纹识别比较好的程序为whatweb、whatruns和wapplyzer,其它cms指纹识别程序从2013年后基本没有更新。在进行web指纹识别***测试时能够参考fuzzdb,下载地址:https://github.com/fuzzdb-project/fuzzdb,里面有很多有用的东西。

1.1.4国内指纹识别工具

1.御剑web指纹识别程序

御剑web指纹识别程序是一款CMS指纹识别小工具,该程序由.NET 2.0框架开发,配置灵活、支持自定义关键字和正则匹配两种模式、使用起来简洁、体验良好。在指纹命中方面表现不错、识别速度很快、但目前比较明显的缺陷是指纹的配置库偏少。

2. Test404轻量WEB指纹识别

Test404轻量WEB指纹识别程序是一款CMS指纹识别小工具,配置灵活、支持自行添加字典、使用起来简洁、体验良好。在指纹命中方面表现不错、识别速度很快。软件下载地址:http://www.test404.com/post-1299.html,运行效果如图5所示,可手动更新指纹识别库。

5.jpg

图5Test404轻量WEB指纹识别

3. Scan-T 主机识别系统

Scan-T(https://github.com/nanshihui/Scan-T)结合Django和Nmap,模仿了相似Shodan的东西,可对主机信息进行识别,可在线架设。架设好的系统界面如图6所示。

6.jpg

图6Scan-T主机识别系统

4. Dayu主机识别系统

Dayu(https://github.com/Ms0x0/Dayu)是一款运行在Java环境的主机识别软件。运行时须要将Feature.json指纹文件放到D盘根目录(d:\\Feature.json),如无D磁盘,请自行下载源码更改org.secbug.conf下Context.java文件中的currpath常量,其主要命令有:

java -jar Dayu.jar -r d:\\1.txt -t 100 --http-request / --http-response tomcat

java -jar Dayu.jar -u www.discuz.net,www.dedecms.com -o d:\\result.txt

java -jar Dayu.jar -u cn.wordpress.org -s https -p 443  -m 3

该软件共有500多条指纹识别记录,可对现有的系统进行识别。

1.1.5在线指纹识别工具

   目前有两个网站提供在线指纹识别,经过域名或者ip地址进行查询。

1.云悉指纹识别

http://www.yunsee.cn/finger.html

2.bugscaner指纹识别

http://whatweb.bugscaner.com/look/

1.1.6总结与思考

   经过对国内外指纹识别工具进行实际测试,发现国外whatweb、whatruns和wapplyzer三款软件后续不断有更新,识别效果相对较好。Test404轻量WEB指纹识别和御剑指纹识别可以对国内的CMS系统进行识别。

1.在对目标进行***测试信息收集时,能够经过whatweb、whatruns和wapplyzer等来进行初步的识别和交叉识别,判断程序大体信息。

2.经过分析Cookies名称、特殊文件名称、html源代码文件等来准确识别CMS信息,而后经过下载对应的CMS软件来进行精确比对,甚至肯定其准去版本。

3.针对该版本进行漏洞测试和漏洞挖掘,建议先在本地进行测试,而后再在真实系统进行实际测试。

4.指纹识别能够结合漏洞扫描进行测试。

 更多***文章能够访问本人专栏:******入门到实践,让SQLmap子*弹飞一下子 连接地址: https://blog.51cto.com/cloumn/detail/3

参考文章及资源下载:

http://www.freebuf.com/articles/2555.html

https://zhuanlan.zhihu.com/p/27056398

https://github.com/urbanadventurer/WhatWeb

https://github.com/dionach/CMSmap

https://pan.baidu.com/share/link?shareid=437376&uk=3526832374

http://blindelephant.sourceforge.net/

https://github.com/iniqua/plecost

https://wappalyzer.com/

https://github.com/Ms0x0/Dayu

相关文章
相关标签/搜索