web-dev-qa-db-ja.com

Bruteforceはファイルの内容を知らずにXMLファイルを復号化しますか?

.xmlファイルを復号化しようとしていますが、何が含まれているのかわかりません。

私が知っていること:

  • 6文字の英数字のパスフレーズで始まる

  • パスフレーズはmd5またはSHA1/2によってハッシュされます

  • ハッシュキーを使用したXMLファイルのAES128/256暗号化

この問題を正しく見ている場合、パスフレーズのバリエーションは62 ^ 6通りあります。私が約100万/秒をテストできると仮定すると、ハッシュ/暗号化アルゴリズムの6つのバリエーションを乗算した約15時間の復号化を意味します。その速度では、数日で力ずくで攻撃できるのは不合理ではないように思えますか?

復号化されたXMLファイルのプレーンテキスト出力を確認する方法に関する推奨事項はありますか?私のコーディングスキルは、これを理解できるレベルではありません。
このファイルが適切に復号化されるタイミングを視覚的に確認できることはわかっていますが、そのようなことを自動的に実行できる復号化プログラムはありますか?

1
Buster

ファイルに暗号化されたXMLドキュメントが本当に含まれていることがわかっている場合は、最初のデコードされたブロックでXMLプロローグ文字列<?xml version="1.0" encoding="UTF-8"?>の存在を確認してください。 (もちろん、バージョンとエンコーディングは異なります。)少なくとも<?xmlマーカーの最初の5文字を​​確認してください。

もちろん、プロローグはオプションであるため、まったく存在しない場合があります。暗号化されたファイルを見て、どのような種類のベビーベッドが期待できるかを確実に知ることができれば役立ちます。または、宛先アプリケーションを見て、スキーマが何を期待しているのかを知ることができるかどうかを確認することもできます。次に、最初のブロック検索を拡張して、スキーマの予想されるルートノードの検索を含めます。

偶然に最初の5バイトを<?xmlに復号化する多くの誤検知は発生しません。あなたがそれだけ回復したものなら、眼球で残りの結果を評価する余裕があります。

1
John Deters

TrID ツールが最適です。それはその内容に基づいて多くの異なるファイルタイプを検出できます。それは、それがどの特定のタイプのxmlファイルであるかさえ知ることができます。コマンドラインとGUIバージョンがあります。最善の策は、推測された拡張子をファイル名に追加する「-ae」オプションを使用することです。

0
ARau

たぶんこれはあなたが探しているものではないかもしれませんが、時間が選択肢がなく、潜在的なパスワードリストをブルートフォース生成する特定のコードがある場合は、ファイルが実際に復号化されるタイミングを知る必要があります。 XMLライブラリを使用して出力します。ほぼすべての言語に1つあります。ちょうど次のようなもの:

for password in brute_force_list:
  # 1. Decrypt xml file into an in memory string
  # 2. Try to parse said string into an object
  # 3. If parsing was successful return the string
0
onetwopunch