web-dev-qa-db-ja.com

GPUを使用したMS-CACHE v2ハッシュのクラッキング

ほとんどの人が知っているように、Windowsはドメイン/ AD資格情報をMS-Cache v2と呼ばれる形式でキャッシュします。明らかに、これらはワークステーションでローカルアクセスが取得される侵入テスト中に取得する優れたパスワードになります。

私の理解では、レインボーテーブルを使用してこれらを攻撃することはできません。ただし、JTRとCainを使用することを除いて、ソフトウェアにそれらをクラックするための多くのオプションはありません。具体的には、GPU(4x Nvidiaカード)を使用してこれらをクラックしてみます。あるいは、分散ソフトウェアを実行できれば、それは2番目に妥当な方法です。

次にいくつかの質問:

  • MS-Cacheパスワードを回復するにはどのようなオプションがありますか?

  • MS-Cache(v2)がどのように生成/攻撃されるかの技術的な内訳を誰かが提供できますか?

  • MS-Cache v2は、ドメインコントローラーに保存されている資格情報の暗号化に使用されますか?

編集

MS-Cache v2ハッシュにのみ興味があります。ドメイン内のWindows XP=より古いマシンに遭遇することは一般的にないからです。

14
NULLZ

MS-Cacheは非常にシンプルな形式です。パスワードのMD4ハッシュで、その後に小文字のユーザー名が続き、ハッシュされてMD4( MD4(Unicode(password)) + Unicode(tolower(username)) )になります。 MS-Cacheとv2の技術的な違いはわかりません。しかし、RainbowTable攻撃の影響を受けないことを示唆するものは何もありません(実際、 Cain&Abel は、MS-CacheおよびMS-Cache v2テーブルをサポートしているようです-"追加されたMSCACHE v2ハッシュ暗号解読v4.9.4の「Sorted Rainbow Tables」を介して)。

MS-Cache資格情報は、ドメインコントローラーに保存されません(直接ログオンするユーザーを除く)-ユーザー名に関連するパスワードのMD4ハッシュとして保存されます。あなたは このtechnetの部分 がどのように乱用されているかについて興味があるかもしれません。

GPUアクセラレーションに関しては John the Ripper はMD4をサポートしているようです。それはあなたが求めているものかもしれません。それ以外の場合は、GPUを使用したWindowsパスワードの攻撃について この記事 があり(具体的には、目的に合わせて ighashgp を適応できる場合があります)、以下のコメントでLucasが述べています。 ; rcracki_mt はGPUをサポートしています。

[更新]

MS-Cache v2は openwall.info で(コード付きで)詳細に説明されており、重要なのは PassLib が「DCC2」としても知られていることであり、将来の検索に役立つ可能性があることを示しています(情報はイライラするほど乏しいですが)。それに対する攻撃に関しては、openwallから:

つまり、文字セットとパスワードの長さに応じて、さまざまなサーチスペースを段階的にブルートフォース攻撃すると、時間がかかります。そのため、DCC2ハッシュを攻撃するときに、インテリジェントなパスワード推測(ルールベースの辞書攻撃や確率的攻撃)を行うことをお勧めします。

そのpythonモジュールとPassLibを使用すると、 PyCUDA および PassLib を含む何かをまとめることができるはずですが、それはそうではありません以前に誰によっても行われました。

15
Bob Watson

このページ から、MS-Cache v2の説明が、パスワードの「NTLMハッシュ」とユーザー名(小文字に変換され、「Unicode」にエンコードされている)の連結のMD4ハッシュとして表示されます。 "、これはMicrosoft用語で「リトルエンディアンUTF-16」を意味します)。 「NTLMハッシュ」は、パスワードに対して計算されたMD4です(これもリトルエンディアンUTF-16で存在します)。したがって、ハッシュには2つのネストされたMD4呼び出しが含まれ、ユーザー名によって「ソルト」されます。

レインボーテーブルは、「単なる」事前計算されたテーブルです(多くのスペースを節約するトリックを備えています)。それらは、テーブル構築フェーズ中に遭遇したハッシュをクラックすることができますが、それ以外のものはありません。したがって、特定のユーザー名に対してのみ、MS-Cache v2用のRainbowテーブルをcan作成できます。この表は、他のユーザーのハッシュには適用できません。したがって、このようなテーブルは、多くのドメインでよく見られるユーザー名、つまり「管理者」にとっては意味がありますが、これはまだ適用範囲が限られています。 Cain&Abel は、MS-Cache v2ハッシュでRainbowテーブルを生成および使用するためのサポート(バージョン4.9.43以降)をサポートするふりをしていますが、もちろん、一度に1つのユーザー名をサポートします。

クラックするハッシュが1つしかない場合、テーブルの構築はブルートフォースクラックよりも時間がかかります(をカバーするRainbowテーブルの構築[〜#〜] n [〜#〜]可能なパスワードは1.7 * Nほど時間がかかりますが、ブルートフォースクラッキングの平均コストはです。 =)N/2したがって、テーブルは、少なくとも4つのハッシュされたパスワードをクラックしようとし、MS-Cache v2の場合はすべて同じユーザー名である場合にのみ作成する価値があります。

私は、MS-Cache v2とユーザー名「Administrator」用にすでに計算されたRainbowテーブルを無料で入手できませんでした。


MD4 はMD5の祖先であり、GPUに非常によくマッピングされるため(MD5よりもさらに優れています)、4つのGPUが潜在的なパスワードを毎秒10億回試行できるはずです。 John the Ripper の "ジャンボ"バージョンは GPUでMS-Cache v2をサポート (「MSCash2」という名前で)に文書化されていますが、パスワード生成にはいくつかの非効率があります。サイド(毎秒10億のパスワードをハッシュするには、毎秒10億の潜在的なパスワードを生成生成する必要があります最も意図的なCPUが不足する可能性があります) 。少なくとも、これにより、操作するためのソースコードと、テストに便利な「リファレンス実装」が提供されます。

クアッドコアCore2 2.4 GHz CPUは、GPUをまったく使用せずに、SSE2拡張コードを使用して、毎秒8,000万のMD4ハッシュを計算できるはずです(私の実装では、4800万のSHA-1ハッシュを実行した推定)秒)、毎秒4000万パスワードに変換します。これは、パスワードクラッキング標準により、すでに非常に優れていますが、GPUの方がはるかに効率的です。それは素晴らしいプログラミングの練習になるでしょう。

6
Thomas Pornin

あなたが試すべき非常に良いツールは oclHashcat で、これはGPUのみハッシュクラッカーで、WindowsおよびLinuxおよびmulti-GPUもサポートします。

このソフトウェアには、便利な2つのバージョンがあります。oclHashcat-liteは単一のハッシュクラッカーであり、oclHashcat-plusです。同時に最大1500万ハッシュをクラックできます。

たとえば、この行に続くコマンドラインパラメータを使用すると、ブルートフォースMS-CACHE 2指定されたファイルに保持されるハッシュ( example.hash)lower_alpha_numeric charsetを試します。クリアテキストはファイルに保存されます:

cudaHashcat-plus64.exe -o out.txt -a 3 -1 ?l?d -m 1100 --increment-min=1 example.hash

詳細については Wiki を参照してください。

P.S.:このスクリプトはincrementモードを使用するため、最大15桁のパスワード(36 ^ 15)をチェックします。

2
LMGTFY