當前位置:
首頁 > 新聞 > 國產指紋庫平台 – 天蠍指紋庫

國產指紋庫平台 – 天蠍指紋庫

前 言


信息收集為滲透測試環節一個非常重要的階段,它關係到後序列策劃攻擊的成功性。快速收集目標服務信息則需要測試人員熟練運用指紋識別技術。



指紋識別概念


組件是網路空間最小單元,Web應用程序、資料庫、中間件等都屬於組件。指紋是組件上能標識對象類型的一段特徵信息,用來在滲透測試信息收集環節中快速識別目標服務。互聯網隨時代的發展逐漸成熟,大批應用組件等產品在廠商的引導下走向互聯網,這些應用程序因功能性、易用性被廣大用戶所採用。大部分應用組件存在足以說明當前服務名稱和版本的特徵,識別這些特徵獲取當前服務信息,從而進行一系列滲透測試工作。


指紋識別方式


網上描述指紋識別方式的文章很多,以下是我在實際測試中使用的幾種方式


1.特殊文件的md5值匹配


2.請求響應主體內容或頭信息的關鍵字匹配


3.請求響應主體內容或頭信息的正則匹配


4.基於Url關鍵字識別


5.基於TCP/IP請求協議識別服務指紋



指紋識別詳解


相關廠商下的cms(內容管理系統)程序文件包含說明當前cms名稱及版本的特徵碼,如Discuz官網下robots.txt文件。



2.計算網站所使中間件或cms目錄下靜態文件的md5值,md5碼可以唯一地代表原信息的特徵。靜態文件包括html、js、css、image等,建立在站點靜態文件存在的情況下訪問,如 Dedecms 官網下網站根目錄URL「/img/buttom_logo.gif」圖片文件。



3.請求訪問外網埠映射設備,獲取其響應頭信息。根據相關規則,匹配特徵字元。如請求天融信VPN設備外網映射URL獲取響應頭信息。



4.TCP/IP協議簇通信交互,IP用來把邏輯地址分配到網路機器,TCP使用網路公認方式傳送IP數據包。網路上的通信交互均通過TCP/TP協議簇進行,操作系統也必須實現該協議。操作系統根據不同數據包做出不同反應。如Nmap檢測操作系統工具通過向目標主機發送協議數據包並分析其響應信息進行操作系統指紋識別工作。




5.Socket,又稱為「套接字」,應用程序可以通過「套接字」向網路發出請求或者應答網路請求。Socket對TCP/TP協議進行封裝,是一個通信鏈的句柄。掃描網路中數據存儲服務,利用Socket編程介面,獲取網路字元輸出流,進行指紋識別工作。下面是我寫的一個例子。



上圖為Nmap服務識別文件中的一段mssql資料庫的指紋信息,以下為mssql資料庫各

版本信息。




我在本地搭建了一個mssql2008資料庫,使用java自帶的socket api,socket請求192.168.1.107的mssql資料庫服務,獲取socket字元輸出流。把hex字元轉換為10進位字元,同時獲取socket 字元輸入流進行單位元組轉碼,生成一串16進位字元(去除後4位字元)。這串16進位字元用以識別msssql資料庫版本。下面是此例子的識別結果。





由圖可見,socket發送網路請求,並識別出mssql資料庫及版本信息。


指紋識別的例子有很多,大部分都是以指紋識別方式中的幾種為主,在此就不詳細說明了。


指紋識別工具


像國外一些開源指紋識別工具一樣,如whatweb、wapplyzer等,我們也開發了一款指紋識別工具「大禹」。「大禹」為一款c/s結構jar文件工具,只需本地安裝java環境,設置相關參數就可以使用,具體參數詳解請看下文。


下載地址:https://github.com/Ms0x0/Dayu


開源工具使用說明:



-u 一個域名或IP,如果輸入更多域名或IP使用『,』分隔;


-r 讀取本地域名或IP文件地址;


-t 輸入一個線程數量,默認線程為50;


-p 設置一個請求埠,默認埠為80;

-s 設置一個請求協議,默認請求協議為http.(http、https);


-h 查看使用幫助;


-o 輸出識別結果到本地文件;


-m 選擇一個常規識別模式,默認使用模式為1;(1:快速識別一條指紋 2:獲取命中率高的指紋 3:得到所有匹配的指紋)


–http-request 設置一個自定義請求URL;


–http-response 設置一個自定義關鍵字元。(支持正則表達式字元,注意字元大小寫,自定義枚舉指紋字元)



註:自定義識別模式參數為 –http-request /robots.txt –http-response discuz,不能和-m 常規識別模式一起使用。-u和-r參數不能同時使用。常規識別模式為3個選擇項,模式1為匹配指紋庫快速獲取一條識別指紋;模式2為獲取命中率高的指紋;(原理為假如一個url在識別的過程中同時命中2條dedecms指紋、1條discuz指紋、1條phpcms指紋,我們這時候優先選擇識別為dedecms程序,這種情況很少出現,但是也作為考慮方面); 模式3為人工分析,獲取所有匹配命中的指紋進行分析輸出識別結果。詳情請看github開源說明文檔。






上圖為「大禹」指紋識別情況,識別速度、識別準確率視情況而定,指紋庫以及網路請求都是指紋識別的要素。


指紋識別平台


以上閑扯了那麼多,那麼是時候開大招了,剛才也說了,市面上的指紋識別工具多如牛毛,那麼為什麼我們還要做呢?其實大家也看到了,指紋工具好寫,而真正的難處,在於有沒有一個好的指紋庫。而我們的目的就是做出一個較為全面的指紋庫,指紋庫才是我們真正的目的,我們的目標是就是做出安全行業通用指紋平台。


於是

,有了下面的「Web」平台,這個平台就是一個開源的指紋庫,包含操作系統,硬體設備,web,中間件,應用程序等指紋,因為是開源的,所以大家可以直接下載資料庫,這樣以後小夥伴寫一些神器的時候,就可以直接導入了。


作者:巴不得1個CMS有20個指紋,這樣識別更精準了……


「大禹」指紋識別工具因本地化、指紋庫手動更新等原因給大家帶來不便,因此我們線上推出了破曉團隊-天蠍指紋識別平台,以「大禹」工具程序為基礎,我們進行結構修改,完成在線指紋識別功能。


平台地址:

http://www.secbug.org:8080/

匿名用戶:路人甲 密碼:lurenjia


指紋平台說明如下:




平台首頁說明




查詢使用ecshop程序的站點




平台部分指紋說明


資料庫結構說明 :


User(用戶表):保存用戶基本信息,包括用戶昵稱、用戶密碼、註冊IP、當前狀態等;


Recognitiontype(識別類型表):保存平台識別方式信息,包括ID、識別方式名稱;


Programtype(程序類型表):保存程序類型信息,包括ID、程序類型名稱;


Manufacturer(廠商表):保存廠商相關信息,包括ID、廠商公司名稱、廠商官網地址、用戶表主鍵Id等;


Fingerprint(指紋表):保存指紋相關信息,包括程序名稱、識別url、識別內容、識別版本、廠商表主鍵ID、用戶表主鍵ID等;


Job(任務表):保存任務啟動相關信息,包括階段性進度、創建時間、當前狀態等;


Result(結果表):保存識別結果信息,包括識別路徑、任務表主鍵Id、指紋表主鍵Id等。


以上資料庫結構詳情請看github上的README文件。



平台無需登錄即可查看廠商列表以及使用查詢功能,平台用戶註冊後,可上傳或選擇廠商添加自己的指紋,同時打開個人中心查看上傳廠商或指紋狀態信息,英雄榜實時排名,記錄用戶提交情況。獎勵情況請查看平台說明。


在線指紋識別平台和「大禹」本地識別工具各有各的優勢,大家視自身情況為主。



全文結言


指紋識別離不開指紋庫的強大,我們在追求指紋開源的同時,也希望大家能積極在我們平台上提交指紋。目前已有幾位大牛在支持我們的想法,在此感謝@0nise @borther @Catsay @北風飄然,當然還有不留名的路人甲人士。



希望更多的安全圈的朋友能夠一起來完善,做出一個真正國內可用,

好用的,屬於大家的平台,是我們的目標!


*本文作者破曉,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

全球網友來晒圖 | 那些被WannaCry病毒攻擊感染的場景
戰鬥的民族:過去8年被繩之以法的8名俄羅斯黑客

TAG:FreeBuf |