12 KiB
Sub-GHz RF
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitterで@carlospolopmをフォローする🐦 @carlospolopm。
- ハッキングトリックを共有するには、PRを送信して HackTricks と HackTricks Cloud のGitHubリポジトリに。
ガレージドア
ガレージドアオープナーは通常、300-190 MHzの周波数で動作し、最も一般的な周波数は300 MHz、310 MHz、315 MHz、390 MHzです。この周波数範囲は、他の周波数帯よりも混雑しておらず、他のデバイスからの干渉を受けにくいため、ガレージドアオープナーによく使用されます。
車のドア
ほとんどの車のキーフォブは、315 MHzまたは433 MHzで動作します。これらはどちらも無線周波数であり、さまざまな異なるアプリケーションで使用されています。これら2つの周波数の主な違いは、433 MHzの方が315 MHzよりも長い射程を持っていることです。これは、433 MHzがリモートキーレスエントリなどのより長い射程を必要とするアプリケーションに適していることを意味します。
ヨーロッパでは433.92MHzが一般的であり、米国と日本では315MHzが使用されています。
ブルートフォース攻撃
各コードを5回送信する代わりに(受信側が受信することを確認するために送信される)、1回だけ送信すると、時間が6分に短縮されます:
また、信号間の2 msの待機時間を削除すると、時間を3分に短縮できます。
さらに、De Bruijn Sequence(潜在的なバイナリ数を送信するために必要なビット数を減らす方法)を使用することで、この時間をわずか8秒に短縮できます:
この攻撃の例は、https://github.com/samyk/opensesame で実装されています。
前置詞を要求することで、De Bruijn Sequenceの最適化を回避し、ローリングコードはこの攻撃を防ぎます(コードが十分に長く、ブルートフォース攻撃できないと仮定して)。
Sub-GHz攻撃
Flipper Zeroでこれらの信号を攻撃するには、次のチェックを行います:
{% content-ref url="flipper-zero/fz-sub-ghz.md" %} fz-sub-ghz.md {% endcontent-ref %}
ローリングコード保護
自動ガレージドアオープナーは通常、ワイヤレスリモコンを使用してガレージドアを開閉します。リモコンはガレージドアオープナーに無線周波数(RF)信号を送信し、モーターを作動させてドアを開閉します。
誰かがコードグラバーとして知られるデバイスを使用してRF信号を傍受し、後で使用するために記録することが可能です。これはリプレイ攻撃として知られています。この種の攻撃を防ぐために、多くの現代のガレージドアオープナーは、ローリングコードシステムとして知られるより安全な暗号化方式を使用しています。
RF信号は通常、ローリングコードを使用して送信されます。つまり、コードは使用ごとに変更されます。これにより、誰かが信号を傍受してガレージへの不正アクセスを試みることが難しくなります。
ローリングコードシステムでは、リモコンとガレージドアオープナーには、リモコンを使用するたびに新しいコードを生成する共有アルゴリズムがあります。ガレージドアオープナーは正しいコードにのみ応答し、コードをキャプチャしてガレージへの不正アクセスを試みることがはるかに困難になります。
Missing Link攻撃
基本的に、リモートがデバイス(たとえば車やガレージ)から離れた状態で信号をキャプチャし、その後デバイスに移動してキャプチャしたコードを使用して開くことができます。
フルリンクジャミング攻撃
攻撃者は、車両や受信機の近くで信号をジャムすることができ、その結果、受信機はコードを「聞く」ことができなくなり、その後、ジャミングを停止した後に単純にコードをキャプチャして再生することができます。
被害者はある時点で車をロックするためにキーを使用しますが、その後、攻撃は**「閉める」コードを十分に記録**しているはずであり、それらを再送信してドアを開けることができるかもしれません(同じコードを開閉に使用する車があり、異なる周波数で両方のコマンドを受信する車があるため、周波数の変更が必要かもしれません)。
{% hint style="warning" %} ジャミングは機能しますが、車をロックする人が単にドアをテストしてロックされていることを確認すると、車がロック解除されていることに気付くでしょう。さらに、このような攻撃に気づいている場合、車を「ロック」ボタンを押したときにドアがロックされなかったことや、車のライトが「ロック」ボタンを押したときに点滅しなかったことを聞くことさえできます。 {% endhint %}
コードグラビング攻撃(別名「RollJam」)
これはより巧妙なジャミング技術です。攻撃者は信号をジャムし、被害者がドアをロックしようとするときに動作しないようにしますが、攻撃者はこのコードを記録します。その後、被害者はボタンを押して再度車をロックしようとしますが、車はこの2回目のコードを記録します。
これをすぐに行うと、攻撃者は最初のコードを送信し、車がロックします(被害者は2回目の押しで閉じたと思うでしょう)。その後、攻撃者は2番目の盗まれたコードを送信して車を開けることができます(「閉じる車」コードも開くために使用できると仮定して)。周波数の変更が必要かもしれません(同じコードを開閉に使用する車があり、異なる周波数で両方のコマンドを受信する車があるため)。
攻撃者は車の受信機をジャムすることができますが、車の受信機がたとえば1MHzの広帯域で受信している場合、攻撃者はリモコンが使用する正確な周波数をジャムするのではなく、そのスペクトラム内の近い周波数をジャムし、攻撃者の受信機はリモコン信号をジャム信号なしで受信できるようにします。
{% hint style="warning" %} 他の仕様で見られる実装では、ローリングコードは送信される合計コードの一部であることが示されています。つまり、送信されるコードは24ビットキーであり、最初の12ビットがローリングコード、次の8ビットがコマンド(ロックまたはアンロックなど)、最後の4ビットがチェックサムです。このタイプを実装している車両も自然に脆弱性があり、攻撃者は単にローリングコードセグメントを置き換えるだけで、両方の周波数で任意のローリングコードを使用できるようになります。 {% endhint %}
{% hint style="danger" %} 被害者が最初のコードを送信する間に攻撃者が最初のコードを送信すると、最初と2番目のコードは無効になります。 {% endhint %}
警報音ジャミング攻撃
車に取り付けられたアフターマーケットのローリングコードシステムに対するテストでは、同じコードを2回送信するとすぐに警報とイモビライザーが作動し、ユニークなサービス拒否の機会が提供されました。皮肉なことに、警報とイモビライザーを無効にする手段は、リモコンを押すことであり、攻撃者には継続的にDoS攻撃を実行する能力が与えられます。また、この攻撃を前回の攻撃と組み合わせてさらに多くのコードを取得することもできます。被害者は攻撃をできるだけ早く停止したいと考えるためです。
参考文献
- https://www.americanradioarchives.com/what-radio-frequency-does-car-key-fobs-run-on/
- https://www.andrewmohawk.com/2016/02/05/bypassing-rolling-code-systems/
- https://samy.pl/defcon2015/
- https://hackaday.io/project/164566-how-to-hack-a-car/details
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスウォッグを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- **💬 Discordグループ**に参加するか、Telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする
- HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する