The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project The BrandLinks Project

Сценарий пен-теста VoIP Asterisk Server

Tartuga

Местный
Регистрация
19.12.2019
Сообщения
101
Реакции
22
Сегодня мы катанем сценарий тестировании на проникновение VoIP сервачка на базе астерика (звездочки:), которое включает в себя, идентификейшн, сбор информации, чекинг пользователя и брутик пароля, перехват и подмену регистрации sip. У меня уже чешутся руки! В бой!

Введение в VoIP
VoIP это передача голоса по интернет-протоколу, что называется IP-телефонией, Технология VoIP позволяет совершать аудиозвонки, используя подключение к Интернету вместо обычного телефона (стационарные телефоны, мобильные телефоны). Некоторые партнеры VoIP шлюзов могут разрешать вам звонить другим людям у кого есть телефонный номер, включая местные, междугородные, мобильные и международные номера.

VoIP по умолчанию использует 5060 в качестве порта сигнализации SIP. Это используется для регистрации, когда телефон (например, Cisco, Polycom и т. д.)

Ниже перечислены функциональные возможности, обычно используемые в установках VoIP:

  • Использование нескольких линий (линий PRI, линий BRI) и расширений
  • Служба голосовой почты
  • Запись голоса
  • Административный контроль
  • Регистрация звонков
  • Модульные конфигурации
  • IVR и приветственные сообщения
Протокол SIP
Протокол инициации сеанса (SIP) позволяет нам устанавливать связь, завершать или изменять голосовые или видеозвонки. Голосовой или видео трафик передается по протоколу реального времени (RTP). SIP - это протокол прикладного уровня, который использует UDP или TCP для трафика. По умолчанию SIP использует порт 5060 UDP / TCP для незашифрованного трафика или порт 5061 для зашифрованного трафика TLS. Как мы увидим позже, векторы атаки «человек посередине» (MITM) существуют для всех типов связи, включая VoIP / SIP. Следовательно, шифрование является необходимым компенсирующим элементом управления, который должен иметь место независимо от среды или метода обслуживания. Протокол инициации сеанса основан на ASCII и очень похож на протокол HTTP, поскольку он использует модель запроса / ответа. Запросы к клиенту SIP осуществляются через SIP URI и AGI через пользовательский агент, аналогично HTTP-запросу веб-браузера.

SIP-запросы

SIP-ответы
Мы можем понять ответы, используя код ответа. Общие категории кодов ответов приведены ниже:

  • 1xx (информационный)
  • 2xx (успех)
  • 3xx (перенаправление)
  • 4xx (Неудачные запросы)
  • 5xx (веб-сервер не может выполнить запрос)
  • 6xx (глобальные ошибки)
Структура взаимодействия SIP
Типичная структура взаимодействия SIP состоит из следующего:

  1. Отправитель инициирует запрос INVITE.
  2. Получатель отправляет ответ 100 (пытается звонить).
  3. Отправитель начинает звонить, отправив ответ 180 (Звонок).
  4. Приемник поднимает трубку, и отправляется 200 успешных ответов (ОК).
  5. ACK отправлено инициатором.
  6. Вызов начал использовать RTP.
  7. Запрос BYE отправлен для завершения вызова.
Транспортный протокол в реальном времени
RTP - это сетевой протокол для передачи аудио и видео по сетям. Протокол RTP используется в системах связи и развлечений, которые включают потоковое мультимедиа, таких как приложения телефонии и видео или телеконференции. Порт по умолчанию RTP от 16384 до 32767, эти порты используются для вызовов sip. В нашем сценарии мы используем диапазон портов UDP 10000-20000 для RTP-медиапотока, голосовых и видео каналов.

Конфигурации, используемые в практических
  • Хакер:ОС: Kali Linux 2020.1
  • IP: 192.168.1.4
  • Цель: VOIP сервер: Trixbox
  • VOIP клиент: Zoiper
  • IP: 192.168.1.7
Настройка Viproy VoIP Kit
Прежде чем начать тестирование на проникновение, нам нужно добавить комплект Viproy-VoIP в наш Metasploit. Подробную процедуру добавления модулей в Metasploit можно найти здесь . Изображенные шаги взяты из Rapid7 и Viproy Author.

Нам нужно установить некоторые зависимости. Сначала мы будем обновлять наши источники, а затем установим следующие зависимости:

sudo apt update && sudo apt install -y git autoconf build-essential libcap-dev libpq-dev zliblg-dev libsqlite3-dev

Как только мы закончим установку всех зависимостей, пришло время клонировать Viproy Repository в наш Kali Linux. Он содержит модули, которые нам нужно добавить в нашу Metasploit Framework


Здесь мы видим, что у нас есть каталог lib и каталог modules, а также скрипт kaliinstall. Перед запуском скрипта нам необходимо вручную скопировать содержимое каталога lib и каталога modules в каталог lib и modules Metasploit соответственно.

cp lib/msf/core/auxiliary/* /usr/share/metasploit-framework/lib/msf/core/auxiliary/
cp modules/auxiliary/VoIP/viproy-VoIPkit* /usr/share/metasploit-framework/modules/auxiliary/VoIP/
cp modules/auxiliary/spoof/cisco/viproy-VoIPkit_cdp.rb /usr/share/metasploit-framework/modules/auxiliary/spoof/cisco/

Теперь нам нужно сделать записи модулей, которые мы скопировали, в файлах Mixins, расположенных в / usr / share / Metasploit-framework / lib / msf / core / Additional /.

echo "require 'msf/core/auxiliary/sip'" >> /usr/share/metasploit-framework/lib/msf/core/auxiliary/mixins.rb
echo "require 'msf/core/auxiliary/skinny'" >> /usr/share/metasploit-framework/lib/msf/core/auxiliary/mixins.rb
echo "require 'msf/core/auxiliary/msrp'" >> /usr/share/metasploit-framework/lib/msf/core/auxiliary/mixins.rb

Это также можно сделать вручную или с помощью другого текстового редактора. Это все, что нам нужно было сделать. Сначала мы клонируем предварительно скомпилированную версию из GitHub.

Затем мы перейдем в каталог и установим viproy, используя gem.

cd metasploit-framework-with-viproy/

Это займет некоторое время. После этого нам нужно будет перезагрузить модули в Metasploit Framework.


Это была установка Viproy Toolkit. Ну, что давайте начнем тестирование проникновения на нашем VoIP-сервере.

В сети VoIP информация, которая может оказаться полезной, - это шлюзы или серверы VoIP, системы IP-PBX, клиентское программное обеспечение (программные телефоны) / телефоны VoIP и добавочные номера пользователей. Давайте посмотрим на некоторые из широко используемых инструментов для подсчета и снятия отпечатков пальцев.

Идентификация SIP-серверов
Используя модуль sip Metasploit Scanner Module для идентификации систем, предоставляя один IP или диапазон IP-адресов, мы можем сканировать все VoIP-серверы и их включенные параметры.

use auxiliary/scanner/sip/options

Здесь мы видим, что наше сканирование дало нам VoIP-сервер, работающий на 192.168.1.7. Мы также видим, что у него есть User-Agent как «Asterisk», и мы видим, что у него включено несколько запросов.

Брутфорс
Далее мы будем выполнять грубую операцию на целевом сервере для извлечения паролей. Для этой конкретной практики мы сделали 2 словаря. Один для имен пользователей и другой для паролей. Далее нам нужно определить диапазон для расширений. Мы выбрали диапазон от 0000000 до 99999999. И затем мы запускаем эксплойт

use auxiliary/voip/viproy_sip_bruteforce
set user_file /home/kali/user.txt
set pass_file /home/kali/pass.txt

Здесь мы видим, что нам удалось извлечь 10 расширений. Убедитесь, что секрет, который мы настроили для расширения, трудно угадать, чтобы предотвратить атаку брутфорсом.

Дальше!
Теперь пришло время продвинуться на один шаг вперед и зарегистрировать расширения, чтобы мы могли инициировать вызовы с компьютера атакующего. Мы выбрали расширение 99999999. Мы взломали его секрет 999. Теперь все, что нам нужно было сделать, это предоставить IP-адрес сервера, а также расширение и секрет. Как только мы запускаем вспомогательное устройство, мы получаем ответ 200 OK от сервера, сообщающий нам, что расширение зарегистрировано с этим IP-адресом.

use auxiliary/voip/viproy_sip_register

Здесь мы должны зарегистрировать программное обеспечение, поскольку у нас нет магистральной линии, линий PSTN или линии PRI для совершения исходящих вызовов. Следовательно, мы тестируем расширение для вызова расширения.

Call Spoofing, уууу!!!!
Здесь мы можем подделать идентификатор вызывающего абонента по своему желанию. Нам нужно определить логин как true, чтобы мы могли войти на сервер с секретом 999. Мы также должны установить для числового пользователя значение true, чтобы оно могло принимать числовые расширения.

use auxiliary/voip/viproy_sip_invite

Как только мы запустим вспомогательное устройство, мы увидим, что с внутреннего номера 999999999 поступил вызов на внутренний номер 00000000, который мы установили в нашем клиенте Zoiper. Мы также видим, что у нас есть Hacker Caller ID, который мы установили во вспомогательном устройстве.


Мониторинг журнала
Мы можем отслеживать журналы на сервере VoIP, который содержит информацию обо всех вызовах, которые были инициированы, подключены, сброшены. Мы всегда можем проверить учетные данные по умолчанию. Сначала мы подключим сервер с помощью ssh, а затем запустим следующую команду, чтобы открыть панель консоли звездочки. Эта панель записывает журналы в режиме реального времени.


Сниффим звонки с помощью Wireshark
Когда пользователи инициируют телефонный звонок, мы можем наблюдать перехваченный SIP-трафик с помощью Wireshark. Запускаем Wireshark и выбираем сетевой адаптер, на котором работает VoIP-сервер. Затем мы начинаем захват пакетов. Если мы внимательно посмотрим, мы увидим, что в меню Wireshark есть вкладка под названием Телефония. В выпадающем меню у нас есть первая опция «VoIP Calls».


Как только мы нажимаем на VoIP-вызовы, открывается окно, показывающее все вызовы, которые были перехвачены во время прослушивания. Мы видим, что существует последовательность пакетов с одного IP-адреса на другой. То что надо!


Если мы нажмем кнопку «Последовательность потоков» внизу, мы увидим рукопожатия SIP Communication, о которых мы узнали во введении.

В потоке вызовов SIP есть несколько транзакций SIP. Транзакция SIP состоит из нескольких запросов и ответов, и способ группировки их в одну транзакцию заключается в использовании параметра CSeq: 103.

Первый шаг - регистрация расширения. После продления регистрация соответствует установлению сеанса. От расширения 99999999 сеанс состоит из запроса INVITE пользователя к 00000000. Сразу же прокси-сервер отправляет TRYING 100, чтобы остановить трансляции и перенаправить запрос к расширению 00000000.


Расширение 00000000 отправляет Звонок 180, когда телефон начинает звонить, и он также перенаправляет прокси пользователю А. Наконец, сообщение OK 200 соответствует процессу принятия (добавочный номер 00000000 отвечает на вызов). После вызова сервера вызовов попытайтесь назначить порты RTP, и транспортный протокол RTP начинается с параметров (порты, адреса, кодеки и т. Д.) Протокола SDP. Последняя транзакция соответствует окончанию сеанса. Это выполняется только с помощью запроса BYE к Прокси-серверу, а затем перенаправляется на расширение 00000000.

Этот пользователь отвечает сообщением OK 200, чтобы подтвердить, что последнее сообщение было получено правильно. Вызов был инициирован пользователем по имени хакер с добавочным номером 99999999 до добавочного номера 00000000. Продолжительность вызова и текущее состояние можно увидеть в приведенном выше примере. Wireshark собрал пакеты вызовов, и теперь мы можем прослушать весь телефонный звонок. После отключения мы играем весь телефонный звонок преобразования.


Когда мы нажимаем кнопку «Воспроизведение потоков», запрашивается устройство вывода на основе драйвера вашего ноутбука. Затем мы можем нажать кнопку «Воспроизвести» и услышать разговор, который состоялся во время этого вызова VoIP.


Вот так!)) немного профита в свою копилку!
 
Верх