Radio
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)
SigDigger は、GNU/LinuxおよびmacOS用の無料デジタル信号アナライザーで、未知のラジオ信号の情報を抽出するために設計されています。SoapySDRを介してさまざまなSDRデバイスをサポートし、FSK、PSK、ASK信号の調整可能な復調、アナログビデオのデコード、バースト信号の分析、アナログ音声チャンネルの聴取(すべてリアルタイムで)を可能にします。
インストール後、設定を考慮するいくつかの項目があります。 設定(2番目のタブボタン)で、SDRデバイスを選択するか、ファイルを選択して読み込み、同調する周波数とサンプルレート(PCがサポートしている場合は最大2.56Mspsを推奨)を設定できます。\
GUIの動作では、PCがサポートしている場合は、いくつかの項目を有効にすることをお勧めします:
PCがキャプチャできない場合は、OpenGLを無効にし、サンプルレートを下げてみてください。
信号の一部をキャプチャして分析するには、「Push to capture」ボタンを必要なだけ押し続けます。
SigDiggerのチューナーは、より良い信号をキャプチャするのに役立ちます(ただし、信号を劣化させることもあります)。理想的には0から始めて、信号の改善よりもノイズの増加が大きくなるまで大きくしていきます。
SigDigger を使用して、聞きたいチャンネルと同期し、「Baseband audio preview」オプションを設定し、送信されるすべての情報を取得するための帯域幅を設定し、ノイズが本当に増加し始める前のレベルにチューナーを設定します:
デバイスが情報のバーストを送信しているとき、通常、最初の部分はプレアンブルになるため、そこに情報が見つからない場合やエラーがある場合は心配する必要はありません。
情報のフレームでは、通常、異なるフレームが互いにうまく整列しているはずです:
ビットを回復した後、何らかの方法で処理する必要があるかもしれません。たとえば、マンチェスター符号化では、アップ+ダウンは1または0、ダウン+アップはもう一方になります。したがって、1と0のペア(アップとダウン)は、実際の1または実際の0になります。
信号がマンチェスター符号化を使用している場合(連続して2つ以上の0または1を見つけることは不可能です)、プレアンブル内で複数の1または0を見つけることができるかもしれません!
信号に情報を格納する方法は3つあります:振幅、周波数、または位相を変調します。 信号を確認している場合、情報を格納するために何が使用されているかを特定するためのさまざまな方法があります(以下にさらに多くの方法があります)が、良い方法はIQグラフを確認することです。
AMの検出:IQグラフに2つの円(おそらく1つは0、もう1つは異なる振幅にある)を見つけた場合、これはAM信号である可能性があります。これは、IQグラフで0と円の間の距離が信号の振幅であるため、異なる振幅が使用されているのを視覚化しやすいからです。
PMの検出:前の画像のように、互いに関連しない小さな円を見つけた場合、位相変調が使用されている可能性があります。これは、IQグラフで点と0,0の間の角度が信号の位相であるため、4つの異なる位相が使用されていることを意味します。
情報が位相の変化に隠されていて、位相自体には隠されていない場合、異なる位相が明確に区別されているのは見えません。
FMの検出:IQには周波数を識別するためのフィールドがありません(中心からの距離は振幅で、角度は位相です)。 したがって、FMを識別するには、このグラフで基本的に円だけを見る必要があります。 さらに、異なる周波数はIQグラフによって円を横切る速度の加速で「表現」されます(したがって、SysDiggerで信号を選択するとIQグラフが生成され、生成された円の加速や方向の変化が見つかると、これはFMである可能性があります):
SigDigger を使用してAM情報を確認し、エンベロープを見て、異なる明確な振幅レベルを確認できます。使用されている信号は、AMで情報を送信するパルスを送信しており、1つのパルスは次のようになります:
そして、波形を持つシンボルの一部は次のようになります:
情報がある信号全体を選択し、振幅モードと選択を選択してヒストグラムをクリックします。2つの明確なレベルだけが見つかることが観察できます。
たとえば、このAM信号で振幅の代わりに周波数を選択すると、1つの周波数しか見つかりません(周波数で変調された情報が1つの周波数だけを使用していることはありません)。
多くの周波数が見つかる場合、これはFMではない可能性が高く、信号の周波数はチャンネルの影響で変更された可能性があります。
この例では、大きな円があることがわかりますが、中心に多くの点があります。
見つけた中で最小のシンボルを選択し(それが1つだけであることを確認するため)、"Selection freq"を確認します。この場合、1.013kHz(つまり1kHz)になります。
選択するシンボルの数を指定することもでき、SigDiggerは1つのシンボルの周波数を計算します(選択するシンボルが多いほど、より良い結果が得られる可能性があります)。このシナリオでは、10個のシンボルを選択し、"Selection freq"は1.004kHzです:
これはAM変調信号であり、シンボルレートが見つかり(この場合、何かが上がると1、何かが下がると0を意味することを知っているため)、信号にエンコードされたビットを取得するのは非常に簡単です。したがって、情報を持つ信号を選択し、サンプリングと決定を設定し、サンプルを押します(振幅が選択されていること、発見されたシンボルレートが設定されていること、Gadnerクロック回復が選択されていることを確認してください):
選択間隔に同期は、以前にシンボルレートを見つけるために選択した間隔が使用されることを意味します。
手動は、指定されたシンボルレートが使用されることを意味します。
固定間隔選択では、選択する必要がある間隔の数を指定し、それに基づいてシンボルレートを計算します。
Gadnerクロック回復は通常最良のオプションですが、いくつかの近似シンボルレートを指定する必要があります。
サンプルを押すと、次のようになります:
次に、SigDiggerに情報を持つレベルの範囲を理解させるために、下のレベルをクリックし、最大のレベルまでクリックを維持する必要があります:
たとえば、4つの異なる振幅レベルがあった場合、シンボルあたりのビットを2に設定し、最小から最大まで選択する必要があります。
最後に、ズームを増やし、行のサイズを変更することでビットを確認できます(すべてを選択してコピーしてすべてのビットを取得できます):
信号がシンボルあたり1ビット以上(たとえば2ビット)を持っている場合、SigDiggerにはどのシンボルが00、01、10、11であるかを知る方法がないため、異なるグレースケールを使用してそれぞれを表現します(ビットをコピーすると、0から3の数字を使用しますので、処理が必要です)。
また、マンチェスターなどの符号化を使用し、アップ+ダウンは1または0、ダウン+アップは1または0になります。このような場合、取得したアップ(1)とダウン(0)を処理して、01または10のペアを0または1に置き換える必要があります。
FMで変調された情報を送信する信号の例:
前の画像では、2つの周波数が使用されていることがかなりよく観察できますが、波形を観察すると、2つの異なる周波数を正しく識別できないかもしれません:
これは、両方の周波数で信号をキャプチャしたため、1つは他の1つの負の近似です:
同期された周波数が1つの周波数に近い場合、2つの異なる周波数を簡単に見ることができます:
情報を持つ信号の周波数ヒストグラムを確認すると、2つの異なる信号を簡単に見ることができます:
この場合、振幅ヒストグラムを確認すると、1つの振幅しか見つからないため、AMではないことがわかります(多くの振幅が見つかる場合、信号がチャンネルに沿って電力を失っている可能性があります):
これは位相ヒストグラムであり、信号が位相で変調されていないことを非常に明確に示しています:
IQには周波数を識別するためのフィールドがありません(中心からの距離は振幅で、角度は位相です)。 したがって、FMを識別するには、このグラフで基本的に円だけを見る必要があります。 さらに、異なる周波数はIQグラフによって円を横切る速度の加速で「表現」されます(したがって、SysDiggerで信号を選択するとIQグラフが生成され、生成された円の加速や方向の変化が見つかると、これはFMである可能性があります):
シンボルを運ぶ周波数を見つけたら、AMの例で使用したのと同じ技術を使用してシンボルレートを取得できます。
周波数で変調されている信号を見つけた後、AMの例で使用したのと同じ技術を使用してビットを取得できます。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)