成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析QNX系統的shadowed密碼Hash格式

安全 數據安全
QNX(Quick UNIX)是一個unix家族的實時操作系統,它遵從POSⅨ規范,目標市場主要是嵌入式系統。QNX成立于1980年,是加拿大一家知名的嵌入式系統開發商。

QNX(Quick UNIX)是一個unix家族的實時操作系統,***發行于1980年,2010年被黑莓公司收購。QNX通常用于嵌入式系統中,在企業服務器領域并不常見。參考資料[1]的博客中有一些QNX安全評估和滲透測試的信息。

[[161316]]

QNX是一種商用的類Unix實時操作系統,遵從POSⅨ規范,目標市場主要是嵌入式系統。QNX成立于1980年,是加拿大一家知名的嵌入式系統開發商。

QNX的應用范圍極廣,包含了:控制保時捷跑車的音樂和媒體功能、核電站和美國陸軍無人駕駛Crusher坦克的控制系統,還有RIM公司的BlackBerry PlayBook平板電腦。

如果你有幸在滲透測試或研究中接觸過QNX主機,你可能會意識到/etc/shadow文件下的shadowed密碼使用了一種不常用的格式。本文中的這些經驗能夠幫助你理解其原理,并且告訴你如何爆破這種格式的hash值。

可輸出的hash格式

QNX系統將/usr/bin/passwd中的二進制以可輸出的格式生成到/etc/shadow文件中。它包含了生成和解析這些hash值的所有邏輯數據,這是逆向這個格式的***資源。

這個文件支持好幾種hash加密方法:MD5,SHA-{256,512},以及QNX遺留的不安全加密實現(參見CVE-2000-0250)。他們分別命名為md5_crypt,sha2_crypt,qnx_crypt。

另外,其同時還支持解析明文密碼的plain_crypt方法,但是這個你需要手動修改/etc/shadow。 有趣的是,SHA-1支持比較老的版本,但是由于沒有鏈接庫調用路徑,所以沒有辦法使用。

QNX Neutrino 6.6.0默認的hash方法是SHA-512,1000輪計算,并附帶16字節的鹽值(參考[2])。 用SHA-512對用戶賬號密碼附加8字節的鹽值做1000輪的計算生成的結果如下:

淺析QNX系統的shadowed密碼Hash格式

 

這是MD5和SHA-{256,512}的通用格式。QNX的hash加密方法,格式上很像傳統的Linux DES加密字符串。

1.Shadowed密碼文件用冒號(:)分割得到下面接個段:
2.username – 用戶名
3.@S,100@386d...truncated...da5d@129b6761 –可輸出的hash字符串(根據使用hash方法的不同而不同)
4.1448613322 – 設置密碼時產生的時間戳
5.0 – 未知
6.0 – 未知

面我還未找到***兩個值是用來干嘛的,但這兩個值總為0也許跟不可使用的賬戶有關。

可輸出的hash字符串又被@符號分割成下面這幾個段:

S,100 –前面表示使用的hash方法,后面表示加密計算輪數
S -- SHA-512
s -- SHA-256
m -- MD5
p – 明文密碼
386d...truncated...da5d – 使用hash方法計算出的16進制結果
129b6761 – 16進制鹽值

Hash密碼例子

下面所有的例子都是密碼的hash值

SHA-512加密, 1000輪, 16字節鹽值

username:@S@60653c9f515eb8480486450c82eaad67f894e2f4828b6340fa28f47b7c84cc2b8bc451e37396150a1ab282179c6fe4ca777a7c1a17511b5d83f0ce23ca28da5d@caa3cc118d2deb23:1448585812:0:0

SHA-512加密, 1000輪, 8字節鹽值

username:@S@386d4be6fe9625c014b2486d8617ccfc521566be190d8a982b93698b99e0e3e3a18464281a514d5dda3ec5581389086f42b5dde023e934221bbe2e0106674cf7@129b6761:1448585864:0:0

SHA-256加密, 1000輪,16字節鹽值

username:@s@1de2b7922fa592a0100a1b2b43ea206427cc044917bf9ad219f17c5db0af0452@36bdb8080d25f44f:1448585954:0:0

MD5加密, 1000輪, 16字節鹽值

username:@m@bde10f1a1119328c64594c52df3165cf@6e1f9a390d50a85c:1448585838:0:

內部二進制代碼

從QNX Neutrino 6.6.0系統得到的/usr/bin/passwd 二進制并不很令人興奮。 這是一個32位的可執行文件,沒有剪去符號表和libc,ld-linux,linux-gate的動態鏈接,能夠找到shadowed密碼文件的所有hash加密實現。

文件/etc/default/passwd會影響二進制的行為,只有個QNXCRYPT指令存在于文件中時QNX加密方法才會被使用。另外一些有趣的指令,比如STRICTPASSWORD確保密碼使用至少兩個字符集、NOPASSWORDOK允許使用空白密碼。

函數gensalt使用系統時間初始化一個隨機算法來生成一個隨機值,如果想要深入挖掘可以使用initstate,setstate,random,srandom函數。我沒有很詳細看這幾個函數,但是聚合熵少于8字節隨機操作會失敗。 該鹽值是16進制字符串,如果設置為16字節就是16個字符。

qnx_crypt 已經有說明文檔,并且沒有修改。(參考文檔[3])

md5_crypt 使用函數MD5Init, MD5Update, MD5Transform。

sha2_crpyt 使用函數shaXXX_init, shaXXX_update,shaXXX_done,XXX指的是位,如512。

QNX的hash函數是按位偏移的。 Hash函數初始化之后,更新過程如下所示:

digest = update(salt), update(password) * rounds, update(password)

***一次輪數置為0時,是使用密碼來更新hash函數的。 所以摘要被計算出來的時候,1000輪的設置,其實是被計算了1001輪。 除此之外,其他都是標準的。

淺析QNX系統的shadowed密碼Hash格式 

淺析QNX系統的shadowed密碼Hash格式 

淺析QNX系統的shadowed密碼Hash格式 

淺析QNX系統的shadowed密碼Hash格式

QNX 密碼hash值爆破

John the Ripper (即使用了jumbo補丁)和其他通用的工具都不支持QNX shadowed密碼的hash格式。

我嘗試用python的hashlib和passlib模塊重新實現hash函數的邏輯。但是我得到的輸出跟/usr/bin/passwd產生的二進制結果無法匹配。 所用方法的實現都是一致的,所以我意識到QNX的hash函數有一些特有的實現。這是QNX自己實現的代碼,并不依賴于通用的擴展庫, 比如OpenSSL。

我并不是加密專家所以我并沒有花很多的時間去逆向hash函數,但是我看了SHA-2的參考文檔并且似乎QNX就是按照這個方案來實現的。輸出的不同可能是由于他們內部實現的一個奇怪的調整導致的。

如果你想暴力破解hash值,你可以直接在GDB調試中調用它。另一個優雅的實現就是使用dlopen(3) 和dlsym(3)去從C的封裝調用這個函數。

Breakpoint 1, 0x080493c1 in main ()
(gdb) call sha2_crypt(512, "password", "abcd1234abcd1234", "1000")
$1 = 134559360
(gdb) x/s $1
0x8053680 : "@S@1030f372de34b8caac99b481d81ad9b57b923b385edcd3ed84f6721192f5238f34aba739e1d124919bd85c8efe13948593a6b691d8b41c1be5bc9b3906577f5d@abcd1234abcd1234"

參考資料:

[1] The Pentesting QNX Neutrino RTOS blog post from FishNet Security was the best information I could find on QNX for security assessments or penetration tests.

[2] The defaults can be found from the /usr/bin/passwd binary itself or in the online QNX development references.

[3] The qnx_decrypt.c code updated by SilentDream is the best reference for understanding QNX crypt hashes.

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2011-01-27 17:33:10

DalvikAndroidQNX

2009-04-27 22:18:56

2012-05-29 09:48:21

Hadoop

2009-06-12 18:50:34

JBoss控制臺密碼設

2011-09-13 14:37:14

密碼Cisco組網

2019-09-25 09:28:54

Linux系統架構

2011-10-19 10:20:21

RIMBBX OSQNX

2009-12-15 10:28:45

騰達路由器密碼

2012-06-20 09:58:23

Android 4.0通知系統

2015-01-27 13:43:08

QNX

2015-12-09 09:47:56

2010-07-29 11:03:53

Flex代碼格式化

2024-07-26 10:28:51

2011-12-22 11:22:31

2009-07-31 09:00:44

ASP.NET生成隨機

2013-07-17 17:05:08

2011-05-05 17:44:20

2022-08-22 07:38:01

Go語言函數

2009-07-20 09:44:31

DB2外部文件格式

2009-12-17 16:28:07

Linux圖形系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国内精品 | 拍真实国产伦偷精品 | 色吊丝在线 | 久久综合久色欧美综合狠狠 | 日韩欧美国产精品一区二区 | 精品视频在线一区 | 欧美午夜一区 | 国产在线不卡 | www.一区二区 | 亚洲免费一区二区 | 亚洲九九 | 久久高清国产视频 | 国产一区二区观看 | www.久| 毛片一区二区 | 超碰地址 | 国产电影一区 | 国产一区2区 | www久久99| 国产精品久久福利 | 日韩免费在线观看视频 | 国产欧美精品区一区二区三区 | 欧美福利一区 | 男女啪啪高潮无遮挡免费动态 | 亚洲 一区 | 久草网址 | 免费福利视频一区二区三区 | 欧美a在线看 | 欧美一级欧美三级在线观看 | 在线视频亚洲 | 成人av免费在线观看 | 欧美一区二区免费在线 | 国产区久久 | 在线视频一区二区三区 | 亚洲欧美另类在线 | 一级片免费观看 | av中文字幕在线观看 | 91在线一区| 日韩中文字幕在线视频观看 | 日韩欧美久久精品 | 黄网站色大毛片 |