Asterisk. RTP Bleed

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
Приветствую! В этой статье поговорим об уязвимости решении для организации IP-телефонии Asterisk. Уязвимость позволяет проводить инжект RTP пакетов в разговор или прослушивать RTP трафик.

upload_2017-9-19_22-5-46.png


Для использования уязвимости нужно отправить RTP пакет на порт сервера, к которому в данный момент привязан RTP поток. Если сервер уязвим, то он ответит пакетами RTP стрима, предназначенными для абонента, который на самом деле использует этот порт для разговора. Данная уязвимость не требует от атакующего находиться между сервером и абонентом. Данная атака чем-то напоминает MITM, но даже скорее “Человек сбоку”, так как ARP Spoofing не используется.

Это становится возможным из-за алгоритма работы некоторых RTP прокси. В процессе решения «проблем», связанных с доставкой RTP пакетов при использовании NAT, прокси не требует никакой аутентификации для внесения в свою внутреннюю таблицу информации о конечных IP адресе и порте, на которые следует отправлять RTP ответы, чтобы они были доставлены абоненту. RTP прокси «запоминает» пары IP/Порт основываясь на том, с какого IP/порта прокси получает RTP пакеты от абонента.

Для того чтобы получить пакеты от стороннего абонента, нужно лишь знать RTP порт, который используется абонентом и начать отправлять на него RTP пакеты, тем самым вводя RTP прокси в заблуждение.

Уязвимости подвержены версии Asterisk c 11.4.0 по 14.6.1.

Подробнее изучить проблему можно на официальном сайте уязвимости - rtpbleed.com

Ну а моя задача проверить на уязвимость один из рабочих серверов Asterisk.

Существует бесплатный инструмент для проверки сервера на уязвимость – Rtpnatscan.

Скачиваем его себе со страницы разработчика на Github.

> git clone https://github.com/kapejod/rtpnatscan.git

> cd rtpnatscan

upload_2017-9-19_22-6-17.png


Компилируем утилиты:

> make rtpnatscan

> make rtcpnatscan

upload_2017-9-19_22-6-37.png


Зайдем на Asterisk, посмотрим, идут ли звонки, какие порты используются для RTP и т.д.

Сделать это можно командой:

> rtp set debug on

upload_2017-9-19_22-7-22.png


Теперь можно запустить на атакующем хосте RTPnatscan и попробовать захватить RTP пакеты.

> ./rtcpnatscan 23.45.545.454 0 65535 10000

Где:

· IP-адрес сервера.

· Диапазон портов, я указал полный 0 – 65535

· Количество пакетов, которое мы хотим послать.

Как видно, ниже, сервер нам отвечает:

upload_2017-9-19_22-7-50.png


Заглянем внутрь захваченных пакетов:

upload_2017-9-19_22-8-5.png


Закрашено, адрес сервера и точное его местоположение с координатами. Смотрим далее:

upload_2017-9-19_22-8-18.png


Удалось найти MAC и IP Cisco, которая есть в сети, но я не понял, к чему она тут… В целом неплохо, можно продолжать сниффить пакеты, но я на этом закончу.

Избавление от этого кроется в следующем:

· Существует официальный патч для Asterisk, но он не полностью закрывает уязвимость, поэтому есть дополнительный патч, который рекомендуется также применить. Он скачивается вместе с rtpnatsccan.

· Нужно не задавать параметр nat=yes в конфигурации Asterisk, если это допустимо в вашем случае.

· Так же рекомендуется использовать шифрование голосового трафика, чтобы даже при перехвате RTP пакетов атакующий не получил доступ к конфиденциальной информации.

На этом все. Спасибо за внимание.
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Бро - очень годную тему затронул! С нетерпением жду подобных обзоров и статей.
 

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
Бро - очень годную тему затронул! С нетерпением жду подобных обзоров и статей.
Буду развивать данное направление, с целью завернуть все в отдельный раздел форума. Я темку создавал с голосованием на эту тему. Пока накапливается материал.
 

svnsvnsvn

Member
16.01.2016
5
0
BIT
0
Отличная тема.
Автору выражаю свою моральную поддержку - ценная информация!
Занимаюсь развитием колл-центра на "*", поэтому буду фолловером Ваших трудов...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!