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

相關文章
相關標籤/搜索