您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Vxworks加密漏洞的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
對工控固件(一般為vxworks)的分析有固定的步驟,總結如下:
1.用binwalk查看固件基本信息并解壓固件;
2.確認解壓固件的信息如CPU類型,編譯固件使用的大頭序;
3.確定固件的加載地址,一般為0x10000(原文中未對如何找加載地址進行解讀);
4.用IDA pro反匯編程序,并修復固件中的函數名;
5.找到對應的漏洞函數進行分析。
由于原文中未對如何找出固件加載地址進行說明,也未對最后碰撞hash值的過程進行說明。在這樣的疑惑下,本人對這兩個問題進行了進一步的解析:
一是找出了靠譜的計算固件加載地址的方法(這里要感謝"工匠安全實驗室"的大哥給出的思路);
二是通過編寫程序,碰撞出多個同一hash值的多個key解。
固件加載地址的計算是通過vxworks固件中的函數符號表計算得出的。在固件中,與函數字符串相關的有兩個地址,一個是在固件中字符串的存儲地址;另一個是固件中保存的函數字符串的內存地址。這兩個地址相減,就能得出固件的加載地址。因此,我們只需要定位到一個固定的字符串,找到它在固件中的位置以及在內存中加載它的地址,就能算出固件的加載地址了。在winhex中搜索APP_STATION這個字符串(該字符串有它的特殊性,它是函數字符表中的最后一個字符串,見下圖,如果搜不到該字符串,按照這種方式找到字符表的最后一個字符串也是可以的),記下它在固件中的地址為0x26656c。
下一步還需要找到該字符串在內存中的加載地址,根據函數符號表的特點,它的內存加載地址為符號表的起始位置。在binwalk中可以查看vxworks的字符表的大致起始位置,如下圖所示,binwalk計算的符號表的起始位置為0x301E74。
需要說明的是,這個值不一定準確,還需在winhex中進一步確認。在winhex中跳轉到0x301E74,如下圖所示。圖的右側出現了很規律的".....'e..."的列。這種規律復合函數符號表的排列方式,因此,根據排列規律,符號表的起始位置應該為0x301E64。
在這個地址存儲的是字符串的內存地址為0x27656C,而且可以看到,字符串的地址是倒序排列,所以這個地址就是前面的最后一個字符串的內存地址。
那么,加載地址為字符串的內存地址減去字符串地址有:0x27656C - 0x26656C =0x10000
算出了固件的加載地址,當我們加載固件后,需要修復函數名該怎么辦呢?可以利用函數名修復腳本完成這一操作,使用的腳本如下圖所示:
在對具體的工控固件進行函數名修復時,腳本中有三個值需要注意下。loadaddres即是剛剛算出的加載地址,eaStart即是函數符號表的起始地址為0x301E64,eaEnd是函數符號表的結束地址,這個地址怎么找,還是只有根據符號表的規律來找。如下圖所示,符號表會規律的排列,這種規律排列在0x3293a4結束,因此,這個地址即為符號表的結束地址。
這樣,才可以順利地加載并運行該腳本。
先通過固件逆向分析loginDefaultEncrypt函數,在IDA Pro中可以看到loginDefaultEncrypt函數的反匯編情況,結合vxworks給出的源碼,可重寫該函數為:
在函數里可以看到,輸入的密碼key長度有限制,長度得大于8,小于40。而hash值cQwwddSRxS的長度為10。經分析發現,長度為9和10的key都可能會產生長度為10的hash值。因此,本人先通過編寫程序隨機生成長度為10的密碼本,代碼如下,為shell腳本。
在大for循環中,共生成了100萬個長度為10的密碼。在shell中運行該程序:
./10pass.sh > 1.txt #將隨機密碼輸出到1.txt文件中。
再編寫程序循環讀入密碼本中隨機生成的密碼,采用已經寫好的loginDefaultEncrypt函數算出密碼對應的hash值;最后,與題目給出的hash值進行比較,如算出的hash與題目hash的值相等,則視為碰撞出了key值。下面是給出程序的main函數,在函數中可以清楚地看到每一步的操作。
用gcc編譯:gcc -o guesshash ./guesshash.c,運行,碰撞出的結果如下圖所示。
可以看到,這確實是一個很弱的加密算法,100萬個隨機密碼就碰撞出11個hash值相同的結果。
關于“Vxworks加密漏洞的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。