Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mellon — OSDP 攻撃ツール(エルフ語で友を意味する) | Kitploit
ツール/GitHubGitHub/bishopfox/mellon
脆弱性分析エクスプロイト暗号化ペネトレーションテストハードウェアセキュリティ
GitHubbishopfox/mellon

mellon

OSDP 攻撃ツール(エルフ語で友を意味する)

リポジトリを見る
114943年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

このツールが悪用するOSDPの脆弱性

OSDP攻撃ツール(エルフ語で「友」の意)

攻撃その1: 暗号化はオプション

OSDPは暗号化をサポートしていますが、厳密には必須ではありません。そのため、接続がまったく暗号化されていない可能性もあります。攻撃その1では、パッシブに傍受して、線路上のカード番号を読み取れるかどうかを確認します。

攻撃その2: ダウングレード攻撃

コントローラとリーダーが暗号化をサポートしているからといって、それが使用されるように要求する設定になっているとは限りません。攻撃者はリーダーの能力応答メッセージ(osdp_PDCAP)を改ざんし、暗号化をサポートしていないと偽装できます。これが発生すると、一部のコントローラは暗号化なしでそのまま動作を続けます。

攻撃その3: インストールモード攻撃

OSDPには、リーダーとコントローラの両方に適用される準公式の「インストールモード」があります。名前が示すように、これはリーダーを初めてセットアップするときに使用されることを意図しています。その機能は、基本的にリーダーがコントローラにベース暗号鍵(SCBK)を要求できるようにすることです。コントローラが恒久的にインストールモードに設定されている場合、攻撃者は線路上に現れてSCBKを要求できます。

攻撃その4: 弱い鍵

OSDPのサンプルコードには、ハードコードされた暗号鍵がよく含まれています。明らかにこれらはサンプルであり、ユーザーは自分で安全に鍵を生成することを想定されています。しかし、これは説明されておらず、ユーザーにとって簡単でもありません。そして、セキュリティの分野に長く携わっている人なら誰でも、デフォルトの設定は本番環境でもそのまま使われがちであることを知っています。

そのため、攻撃ベクトルとして、リーダーとコントローラ間のリンクが暗号化されている場合、一般的な弱い鍵を列挙してみる価値があります。これらは128ビットAES鍵であるため、すべてを列挙することはできません。あるいは有意義な部分さえも。しかし、誰かが鍵をハードコードする際によく見られるパターンをいくつか試すことはできます。

  • すべての単一バイト値。 [0x04, 0x04, 0x04, 0x04 …]
  • すべての単調増加するバイト値。 [0x01, 0x02, 0x03, 0x04, …]
  • すべての単調減少するバイト値。 [0x0A, 0x09, 0x08, 0x07, …]

攻撃その5: 鍵セットのキャプチャ

OSDPには、鍵交換のためのインバンドメカニズムがありません。つまり、攻撃者は以下のことが可能です。

  • 線路上に隠し盗聴装置を設置する。
  • リーダーを破壊/工場出荷時リセット/無効にする。
  • IT担当者がリーダーを交換に来るのを待つ。
  • リーダーが初めてセットアップされたときに鍵セットメッセージ(osdp_KEYSET)をキャプチャする。
  • 将来のすべてのメッセージを復号する。

テストベッドのセットアップ(Linux/MacOS)

これらの各攻撃の概念実証コードは attack_osdp.py にあります。使用法の詳細については、--help コマンドを確認してください。これはPythonスクリプトで、USB<-->RS485アダプタを搭載したラップトップから実行することを想定しています(このようなもの)。そのため、いくつか用意するとよいでしょう。ただし、そのモデルでなくても構いません。

テストしたいコントローラがあれば素晴らしいです。それを使ってください。ない場合は、ここに意図的に脆弱性を持たせたOSDPコントローラを用意しています:vulnserver.py。

attack_osdp.py の一部の攻撃は、機能しているリーダーとコントローラの間での完全なMitM(中間者攻撃)を前提としています。これらをテストするには、ブレッドボードで接続した3つのUSB<-->RS485アダプタが必要になるかもしれません。

追加の中程度/低リスクの問題

これらの問題は単独では悪用可能ではありませんが、それでもプロトコル、実装、またはシステム全体の弱体化を表しています。

  • MACは「オーバーヘッド削減のため」32ビットに切り詰められています。これは、実用的な悪用範囲に_非常に_近い(ただし、当社の計算では完全ではありません)値です。
  • IV(MACから導出される)も同様に32ビットのエントロピーに削減されます。これによりIVの再利用が発生し、プロトコルにとって大きな危険信号となります。
  • セッション鍵は、コントローラのRNGナンスからの48ビットのエントロピーのみを使用して生成されます。しかし、観測している攻撃者がオフラインで列挙することは不可能と思われます。(何か見落としがある場合、これは_重大な_問題になります。)
  • シーケンス番号はわずか2ビットで構成され、十分なライブネスを提供しません。
  • CBCモードの暗号化が使用されています。GCMはネットワークプロトコルに適したより現代的なブロック暗号モードです。
  • SCSモード15および16は本質的に「ヌル暗号」であり、存在すべきではありません。データを暗号化しません。
  • OSDPコマンドバイトは、セキュアチャネルセッション中であっても常に暗号化されていません。これは攻撃者にとって大きな利点であり、攻撃ツールの作成をはるかに容易にします。つまり、攻撃者はパケットが暗号化されていても、どの「タイプ」のパケットが送信されているかを常に確認できるということです。攻撃者は、誰かがバッジをかざしたとき、LEDが点灯したときなどを知ることができます。この情報は平文で送信されるべきではありません。
  • SCBK-D(ハードコードされた「デフォルト」暗号鍵)はセキュリティを提供せず、削除されるべきです。これは単に難読化と誤った安心感を提供するだけです。
ツールをダウンロード