VoIP/SIP Hacking: как прослушивать звонки и воровать минуты
Салют, камрады. Сегодня разбираем тему, от которой у сисадминов седеют волосы, а у бизнеса — пустеют кошельки. Речь про VoIP.
Многие думают, что IP-телефония — это какая-то магия. На деле это обычные UDP-пакеты, летящие по сети. И если админ поленился (а он поленился), эти пакеты можно перехватывать, модифицировать и использовать для звонков за чужой счет.
Ниже — гайд по тому, как это работает «под капотом», чем пользуются пентестеры (и злоумышленники) и как закрыть эти дыры, пока вас не выставили на деньги.
База: Почему VoIP такой дырявый?
Чтобы понимать вектор атаки, нужно знать матчасть. В VoIP два главных героя:
- SIP (Session Initiation Protocol) — это «менеджер». Он договаривается: «Привет, я звоню с номера X на номер Y, вот мои кодеки». Работает обычно на порту 5060 UDP/TCP.
- RTP (Real-time Transport Protocol) — это «курьер». Он тащит сам голос (payload).
Главная проблема: По дефолту SIP — это просто текстовый протокол (как HTTP), а RTP — открытый поток данных. Без шифрования это все читается глазами и слушается ушами.
Вектор 1: Eavesdropping (Прослушка)
Это классика MITM (Man-in-the-Middle). Если атакующий находится в одной локальной сети с жертвой (или контролирует роутер), ему даже не нужно ничего ломать. Ему нужно просто «слушать».
Как это работает технически
SIP-телефон и АТС обмениваются пакетами. Атакующий запускает сниффер (Wireshark, tcpdump) и пишет весь трафик. Поскольку RTP не шифруется, внутри пакетов лежит чистый аудио-кодек (G.711, G.729 и т.д.).
Инструментарий
Для анализа используется Wireshark. Он настолько крут, что умеет сам собирать разрозненные RTP-пакеты в один аудиофайл.
Алгоритм (в учебных целях):
- Запускаем Wireshark.
- Ловим трафик (если мы в стороне — используется ARP Spoofing, чтобы завернуть трафик жертвы на себя).
- Идем в меню:
Telephony -> VoIP Calls. - Видим список всех звонков. Жмем
Play Streams. - Слушаем разговор в реальном времени или сохраняем в WAV.
Защита:
Единственный способ защиты — SRTP (Secure RTP). Это шифрует голос. Если перехватить SRTP, услышишь только белый шум.
Вектор 2: Toll Fraud (Воровство минут)
Это уже интереснее. Цель — найти «открытую» АТС и позвонить через нее на Кубу или платные номера (Premium Rate Numbers).
Как находят жертв
Сканируют весь интернет на порт 5060. Если сервер отвечает «SIP/2.0 200 OK» или «401 Unauthorized» — значит, там живет Asterisk или FreePBX.
Инструментарий: SIPVicious
Это швейцарский нож для SIP-аудита. Пакет утилит на Python, который должен знать каждый безопасник.
- svmap — сканер. Находит SIP-устройства в диапазоне IP.
./svmap.py 192.168.1.0/24
svwar — энумератор (переборщик). Ищет живые внутренние номера (extensions). АТС часто по-разному реагирует на существующий и несуществующий номер.
./svwar.py -e 100-999 192.168.1.10
svcrack — брутфорс. Когда номер найден (например, 101), утилита долбит его словарем паролей.
Если пароль подобран (а часто там стоит 1234, 101 или admin), злоумышленник подключается любым софтфоном (Zoiper, MicroSIP) и звонит куда угодно за счет владельца АТС.
Вектор 3: Caller ID Spoofing (Подмена номера)
SIP доверчив. В пакете INVITE есть поле From:.
INVITE sip:bob@biloxi.com SIP/2.0
From: "Boss" <sip:boss@biloxi.com>;tag=12345
To: "Bob" <sip:bob@biloxi.com>
Если провайдер или внутренняя АТС не проверяют подлинность источника, можно подставить туда любой номер. Звонишь коллеге, а у него на экране «Генеральный директор».
Для тестов: Используется утилита SIPp или модули Metasploit (auxiliary/voip/sip_invite_spoof).
Хардкорная Защита (Checklist)
Если ты админишь VoIP и не хочешь платить за чужие звонки, делай это прямо сейчас:
- TLS для сигнализации: Переводи SIP с UDP на TLS. Это зашифрует заголовки, и никто не увидит, кто кому звонит.
- SRTP для голоса: Включи шифрование медиа-трафика. Без ключа прослушка невозможна.
- Fail2Ban — мастхэв: Настрой бан IP-адреса после 3-5 неудачных попыток регистрации. Это убивает брутфорс скрипты наповал.
- Смени порты: Убери SIP с 5060 на что-то нестандартное (например, 50666). Это отсеет 90% автоматических сканеров ботнетов.
- Permit/Deny в конфигах: В Asterisk пропиши
permit=192.168.0.0/255.255.0.0иdeny=0.0.0.0/0.0.0.0для внутренних номеров. Чтобы из интернета нельзя было даже попробовать авторизоваться. - Лимиты: Поставь жесткие лимиты на международные звонки в биллинге или транке.
Итог
VoIP ломают не гении, а скрипт-кидди, потому что админы оставляют дефолтные конфиги. Не будь тем парнем, чей сервер станет бесплатным таксофоном для всего интернета.
Disclaimer: Материал предоставлен исключительно в образовательных целях для тестирования собственных сетей (Pentesting) и настройки защиты. Несанкционированное вмешательство в работу сетей связи уголовно наказуемо.

На этом все. Всем хорошего дня!
