hacktricks/todo/hardware-hacking/radio.md

13 KiB

라디오

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**

HackTricks를 지원하는 다른 방법:

SigDigger

SigDigger는 GNU/Linux 및 macOS용 무료 디지털 신호 분석기로, 알려지지 않은 라디오 신호의 정보를 추출하기 위해 설계되었습니다. SoapySDR을 통해 다양한 SDR 장치를 지원하며 FSK, PSK 및 ASK 신호의 조정 가능한 복조, 아날로그 비디오 디코딩, 버스트 신호 분석 및 아날로그 음성 채널 청취(실시간)를 지원합니다.

기본 구성

설치 후 고려할 수 있는 몇 가지 구성 사항이 있습니다.
설정(두 번째 탭 버튼)에서 SDR 장치를 선택하거나 파일을 선택하여 읽을 주파수 및 샘플 속도(컴퓨터가 지원하는 경우 최대 2.56Msps까지 권장)를 선택할 수 있습니다.

GUI 동작에서 컴퓨터가 지원하는 경우 몇 가지를 활성화하는 것이 좋습니다:

{% hint style="info" %} 컴퓨터가 캡처를 하지 못하는 것을 깨달았다면 OpenGL을 비활성화하고 샘플 속도를 낮추는 것을 시도해보세요. {% endhint %}

사용법

  • 신호를 캡처하고 분석하기 위해 "캡처 시작" 버튼을 누른 채로 유지하면 됩니다.

  • SigDigger의 튜너신호를 더 잘 캡처하는 데 도움이 됩니다(하지만 신호를 악화시킬 수도 있습니다). 이상적으로 0부터 시작하여 노이즈가 신호의 개선보다 큰 것을 찾을 때까지 크게 만들어야 합니다).

라디오 채널과 동기화

SigDigger를 사용하여 듣고 싶은 채널과 동기화하려면 "베이스밴드 오디오 미리보기" 옵션을 구성하고, 전송되는 모든 정보를 얻기 위해 대역폭을 구성한 다음 노이즈가 실제로 증가하기 시작하는 수준으로 튜너를 설정하세요:

흥미로운 트릭

  • 장치가 정보의 버스트를 보내는 경우, 일반적으로 첫 부분은 프리앰블이 될 것이므로 거기에서 정보를 찾지 못하거나 오류가 있더라도 걱정할 필요가 없습니다.
  • 정보 프레임에서는 일반적으로 서로 잘 정렬된 다른 프레임을 찾아야합니다:

  • 비트를 복구한 후에는 어떤 방식으로든 처리해야할 수 있습니다. 예를 들어, Manchester 부호화에서 up+down은 1 또는 0이 되고, down+up은 다른 하나가 됩니다. 따라서 1과 0의 쌍(위와 아래)은 실제 1 또는 실제 0이 됩니다.
  • 심지어 신호가 Manchester 부호화를 사용하더라도(연속으로 두 개 이상의 0 또는 1을 찾을 수 없음), 프리앰블에서 여러 개의 1 또는 0을 찾을 수 있습니다!

IQ를 사용하여 변조 유형 찾기

신호에 정보를 저장하는 방법에는 진폭, 주파수 또는 위상을 변조하는 세 가지 방법이 있습니다.
신호를 확인하는 경우 정보가 저장되는 방법을 파악하기 위해 시도할 수 있는 다양한 방법이 있지만, 좋은 방법 중 하나는 IQ 그래프를 확인하는 것입니다.

  • AM 감지: IQ 그래프에서 예를 들어 2개의 원이 나타나면(아마도 하나는 0에 있고 다른 하나는 다른 진폭에 있음), 이것은 AM 신호일 수 있습니다. IQ 그래프에서 0과 원 사이의 거리는 신호의 진폭이므로 다른 진폭이 사용되는 것을 시각적으로 확인하기 쉽습니다.
  • PM 감지: 이전 이미지와 같이 서로 관련이 없는 작은 원을 찾으면, 이는 위상 변조가 사용된 것일 수 있습니다. IQ 그래프에서 점과 0,0 사이의 각도는 신호의 위상이므로 4가지 다른 위상이 사용된다는 것을 의미합니다.
  • 정보가 위상 자체가 아닌 위상이 변경된 사실에 숨겨져 있다면, 서로 다른 위상이 명확하게 구분되지 않을 수 있습니다.
  • FM 감지: IQ에는 주파수를 식별할 수 있는 필드가 없습니다(중심까지의 거리는 진폭이고 각도는 위상입니다).
    따라서 FM을 식별하려면 이 그래프에서 기본적으로 원만 보여야 합니다.
    또한, 다른 주파수는 이 그래프에서 원 주변의 속도 가속도로 표시됩니다(SysDigger에서 신호를 선택하면 IQ 그래프가 생성되는데, 만들어진 원에서 가속도나 방향 변경을 찾으면 FM일 수 있습니다):

AM 예제

{% file src="../../.gitbook/assets/sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw" %}

AM 해독

엔벨롭 확인

SigDigger를 사용하여 AM 정보를 확인하고 엔벨롭만 살펴보면 명확한 진폭 수준을 확인할 수 있습니다. 사용된 신호는 AM에서 정보를 보내는 펄스를 보내고 있으며, 이것이 하나의 펄스가 어떻게 보이는지입니다:

그리고 이것이 심볼의 일부가 웨이브폼과 함께 어떻게 보이는지입니다:

히스토그램 확인

정보가 있는 신호 전체를 선택하고 진폭 모드를 선택한 다음 선택을 클릭하고 히스토그램을 클릭할 수 있습니다. 2개의 명확한 수준만 찾을 수 있음을 확인할 수 있습니다.

예를 들어, 이 AM 신호에서 진폭 대신 주파수를 선택하면 하나의 주파수만 찾을 수 있습니다(주파수로 변조된 정보가 하나의 주파수만 사용하는 방식은 아님).

많은 주파수를 찾는다면 이것은 FM이 아닐 수 있으며, 아마도 신호 주파수가 채널 때문에 변경된 것입니다.

IQ를 사용하여

이 예에서는 큰 원많은 점들이 중앙에 있는 것을 볼 수 있습니다.

심볼 속도 얻기

하나의 심볼로

가장 작은 심볼을 선택하십시오 (따라서 그것이 1임을 확신할 수 있음) 그리고 "Selection freq"를 확인하십시오. 이 경우 1.013kHz (즉, 1kHz)가 될 것입니다.

여러 심볼로

선택할 심볼 수를 지정할 수도 있으며 SigDigger가 1 심볼의 주파수를 계산할 것입니다 (선택된 심볼이 많을수록 더 좋을 것입니다). 이 시나리오에서는 10개의 심볼을 선택하고 "Selection freq"가 1.004 Khz임을 확인할 수 있습니다:

비트 얻기

이 신호가 AM 변조 신호임을 발견했고 심볼 속도를 알았다면 (이 경우 무언가가 위를 의미하고 아래를 의미한다는 것을 알고 있다면), 신호에 인코딩된 비트를 얻는 것은 매우 쉽습니다. 따라서 정보가 있는 신호를 선택하고 샘플링 및 의사 결정을 구성하고 샘플을 누르십시오 (선택된 진폭이 선택되어 있는지, 발견된 심볼 속도가 구성되어 있는지, 그리고 Gadner 클럭 회복이 선택되어 있는지 확인하십시오):

  • 선택 간격에 동기화는 이전에 심볼 속도를 찾기 위해 간격을 선택한 경우 해당 심볼 속도가 사용됩니다.
  • 수동은 지정된 심볼 속도가 사용될 것임을 의미합니다.
  • 고정 간격 선택에서는 선택해야 할 간격 수를 지정하고 그로부터 심볼 속도를 계산합니다.
  • Gadner 클럭 회복이 일반적으로 가장 좋은 옵션입니다만, 여전히 약간의 근사한 심볼 속도를 지정해야 합니다.

샘플을 누르면 다음이 나타납니다:

이제 SigDigger가 이해할 수 있도록 정보를 전달하는 수준의 범위를 이해시키려면 낮은 수준을 클릭하고 가장 큰 수준까지 클릭을 유지하십시오:

예를 들어 진폭의 4가지 다른 수준이 있다면 심볼 당 비트를 2로 구성하고 가장 작은 것부터 가장 큰 것까지 선택해야 합니다.

마지막으로 줌을 늘리고 행 크기를 변경하여 비트를 볼 수 있습니다 (모두 선택하고 복사하여 모든 비트를 얻을 수 있습니다):

만약 심볼 당 1보다 많은 비트가 있는 신호인 경우 (예: 2), SigDigger는 00, 01, 10, 11 중 어떤 심볼인지 알 방법이 없으므로 각각을 나타내기 위해 다른 회색조를 사용할 것입니다 (그리고 비트를 복사하면 0부터 3까지의 숫자를 사용할 것이므로 이를 처리해야 합니다).

또한 Manchester와 같은 코딩을 사용하면 위+아래1 또는 0이 될 수 있고, 아래+위가 1 또는 0이 될 수 있습니다. 이러한 경우에는 얻은 위 (1)와 아래 (0)를 처리하여 01 또는 10의 쌍을 0 또는 1로 대체해야 합니다.

FM 예제

{% file src="../../.gitbook/assets/sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw" %}

FM 해독

주파수 및 파형 확인

FM으로 변조된 정보를 전송하는 신호 예제:

이전 이미지에서 2개의 주파수가 사용되는 것을 잘 볼 수 있지만 파형을 관찰하면 2개의 다른 주파수를 정확히 식별할 수 없을 수도 있습니다:

이는 저는 신호를 두 주파수에서 캡처했기 때문에 한 주파수가 다른 주파수에 대략적으로 음수로 나타납니다:

동기화된 주파수가 한 주파수에 다른 주파수보다 가까울 경우 2개의 다른 주파수를 쉽게 볼 수 있습니다:

히스토그램 확인

정보가 포함된 신호의 주파수 히스토그램을 확인하면 쉽게 2개의 다른 신호를 볼 수 있습니다:

이 경우 진폭 히스토그램을 확인하면 하나의 진폭만 찾을 수 있으므로 AM이 아닐 수 있습니다 (다양한 진폭을 찾을 경우 신호가 채널을 통해 전력을 잃어버린 것일 수 있습니다):

그리고 이것이 위상 히스토그램일 것입니다 (신호가 위상으로 변조되지 않았음을 명확히 보여줍니다):

IQ로

IQ는 주파수를 식별할 수 있는 필드가 없습니다 (중심까지의 거리는 진폭이고 각도는 위상입니다).
따라서 FM을 식별하려면 이 그래프에서 기본적으로 원만 보여야 합니다.
또한 IQ 그래프에서 다른 주파수는 원을 가로지르는 속도 가속으로 "표현"됩니다 (따라서 SysDigger에서 신호를 선택하면 IQ 그래프가 생성되며, 만들어진 원에서 가속이나 방향 변경을 찾으면 이것이 FM일 수 있다는 것을 의미할 수 있습니다):

심볼 속도 얻기

주파수를 운반하는 심볼을 찾은 후 심볼 속도를 얻기 위해 AM 예제에서 사용한 동일한 기술을 사용할 수 있습니다.

비트 얻기

주파수로 변조된 신호를 찾은 후 심볼 속도를 알았다면 AM 예제에서 사용한 동일한 기술을 사용하여 비트를 얻을 수 있습니다.