ibmiscanner2john ツール徹底解説:IBM AppScan Source データベースのパスワードハッシュを抽出

セキュリティツール

John the Ripper (JtR) は、パスワードの強度テストやセキュリティ監査に広く使われる強力なオープンソースのパスワードクラッキングツールです。様々な種類のパスワードハッシュに対応しており、その中でも特定のアプリケーションやフォーマットに特化したハッシュ抽出用の補助ツール群 (*2john) が用意されています。 今回は、その *2john ツール群の中から ibmiscanner2john に焦点を当てて、その機能と使い方を詳しく解説します。 😊

IBM Security AppScan Source とは?

まず、ibmiscanner2john が対象とする IBM Security AppScan Source (現在は HCL AppScan Source) について理解しましょう。AppScan Source は、アプリケーションのソースコードをスキャンしてセキュリティ上の脆弱性を検出する静的解析(SAST)ツールです。開発の初期段階で脆弱性を特定し、修正を支援することを目的としています。

AppScan Source は、スキャン結果や設定情報を独自のデータベースファイル(典型的には .ozasmt という拡張子を持ちます)に保存します。このファイルには、検出された脆弱性に関する情報だけでなく、場合によっては関連する設定情報や、過去のバージョンではユーザー認証に関連するデータが含まれている可能性がありました。

HCL AppScan ファミリーには、AppScan Source (静的解析)、AppScan Standard (動的解析)、AppScan Enterprise (統合管理プラットフォーム)、AppScan on Cloud (SaaS) などがあります。IBM Security AppScan は、2019年に HCL Technologies に買収され、現在は HCLSoftware ブランドの下で提供されています。

ibmiscanner2john の役割

ibmiscanner2john は、John the Ripper スイートに含まれる Python スクリプトです。その主な役割は、古いバージョンの ibmiscanner ツール (IBM i、以前の AS/400 関連のスキャナー) によって作成された可能性のある特定の形式のファイル、または AppScan Source のアセスメントファイル (.ozasmt) に含まれる可能性のあるハッシュ情報を、John the Ripper が解析できる形式に変換することです。

具体的には、ファイル内の userid:hash 形式のデータを抽出し、John the Ripper が認識する as400-sha1 形式 (あるいは関連するフォーマット) のハッシュ文字列に変換して標準出力に出力します。

注意点: 最近の AppScan Source のアセスメントファイル (.ozasmt) に、直接的なユーザーパスワードハッシュが含まれているケースは一般的ではないかもしれません。.ozasmt ファイルは主に脆弱性スキャンの結果を格納するためのものです。しかし、特定の状況下や古いバージョン、あるいは特殊な設定によっては、解析対象となりうる情報が含まれる可能性もゼロではありません。また、ツール名が示すように、元々は IBM i (AS/400) 環境のスキャンデータに関連する目的で開発された経緯があると考えられます。

John the Ripper のインストール

ibmiscanner2john を使用するには、まず John the Ripper がシステムにインストールされている必要があります。ibmiscanner2john は通常、John the Ripper の “Jumbo” バージョンに含まれています。Jumbo バージョンは、より多くのハッシュタイプや機能に対応した拡張版です。

多くの Linux ディストリビューションでは、パッケージマネージャーを通じて簡単にインストールできます。

Debian/Ubuntu ベースのシステム:

sudo apt update
sudo apt install john

Fedora/CentOS/RHEL ベースのシステム:

sudo dnf install john  # Fedora
sudo yum install john  # CentOS/RHEL

Kali Linux などのペネトレーションテスト用ディストリビューションには、デフォルトで John the Ripper (Jumbo) が含まれていることが多いです。

インストール後、ibmiscanner2john スクリプトは通常 /usr/share/john//usr/sbin/ (スクリプトへのシンボリックリンクの場合あり) などのディレクトリに配置されます。場所はディストリビューションによって異なる場合があります。

# スクリプトの場所を確認する例
find /usr -name ibmiscanner2john.py

ibmiscanner2john の使い方

ibmiscanner2john の使い方は非常にシンプルです。基本的には、変換したい AppScan Source のアセスメントファイル (.ozasmt) または関連ファイルを引数として指定します。

基本的な構文:

python /path/to/ibmiscanner2john.py <input_file.ozasmt>

または、パスが通っている場合や実行権限がある場合:

ibmiscanner2john <input_file.ozasmt>
  • /path/to/ibmiscanner2john.py: ibmiscanner2john.py スクリプトへのフルパス、または環境変数 PATH に含まれるディレクトリにあればスクリプト名のみ。
  • <input_file.ozasmt>: 変換対象の AppScan Source アセスメントファイル、または古い形式の ibmiscanner ファイル。

このコマンドを実行すると、ibmiscanner2john は指定されたファイルを読み込み、John the Ripper が解釈可能な形式のハッシュ文字列を標準出力に出力します。

出力例 (架空):

もしファイル内に解析可能なデータが見つかった場合、以下のような形式で出力される可能性があります (フォーマットは対象データによります):

user1:$as400-sha1$1234567890ABCDEF...
user2:$as400-sha1$ABCDEF1234567890...

重要なのは、この出力をファイルに保存して、後で John the Ripper に渡すことです。リダイレクト演算子 (>) を使用します。

出力をファイルに保存する:

ibmiscanner2john my_assessment.ozasmt > hashes_ibmappscan.txt

これで、my_assessment.ozasmt から抽出されたハッシュ (もし存在すれば) が hashes_ibmappscan.txt というファイルに保存されます。

複数のファイルを一度に処理することも可能です。

ibmiscanner2john file1.ozasmt file2.dat > combined_hashes.txt

John the Ripper でハッシュを解析 (クラック) ⚙️

ibmiscanner2john でハッシュを抽出しファイルに保存したら、いよいよ John the Ripper 本体を使ってパスワードの解析 (クラッキング) を試みます。

基本的なコマンド:

john hashes_ibmappscan.txt

このコマンドを実行すると、John the Ripper は hashes_ibmappscan.txt ファイルを読み込み、ファイル内のハッシュ形式を自動的に検出しようとします。そして、デフォルトのモード (通常はシングルクラックモード、辞書モード、インクリメンタルモードの組み合わせ) で解析を開始します。

より効率的に解析を行うために、ワードリスト (辞書ファイル) を指定することが一般的です。ワードリストは、パスワードとしてよく使われる単語やフレーズを集めたファイルです。有名なものに “RockYou” リストなどがあります。

ワードリストを指定して実行:

john --wordlist=/path/to/wordlist.txt hashes_ibmappscan.txt
  • --wordlist=/path/to/wordlist.txt: 使用するワードリストファイルのパスを指定します。Kali Linux などでは /usr/share/wordlists/ ディレクトリによく使われるリストが格納されています (例: /usr/share/wordlists/rockyou.txt.gz を解凍して使う)。

John the Ripper は、ワードリストの単語をそのまま試すだけでなく、ルールを適用して単語を変化させ (例: 大文字小文字変換、数字や記号の追加)、より多くのパスワード候補を生成して試行することもできます。ルールはデフォルトで適用されることが多いですが、明示的に指定することも可能です (--rules オプション)。

john --wordlist=/path/to/wordlist.txt --rules hashes_ibmappscan.txt

解析には時間がかかる場合があります。特にパスワードが複雑な場合や、ハッシュアルゴリズムが計算コストの高いものである場合は、数時間から数日、あるいはそれ以上かかることもあります。

解析結果の確認:

解析が完了した後、または途中でクラックに成功したパスワードを確認するには、--show オプションを使用します。

john --show hashes_ibmappscan.txt

これにより、クラックされたハッシュとその対応する平文のパスワードが表示されます。結果は通常 ~/.john/john.pot (pot ファイル) に保存され、--show はこのファイルを参照して表示します。

利用シナリオと注意点 🤔

ibmiscanner2john と John the Ripper の組み合わせは、以下のような正当な目的で使用されることがあります。

  • セキュリティ監査: システム管理者やセキュリティ担当者が、AppScan Source の古い設定ファイルや関連データ内に、意図せず弱いパスワードや認証情報が残存していないかを確認するため。
  • ペネトレーションテスト: 許可を得た上で、システムやアプリケーションのセキュリティ強度を評価する一環として、取得したファイルからパスワードハッシュを抽出し、クラックを試みることで、潜在的なリスクを評価するため。
  • デジタルフォレンジック: インシデント発生時に、侵害された可能性のあるシステムから収集されたデータ (AppScan 関連ファイルを含む) を分析し、不正アクセスに使用された可能性のある認証情報を特定するため。

⚠️ 倫理的・法的注意点:

パスワードクラッキングツールは非常に強力ですが、その使用には重大な責任が伴います。以下の点を厳守してください。

  • 許可なき使用の禁止: 自分自身が管理権限を持つシステム、または明確な書面による許可を得たシステムに対してのみ使用してください。他人のアカウントや管理下にないシステムのパスワードを解析しようとすることは、不正アクセス禁止法などの法律に違反する犯罪行為であり、絶対に許されません。
  • 目的の正当性: セキュリティ評価やインシデント対応など、正当な理由なくパスワードクラッキングを行うべきではありません。
  • 情報の取り扱い: 解析によって得られたパスワードや機密情報は、厳重に管理し、不必要に共有したり漏洩させたりしないように最大限の注意を払う必要があります。

これらのツールは、システムのセキュリティを「守る」ために、潜在的な弱点を発見し、対策を講じる目的で利用されるべきものです。悪用は絶対に避けなければなりません。

まとめ ✨

ibmiscanner2john は、John the Ripper スイートの一部として、特定の IBM 関連ファイル (特に古い ibmiscanner ツールや、可能性としては AppScan Source のアセスメントファイル) からパスワードハッシュ情報を抽出し、John the Ripper が解析できる形式に変換するためのツールです。

使い方は比較的簡単で、対象ファイルを引数に指定し、出力をファイルに保存して John the Ripper に渡すだけです。しかし、その後のパスワードクラッキングプロセス自体は、対象となるパスワードの強度や計算資源によって、時間と労力を要する場合があります。

最も重要なことは、このツールを含むパスワードクラッキング技術は、適切な許可と倫理観を持って、セキュリティ強化という正当な目的のためにのみ使用するということです。不正な目的での使用は法的に罰せられるだけでなく、深刻な結果を招く可能性があります。🔒

セキュリティ専門家やシステム管理者は、このようなツールが存在することを理解し、自身の管理するシステムにおいて脆弱なパスワードが使用されていないか、不要な情報がファイルに残存していないかを定期的に確認し、適切なセキュリティ対策を講じることが求められます。

参考情報

コメント

タイトルとURLをコピーしました