目前我正在簡化在安全審計中提取Windows密碼散列的過程。就我個人而言,當我進行審計時,我想讓該過程更容易生成已恢復用戶及其密碼的列表。我認爲這對其他試圖比較和生成大量數據的人也有用。實現數據結構來比較NTLM散列文件
所以這裏的要點是:
當我提取所有從Windows系統文件中的數據,我簡化他們到格式的用戶:「a87f3a357d73085c45f9416be5787e86」散列,其中散列是NTLM哈希如
然後我會使用oclHashcat並試圖破解哈希,不管它是字典還是蠻力,都沒關係。我生成了所有已恢復散列的輸出,但是Hashcat使用hash:password格式生成它們。
現在,這裏是我的問題,我想要什麼輸入 - 我想產生的輸出作爲用戶:輸入文件給出的兩個密碼。考慮到我可以擁有數百個哈希,但只有少數恢復的密碼,因此沒有必要嘗試對列表進行排序。
我不確定哪種數據結構可能最有益於我。對於大型表格,數組效率太低。我研究過序列化,並且我一直在探索使用哈希映射和哈希表。鑑於哈希的大小,我沒有任何運氣實現這些方法,或者我做得不正確。
目前我正在運行的程序,像這樣:
program [user:hash file] [hash:password file] -o [user:password output]
而且我有效嘗試運行的程序,像這樣(簡述):
Load Files
// user:hash file
For each line, split by ':' delimiter
before delimiter = table1.user
after delimiter = table1.hash
// hash:password file
For each line, split by ':' delimiter
before delimiter = table2.hash
after delimiter = table2.password
// generate user:password file
Check each entry of table1 vs table2
if table1.hash = table2.hash
table1.user = output.user
table2.password = output.password
print to output "output.user:output.password"
我只是想圖找出一種有效的方法來追蹤每一行,並將必要的數據提取到一個我可以輕鬆追蹤的數據結構中。
如果我需要澄清任何事情,請讓我知道。任何幫助表示讚賞!
您能詳細說明一下哈希函數的問題嗎?另外,你爲什麼要實現你的哈希而不是使用stl中的哈希? – RonaldBarzell
嗯,我想我是不正確地實施他們開始。但後來我開始懷疑是否還有其他更好的方法來存儲這些數據。 我使用哈希的原因是因爲它們是來自Hashcat和其他軟件的輸出,我需要那些用於比較。 – Signus