11 KiB
Sub-GHz RF
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
ガレージドア
ガレージドアオープナーは通常、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分に短縮できます。
さらに、デ・ブルイン列(すべての潜在的なバイナリ番号をブルートフォースするために送信する必要のあるビット数を減らす方法)を使用することで、この時間はわずか8秒に短縮されます:
この攻撃の例は、https://github.com/samyk/opensesameに実装されています。
プレアンブルを要求することでデ・ブルイン列の最適化を回避し、ロールコードはこの攻撃を防ぎます(コードがブルートフォースできないほど長いと仮定します)。
Sub-GHz攻撃
これらの信号をFlipper Zeroで攻撃するには、次を確認してください:
{% content-ref url="flipper-zero/fz-sub-ghz.md" %} fz-sub-ghz.md {% endcontent-ref %}
ローリングコード保護
自動ガレージドアオープナーは通常、ガレージドアを開閉するためにワイヤレスリモコンを使用します。リモコンは無線周波数(RF)信号をガレージドアオープナーに送信し、モーターを作動させてドアを開閉します。
誰かがコードグラバーと呼ばれるデバイスを使用してRF信号を傍受し、後で使用するために記録することが可能です。これはリプレイ攻撃として知られています。この種の攻撃を防ぐために、多くの現代のガレージドアオープナーはロールコードシステムと呼ばれるより安全な暗号化方法を使用しています。
RF信号は通常、ロールコードを使用して送信されます。これは、使用するたびにコードが変わることを意味します。これにより、誰かが信号を傍受し、ガレージに不正アクセスするために使用することが難しくなります。
ロールコードシステムでは、リモコンとガレージドアオープナーは共有アルゴリズムを持ち、リモコンが使用されるたびに新しいコードを生成します。ガレージドアオープナーは正しいコードにのみ応答し、コードをキャプチャするだけでガレージに不正アクセスすることが非常に難しくなります。
ミッシングリンク攻撃
基本的に、ボタンを聞いて、リモコンがデバイスの範囲外にある間に信号をキャプチャします(例えば、車やガレージ)。その後、デバイスに移動し、キャプチャしたコードを使用して開けます。
フルリンクジャミング攻撃
攻撃者は、車両または受信機の近くで信号をジャミングすることができるため、受信機は実際にコードを「聞く」ことができません。その状態が発生すると、単にコードをキャプチャして再生することができます。
被害者はある時点で鍵を使って車をロックしますが、その後攻撃者は**「ドアを閉める」コードを十分に記録**し、再送信してドアを開けることができることを期待します(周波数の変更が必要な場合があります。同じコードを使用して開閉する車があり、異なる周波数で両方のコマンドを聞くためです)。
{% hint style="warning" %} ジャミングは機能しますが、目立ちます。車をロックする人が単にドアをテストしてロックされていることを確認すると、車がロックされていないことに気付くでしょう。さらに、彼らがそのような攻撃を認識している場合、ドアがロック音を出さなかったり、車のライトが「ロック」ボタンを押したときに点滅しなかったことを聞くことができるかもしれません。 {% endhint %}
コードグラビング攻撃(別名「ロールジャム」)
これはよりステルスジャミング技術です。攻撃者は信号をジャミングし、被害者がドアをロックしようとすると機能しませんが、攻撃者はこのコードを記録します。その後、被害者はボタンを押して再度車をロックしようとし、車はこの2番目のコードを記録します。
この後すぐに、攻撃者は最初のコードを送信し、車はロックされます(被害者は2回目の押下で閉じたと思うでしょう)。その後、攻撃者は盗まれた2番目のコードを送信して車を開けることができます(「車を閉じる」コードも使用できると仮定します)。周波数の変更が必要な場合があります(同じコードを使用して開閉する車があり、異なる周波数で両方のコマンドを聞くためです)。
攻撃者は車の受信機をジャミングし、自分の受信機をジャミングしないことができます。なぜなら、車の受信機が例えば1MHzの広帯域で聞いている場合、攻撃者はリモコンが使用する正確な周波数をジャミングするのではなく、そのスペクトル内の近い周波数をジャミングし、攻撃者の受信機はより小さな範囲でリモコン信号をジャミング信号なしで聞くことができるからです。
{% hint style="warning" %} 仕様に見られる他の実装は、ロールコードが送信される全体のコードの一部であることを示しています。つまり、送信されるコードは24ビットキーで、最初の12ビットがロールコード、次の8ビットがコマンド(ロックまたはアンロックなど)、最後の4ビットがチェックサムです。このタイプを実装している車両は、攻撃者がロールコードセグメントを置き換えるだけで、両方の周波数で任意のロールコードを使用できるため、自然に脆弱です。 {% endhint %}
{% hint style="danger" %} 被害者が攻撃者が最初のコードを送信している間に3番目のコードを送信すると、最初と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
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.