您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Satori指紋識別原理及dhcp分析是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。Satori是被動識別中的一款獨樹一幟的軟件,和ettercap等軟件不同,它專門采用dhcp進行識別。本文通過對satori進行測試、讀源碼對其識別機制進行簡單的分析,并在最后一部分對Satori開發者的paper進行了解讀。
解壓后有如下幾個文件
其中,dhcp.xml和tcp.xml在下文會詳細分析,p0f.fp,p0fa.fp是和p0f的指紋庫相同的,稍微了解即可,如下所示。 P0f.fp是分析syn指紋
P0fa.fp是分析synack的指紋
運行測試一下
1和149都是win7,但是沒有非常精確地識別出來 因為我命令里加了-d,所以會打印出指紋,猜想應該是根據收到的數據包對比指紋庫,然后給出結果
以192.168.96.1為例
[12] 表明可能屬于該系統的權重,值越大,越有可能 該數字來源于dhcp.xml中給出的特征及權重 在dhcp.xml中找到vista的指紋
結合上一張截圖,第一條
,權重為5 第二條
,權重為5 第三條
,權重為2 5+5+2=12;所以192.168.96.1為vista的權重為12 在試一下windows2000,驗證一下猜想 Windows2000的指紋如圖
它所有特征中只匹配
和
權重加起來是7 我又測了一臺centos
Satori沒有猜測出可能是什么系統 我手動在指紋庫中匹配,也沒有找到
結合抓包分析
以192.168.96.1為例 在探測時,輸出的是
對應satori.pcap第一個包
Option分別是53,61,12,60,55,255(末尾,可忽略) 命中指紋庫中的
Option55展開,分別是1,15,3,6,44,46,47,31,33,121,249,43,252 命中指紋庫中的
Option60展開 Vendorclass identifier為MSFT5.0
命中指紋庫
所以vista的權重為5+5+2=12 結合DHCP協議分析: DHCP一共有8種報文,分別為DHCPDiscover、DHCPOffer、DHCPRequest、DHCPACK、DHCPNAK、DHCPRelease、DHCPDecline、DHCPInform。各種類型報文的基本功能如下:
以這次抓到的流量來看,有三種報文,分別是DHCPRqeuest,DHCP ACK,DHCP Inform. 只分析DHCPInform的option
53表示報文類型 RFC2132(https://tools.ietf.org/html/rfc2132?spm=a2c4e.11153940.blogcont491032.62.60a34540ToTPN5)可以看到type為8表示inform
61(RFC2132)是客戶端ID,DHCP客戶端使用此選項指定其唯一標識符,可以包含硬件類型和硬件地址
12(RFC2132)表示hostname,指定客戶端名稱
60被用來選擇性地標識DHCP客戶端的供應商類型和配置
這里存在如下對應關系 MSFT5.0 <--> windows dhcpcd4.0.1 <--> 安卓2.2 dhcpcd4.0.15 <--> 安卓3.0 dhcpcd-5.2.10<--> 安卓4.0 dhcpcd-5.2.10:Linux-3.0.13:armv7l:MT6577<--> 小米手機 dhcpcd-5.5.6<--> 安卓4.2 udhcp1.19.4 <--> 極路由或其它路由器 55被用來請求指定配置參數的值。請求的參數列表指定為n個八位字節,其中每個八位字節是RFC2312中定義的有效DHCP選項代碼
255表示有效信息的結束
開發Satori的人寫了篇paper介紹如何通過dhcp數據包被動識別os指紋(http://chatteronthewire.org/papers.htm,chatter-dhcp.pdf),這部分是我根據paper寫出理解后的筆記: 對于被動指紋識別而言,DHCP的一個優點就是它是廣播包,當一個dhcp客戶端要加入時,他們會向所有人發送廣播(所以在wireshark抓到的包中目的地址是255.255.255.255)。 作者首先介紹了最麻煩的方案: 利用捕獲中顯示的數據包的實際時間,每個DHCP數據包之間的差異,數據包的類型,存儲在SecondsElapsed字段中的值以及該數據包集合上的TransactionID等等來區分操作系統,如windows95和windows98等版本的比較
再介紹了簡單的方案: 通過options識別操作系統。
首先介紹通過option55(Satori最主要的方案): 利用選項55中請求的參數以及請求它們的順序來識別操作系統 比如window各個版本的差異
Fedora和centos的
由于很多linux底層dhcp堆棧相同,如下圖所示
使用option55不足以識別,所以針對linux,作者提出可以加以option51(客戶希望的租用時間),option57(告訴DHCP服務器它可以接受的DHCP數據包的大小)輔助。 然后又介紹了通過其他options輔助識別os option61,用作將客戶端鏈接到其租約的唯一標識符 可用于識別MSRRAS服務器
上圖是一臺MSRRAS Server,value等于01+ RAS + ‘ ‘ + MAC + 000000000000 而下圖是一臺思科的設備
Option77是用戶類信息,它通常用于幫助識別某種類型的計算機或用戶類別 比如下圖
接著介紹從PXEboot中進行區分
相關的option包括: Option93,客戶端系統的架構;通過option93可以識別底層硬件
Option94,客戶端網絡設備接口
最后作者指出,可以利用租約信息來進行識別 可以觀察當租約到期時,有多少操作系統實際更新了他們的IP地址,哪些等待直到下次重啟來識別。 下面是繼續使用ip地址的系統
下面是當前已經擁有地址,然后發送dhcprenewel請求的系統
上述就是小編為大家分享的Satori指紋識別原理及dhcp分析是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。