# Радіо {% hint style="success" %} Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Підтримайте HackTricks * Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)! * **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
{% endhint %} ## SigDigger [**SigDigger** ](https://github.com/BatchDrake/SigDigger) є безкоштовним аналізатором цифрових сигналів для GNU/Linux та macOS, призначеним для витягування інформації з невідомих радіосигналів. Він підтримує різноманітні SDR пристрої через SoapySDR і дозволяє регулювати демодуляцію FSK, PSK та ASK сигналів, декодувати аналогове відео, аналізувати сплески сигналів і слухати аналогові голосові канали (все в реальному часі). ### Основна конфігурація Після встановлення є кілька речей, які ви можете розглянути для налаштування.\ У налаштуваннях (друга вкладка) ви можете вибрати **SDR пристрій** або **вибрати файл** для читання, а також частоту для синхронізації та частоту дискретизації (рекомендується до 2.56Msps, якщо ваш ПК це підтримує)\\ ![](<../../.gitbook/assets/image (245).png>) У поведінці GUI рекомендується активувати кілька речей, якщо ваш ПК це підтримує: ![](<../../.gitbook/assets/image (472).png>) {% hint style="info" %} Якщо ви помітили, що ваш ПК не захоплює сигнали, спробуйте вимкнути OpenGL і знизити частоту дискретизації. {% endhint %} ### Використання * Просто **захопіть частину сигналу та проаналізуйте її**, утримуючи кнопку "Push to capture" стільки, скільки потрібно. ![](<../../.gitbook/assets/image (960).png>) * **Тюнер** SigDigger допомагає **захоплювати кращі сигнали** (але він також може їх погіршити). Ідеально почати з 0 і продовжувати **збільшувати**, поки **шум**, що вводиться, не стане **більшим**, ніж **покращення сигналу**, яке вам потрібно). ![](<../../.gitbook/assets/image (1099).png>) ### Синхронізація з радіоканалом З [**SigDigger** ](https://github.com/BatchDrake/SigDigger)синхронізуйтеся з каналом, який ви хочете почути, налаштуйте опцію "Baseband audio preview", налаштуйте ширину смуги, щоб отримати всю інформацію, що надсилається, а потім встановіть Тюнер на рівень, перед тим як шум почне дійсно зростати: ![](<../../.gitbook/assets/image (585).png>) ## Цікаві трюки * Коли пристрій надсилає сплески інформації, зазвичай **перша частина буде преамбулою**, тому вам **не потрібно** **турбуватися**, якщо ви **не знайдете інформацію** там **або якщо там є деякі помилки**. * У кадрах інформації зазвичай ви повинні **знайти різні кадри, добре вирівняні між собою**: ![](<../../.gitbook/assets/image (1076).png>) ![](<../../.gitbook/assets/image (597).png>) * **Після відновлення бітів вам, можливо, потрібно буде обробити їх якимось чином**. Наприклад, у манчестерській кодуванні підйом+спад буде 1 або 0, а спад+підйом буде іншим. Таким чином, пари 1 і 0 (підйоми та спади) будуть реальним 1 або реальним 0. * Навіть якщо сигнал використовує манчестерське кодування (неможливо знайти більше ніж два 0 або 1 підряд), ви можете **знайти кілька 1 або 0 разом у преамбулі**! ### Визначення типу модуляції з IQ Існує 3 способи зберігати інформацію в сигналах: модуляція **амплітуди**, **частоти** або **фази**.\ Якщо ви перевіряєте сигнал, є різні способи спробувати з'ясувати, що використовується для зберігання інформації (знайдіть більше способів нижче), але хороший спосіб - перевірити графік IQ. ![](<../../.gitbook/assets/image (788).png>) * **Виявлення AM**: Якщо на графіку IQ з'являються, наприклад, **2 кола** (можливо, одне в 0, а інше на іншій амплітуді), це може означати, що це AM сигнал. Це тому, що на графіку IQ відстань між 0 і колом - це амплітуда сигналу, тому легко візуалізувати різні амплітуди, що використовуються. * **Виявлення PM**: Як у попередньому зображенні, якщо ви знайдете маленькі кола, які не пов'язані між собою, це, ймовірно, означає, що використовується фазова модуляція. Це тому, що на графіку IQ кут між точкою та 0,0 - це фаза сигналу, тому це означає, що використовуються 4 різні фази. * Зверніть увагу, що якщо інформація прихована в тому, що фаза змінюється, а не в самій фазі, ви не побачите чітко різні фази. * **Виявлення FM**: IQ не має поля для ідентифікації частот (відстань до центру - це амплітуда, а кут - це фаза).\ Тому, щоб ідентифікувати FM, ви повинні **бачити в основному коло** на цьому графіку.\ Більше того, інша частота "представляється" графіком IQ через **прискорення швидкості по колу** (тому в SysDigger, вибираючи сигнал, графік IQ заповнюється, якщо ви знайдете прискорення або зміну напрямку в створеному колі, це може означати, що це FM): ## Приклад AM {% file src="../../.gitbook/assets/sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw" %} ### Визначення AM #### Перевірка обгортки Перевіряючи AM інформацію з [**SigDigger** ](https://github.com/BatchDrake/SigDigger)і просто дивлячись на **обгортку**, ви можете побачити різні чіткі рівні амплітуди. Використовуваний сигнал надсилає імпульси з інформацією в AM, ось як виглядає один імпульс: ![](<../../.gitbook/assets/image (590).png>) І ось як виглядає частина символу з формою хвилі: ![](<../../.gitbook/assets/image (734).png>) #### Перевірка гістограми Ви можете **вибрати весь сигнал**, де знаходиться інформація, вибрати режим **Амплітуда** та **Вибір** і натиснути на **Гістограму**. Ви можете спостерігати, що 2 чіткі рівні знаходяться лише ![](<../../.gitbook/assets/image (264).png>) Наприклад, якщо ви виберете Частоту замість Амплітуди в цьому AM сигналі, ви знайдете лише 1 частоту (немає способу, щоб інформація, модуляція в частоті, використовувала лише 1 частоту). ![](<../../.gitbook/assets/image (732).png>) Якщо ви знайдете багато частот, це, ймовірно, не буде FM, можливо, частота сигналу була просто змінена через канал. #### З IQ У цьому прикладі ви можете побачити, як є **велике коло**, але також **багато точок у центрі.** ![](<../../.gitbook/assets/image (222).png>) ### Отримати символічну частоту #### З одним символом Виберіть найменший символ, який ви можете знайти (щоб ви були впевнені, що це лише 1) і перевірте "Вибір частоти". У цьому випадку це буде 1.013kHz (тобто 1kHz). ![](<../../.gitbook/assets/image (78).png>) #### З групою символів Ви також можете вказати кількість символів, які ви збираєтеся вибрати, і SigDigger розрахує частоту 1 символу (чим більше символів вибрано, тим краще, ймовірно). У цьому сценарії я вибрав 10 символів, і "Вибір частоти" становить 1.004 Khz: ![](<../../.gitbook/assets/image (1008).png>) ### Отримати біти Знайшовши, що це **AM модуляційний** сигнал і **символічна частота** (і знаючи, що в цьому випадку щось вгору означає 1, а щось вниз означає 0), дуже легко **отримати біти**, закодовані в сигналі. Отже, виберіть сигнал з інформацією, налаштуйте дискретизацію та рішення і натисніть зразок (перевірте, що **Амплітуда** вибрана, виявлена **Символічна частота** налаштована, а **Відновлення годинника Гаднера** вибрано): ![](<../../.gitbook/assets/image (965).png>) * **Синхронізація з вибраними інтервалами** означає, що якщо ви раніше вибрали інтервали для знаходження символічної частоти, ця символічна частота буде використана. * **Ручний** означає, що вказана символічна частота буде використана * У **Виборі фіксованого інтервалу** ви вказуєте кількість інтервалів, які повинні бути вибрані, і вона розраховує символічну частоту з цього * **Відновлення годинника Гаднера** зазвичай є найкращим варіантом, але вам все ще потрібно вказати приблизну символічну частоту. Натискаючи зразок, з'являється: ![](<../../.gitbook/assets/image (644).png>) Тепер, щоб змусити SigDigger зрозуміти **де знаходиться діапазон** рівня, що несе інформацію, вам потрібно натиснути на **нижній рівень** і утримувати натиснутим до найбільшого рівня: ![](<../../.gitbook/assets/image (439).png>) Якщо б було, наприклад, **4 різних рівні амплітуди**, вам потрібно було б налаштувати **Біти на символ до 2** і вибрати від найменшого до найбільшого. Нарешті, **збільшивши** **Масштаб** і **змінивши розмір рядка**, ви можете побачити біти (і ви можете вибрати всі та скопіювати, щоб отримати всі біти): ![](<../../.gitbook/assets/image (276).png>) Якщо сигнал має більше ніж 1 біт на символ (наприклад, 2), SigDigger **не має способу знати, який символ є** 00, 01, 10, 11, тому він використовуватиме різні **сірі відтінки**, щоб представити кожен (і якщо ви скопіюєте біти, він використовуватиме **числа від 0 до 3**, вам потрібно буде їх обробити). Також використовуйте **кодування**, такі як **Манчестер**, і **підйом+спад** може бути **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: ![](<../../.gitbook/assets/image (725).png>) На попередньому зображенні ви можете досить добре спостерігати, що **використовується 2 частоти**, але якщо ви **спостерігаєте** за **формою хвилі**, ви, можливо, не зможете правильно ідентифікувати 2 різні частоти: ![](<../../.gitbook/assets/image (717).png>) Це тому, що я захопив сигнал на обох частотах, тому одна приблизно є інша в негативі: ![](<../../.gitbook/assets/image (942).png>) Якщо синхронізована частота **ближча до однієї частоти, ніж до іншої**, ви можете легко побачити 2 різні частоти: ![](<../../.gitbook/assets/image (422).png>) ![](<../../.gitbook/assets/image (488).png>) #### Перевірка гістограми Перевіряючи частотну гістограму сигналу з інформацією, ви можете легко побачити 2 різні сигнали: ![](<../../.gitbook/assets/image (871).png>) У цьому випадку, якщо ви перевірите **Гістограму амплітуди**, ви знайдете **лише одну амплітуду**, тому це **не може бути AM** (якщо ви знайдете багато амплітуд, це може бути через те, що сигнал втратив потужність по каналу): ![](<../../.gitbook/assets/image (817).png>) І це буде гістограма фази (що чітко показує, що сигнал не модуляційний у фазі): ![](<../../.gitbook/assets/image (996).png>) #### З IQ IQ не має поля для ідентифікації частот (відстань до центру - це амплітуда, а кут - це фаза).\ Тому, щоб ідентифікувати FM, ви повинні **бачити в основному коло** на цьому графіку.\ Більше того, інша частота "представляється" графіком IQ через **прискорення швидкості по колу** (тому в SysDigger, вибираючи сигнал, графік IQ заповнюється, якщо ви знайдете прискорення або зміну напрямку в створеному колі, це може означати, що це FM): ![](<../../.gitbook/assets/image (81).png>) ### Отримати символічну частоту Ви можете використовувати **ту ж техніку, що й у прикладі AM**, щоб отримати символічну частоту, як тільки ви знайдете частоти, що несуть символи. ### Отримати біти Ви можете використовувати **ту ж техніку, що й у прикладі AM**, щоб отримати біти, як тільки ви **знайдете, що сигнал модуляційний у частоті** і **символічна частота**. {% hint style="success" %} Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Підтримайте HackTricks * Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)! * **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
{% endhint %}