VOIP Security Audit Framework

Vander

Administrator
Gold Team
16.01.2016
1 087
2 790
#1
Всем привет! В этой статье я покажу, как провести аудит безопасности систем IP-телефонии.

upload_2016-10-8_18-38-30.png

Для начала необходимо заиметь то, что мы будем проверять, для этого подойдет дистрибутив FreePBX, объясню, что это:

FreePBX - представляет собой веб-ориентированный GUI с открытым исходным кодом, который используется для контроля и управления Asterisk (PBX), - open source сервер связи. Распространяется под лицензией GNU - лицензии с открытым исходным кодом. Данный программный пакет может быть установлен вручную или в составе предварительно сконфигурированного дистрибутива FreePBX, в который входят: операционная система, Asterisk и FreePBX GUI с соблюдением всех зависимостей, для его скачивания перейдем по ссылке =>
Для просмотра контента необходимо: Войти или зарегистрироваться

Скачаем ISO, устанавливаем систему в Oracle VM VirtualBox, к примеру.

upload_2016-10-8_18-38-54.png

По адресу 192.168.0.109 будет доступен web интерфейс, для управления и настройки сервера. Перейдем по нему:

upload_2016-10-8_18-44-40.png

Если увидели это, значит все прошло успешно. Теперь непосредственно об аудите безопасности сервера.

Для этого я буду использовать VSAUDIT - VOIP Security Audit Framework.

VSaudit - представляет собой фреймворк с открытым исходным кодом который предназначен для выполнения атак на общие услуги IP-телефонии. Он позволяет сканировать всю сеть или один хост, затем переходит в фазу сбора информации, и плюс ко всему умеет искать наиболее известные уязвимости на сканируемых системах, а затем пытается их использовать.

Для его использования необходимы следующие зависимости:

· Ruby 2.3.0

· Bundler

Устанавливаем фреймворк:

> git clone
Для просмотра контента необходимо: Войти или зарегистрироваться


Далее с помощью gem – это такая система управления пакетами для языка программирования Ruby, который предоставляет стандартный формат для программ и библиотек Ruby, инструменты, предназначенные для простого управления установкой «gems» установим Bundler.

В свою очередь Bundler – это менеджер для управления зависимостями gem'ов в ruby приложениях. Он позволяет легко устанавливать необходимые gem'ы для вашего приложения.

> gem install bundler

Затем перейдем в директорию vsaudit и выполним команды:

> cd vcaudit

> bundle

upload_2016-10-8_18-45-54.png

> ruby vsaudit.rb

upload_2016-10-8_18-46-17.png


Обратимся за помощью:

> vsaudit > help


upload_2016-10-8_18-46-49.png
upload_2016-10-8_18-46-57.png

Запустим сканирование сервера Asterisk по адресу 192.168.0.109

> scan 192.168.0.109

upload_2016-10-8_18-47-37.png

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

Проверка ошибок в локальных файлах конфигурации:

В модуле modules/asterisk.rb вы можете выбрать пользовательские конфигурационные файлы, которые vsaudit проверит, используя шаблоны регулярных выражений. Есть возможность добавить или удалить конфигурационные файлы, в массив @@services используя регулярное выражение.

@@services_files = [

# file to audit. # unsecure parameter regex.

'/etc/asterisk/sip.conf' => /^(allow=|allowguest)/,

'/etc/asterisk/extensions.conf' => /^(allow)/

]

В приведенном выше примере, вы можете задать имя файла с абсолютным путем, который вы хотите проверить, устанавливая регулярное выражение для поиска соответствия в файле, vsaudit к grep в sip.conf и поиск опций конфигурации, которые начинаются с allow= or allowguest и extensions.conf для allow= options.

> vsaudit > fcheck

Checking filename: /etc/asterisk/sip.conf

regexp to matchs: (?-mix:^(allow=|allowguest))

Line 3: un-safe parameter found 'allowguest=no'

Line 9: un-safe parameter found 'allow=ulaw'

Checking filename: /etc/asterisk/extensions.conf

regexp to matchs: (?-mix:^(allow))

Перечисление используемых расширений по словарю:

> vsaudit > enum ext-list 192.168.0.109

upload_2016-10-8_18-48-45.png

Файл ext-list находится в директории /list, его можно заменить на свой.

Брутфорс расширений:

Найденные расширения можно попробовать сбрутфорсить с помощью словаря.

> vsaudit > bf ext-list psw-list 192.168.0.109

Выглядит это так:

upload_2016-10-8_18-54-24.png

Перехват сетевого трафика:

> vsaudit > live

capturing local network traffic

using barkeley packet filter: udp

Packet length: 631, Time: 2015-04-11 09:45:43

---------------------------------------------

SIP/2.0 401 Unauthorized

Via: SIP/2.0/UDP 192.168.1.196:5060;branch=z9hG4bKf083b96c-8cde-e411-85f6- 000c29bac856;received=192.168.1.196;rport=5060

From: "pentester" <sip:7001@192.168.1.100>;tag=aa7fb86c-8cde-e411-85f6-000c29bac856

To: <sip:192.168.1.100>;tag=as54658d12

Call-ID: 0683b86c-8cde-e411-85f6-000c29bac856@deftcode

CSeq: 1 INVITE

Server: Asterisk PBX 11.7.0~dfsg-1ubuntu1

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH

Supported: replaces

WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="39e13888"

Content-Length: 0

Получение, всего UDP трафика с фильтром по порту назначения.

> vsaudit > in udp dst port 5060

Запись потока трафика в файл:

> vsaudit > in udp portrange 10000-20000 record

Запись будет производиться в /raw/data.raw в фоновом режиме.

Повторюсь, что, для более развернутого сканирования, необходимо корректно настроить сервер, RTP потоки и SIP транк. Свой сервер я не настраивал.
 

Ishikawa

マエストロ
Премиум
15.11.2016
126
193
#2
Он рассчитан только на астериск или подойдет для Avaya или Grandstream?
Про брут можно вообще забыть - первым делом на АТС настраивается логирование всего и вся, в том числе неудачных попыток входа. Ко всему на том же Grandstream UCM есть fail2ban, который сообщит что кто-то делает что-то нехорошее. Перехват трафа будет работать только если не используется шифрование, как правило это свой родной кусок intranet. Между участками ip-атс (если их больше двух) соединяются туннелем, что уже обламывает прослушку. А вот позволяет ли этот фреймворк вмешаться в уже открытое соединение, скажем для прослушки разговора? И есть ли в нем DDoS?
 
Симпатии: Понравилось Vander

Vander

Administrator
Gold Team
16.01.2016
1 087
2 790
#3
Я пока не задавался последними двумя вопросами, и тестил его только на Астере не настроенном. Сейчас сконфигурировал его, и попробую запустить против полностью рабочего сервера. Еще пробовал на MVTS, но там все бесполезно.
 

Ishikawa

マエストロ
Премиум
15.11.2016
126
193
#4
Я пока не задавался последними двумя вопросами, и тестил его только на Астере не настроенном. Сейчас сконфигурировал его, и попробую запустить против полностью рабочего сервера. Еще пробовал на MVTS, но там все бесполезно.
MVTS всего-лишь NGN-шлюз, там что-то сделать вообще сложно, разве что подвержен DDoS.