01.12.2011

Поиск устройств и взлом в VoIP-сетях

image

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

Автор: Sohil Garg

Введение

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

Возможные атаки на VoIP

  • Отказ в обслуживании (DoS)
  • Похищение регистрационных данных и манипуляция ими
  • Атаки на систему аутентификации
  • Подмена (спуфинг) Caller ID
  • Атаки типа "Человек посередине"
  • "Шаманство над VLAN-ами" (Vlan hopping)
  • Пассивное и активное прослушивание
  • Спам через интернет-телефонию (SPIT)
  • VoIP фишинг (Vishing)

Конфигурация лаборатории для тестирования VoIP

Чтобы продемонстрировать проблемы безопасности VoIP в рамках данной статьи, я использовал следующую конфигурацию лаборатории:

  • Trixboxi (192.168.1.6) – IP-PBX сервер с открытым исходным кодом
  • Backtrack 4 R2 (192.168.1.4) – ОС на машине атакующего
  • ZoIPerii (192.168.1.3) – программный телефон для Windows (пользователь A – жертва)
  • Linphoneiii (192.168.1.8) – программный телефон для Windows (пользователь B – жертва)

Конфигурация нашей лаборатории

Рисунок 1

Рассмотрим схему лаборатории, представленную выше. Это – типичная конфигурация VoIP-сети небольшой организации с маршрутизатором, который выделяет IP-адреса устройствам, IP-PBX системе и пользователям. Если пользователь A данной сети захочет связаться с B, произойдет следующее:

  1. Звонок A направляется на IP-PBX сервер для аутентификации пользователя.
  2. После успешной аутентификации A IP-PBX сервер проверяет присутствие экстеншена (внутреннего номера) пользователя B. Если экстеншен присутствует, звонок перенаправляется B.
  3. На основании ответа B (например, прием звонка, сброс и т. п.) IP-PBX сервер отвечает пользователю A.
  4. Если все в порядке, A начинает общение с B.

Теперь, когда у нас есть ясная картина взаимодействия, давайте перейдем к развлекательной части – атакам на VoIP.

Поиск VoIP устройств

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

Smap

Smapiv сканирует отдельный IP-адрес или подсеть на предмет включенных SIP-устройств. Давайте используем smap против IP-PBX сервера. Рисунок 2 показывает, что мы смогли найти сервер и получить информацию о его User-Agent.

Рисунок 2

Svmap

Svmap – другой мощный сканер из набора инструментов sipviciousv. Данный инструмент позволяет выставить тип запроса, использующийся при поиске SIP-устройств. Тип запроса по умолчанию – OPTIONS. Давайте запустим сканер для пула из 20 адресов. Как видно, svmap может обнаруживать IP-адреса и информацию о User-Agent.

Рисунок 3

Swar

При поиске VoIP-устройств для определения действующих SIP-экстеншенов может помочь поиск по номерам пользователей. Svwarvi позволяет сканировать полный диапазон IP-адресов. Рисунок 4 показывает результат сканирования пользовательских номеров в диапазоне от 200 до 300. В результате получаем экстеншены пользователей, зарегистрированные на IP-PBX сервере.

Рисунок 4

Итак, мы рассмотрели процесс поиска VoIP-устройств и получили некоторые интересные детали конфигурации. Теперь давайте воспользуемся этой информацией для атаки на сеть, конфигурацию которой мы только что исследовали.

Атака на VoIP

Как уже обсуждалось, VoIP-сеть подвержена множеству угроз безопасности и атак. В данной статье мы рассмотрим три критические атаки на VoIP, которые могут быть направлены на нарушение целостности и конфиденциальности VoIP-инфраструктуры.

В дальнейших разделах продемонстрированы следующие атаки:

  1. Атака на VoIP-аутентификацию
  2. Прослушивание через ARP-спуфинг
  3. Имитация Caller ID

1. Атака на VoIP-аутентификацию

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

Рисунок 5

Демонстрация атаки

Сценарий атаки

Рисунок 6

Шаг 1: Для упрощения демонстрации предположим, что у нас есть физический доступ к VoIP-сети. Теперь, используя инструменты и техники, описанные в предыдущих разделах статьи, мы проведем сканирование и поиск устройств, чтобы получить следующую информацию:

  • IP-адрес SIP-сервера
  • Существующие идентификаторы и экстеншены пользователей

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

Шаг 2: Давайте перехватим несколько запросов на регистрацию с помощью wiresharkvii. Мы сохраним их в файле с именем auth.pcap. Рисунок 7 показывает файл wireshark с результатами перехвата (auth.pcap).

Рисунок 7

Шаг 3:

Теперь мы используем набор инструментов sipcrackviii. Набор входит в состав Backtrack и находится в директории /pentest/VoIP. Рисунок 8 показывает инструменты из набора sipcrack.

Рисунок 8

Шаг 4: Используя sipdump, давайте выгрузим данные аутентификации в файл с именем auth.txt. Рисунок 9 показывает файл захвата wireshark, содержащий аутентификационные данные пользователя 200.

Рисунок 9

Шаг 5: Эти данные аутентификации включают в себя идентификатор пользователя, SIP-экстеншен, хэш пароля (MD5) и IP-адрес жертвы. Теперь мы используем sipcrack, чтобы взломать хэши паролей с помощью атаки по заготовленному словарю. Рисунок 10 показывает, что в качестве словаря для взлома хэшей используется файл wordlist.txt. Мы сохраним результаты взлома в файле с именем auth.txt.

Рисунок 10

Шаг 6: Замечательно, теперь у нас есть пароли для экстеншенов! Мы можем использовать эту информацию, чтобы перерегистрироваться на IP-PBX сервере с нашего собственного SIP-телефона. Это позволит нам выполнять следующие действия:

  • Выдавать себя за легального пользователя и звонить другим абонентам
  • Прослушивать и манипулировать легальными звонками, исходящими и входящими на экстеншен жертвы (пользователя A в данном случае).

2. Прослушивание через Arp-спуфинг

Каждое сетевое устройство имеет уникальный MAC-адрес. Как и остальные сетевые устройства, VoIP телефоны уязвимы к спуфингу MAC/ARP. В данном разделе мы рассмотрим снифинг активных голосовых звонков путем прослушивания и записи действующих разговоров по VoIP.

Демонстрация атаки

Сценарий атаки

Рисунок 11

Шаг 1: В целях демонстрации, давайте предположим, что мы уже определили IP-адрес жертвы, используя ранее описанные техники. Далее, используя ucsniff ix как средство ARP-спуфинга, мы подменим MAC-адрес жертвы.

Шаг 2: Важно определить MAC-адрес цели, который требуется подменить. Хотя ранее упоминавшиеся инструменты были способны определять MAC-адрес автоматически, хорошей практикой будет определить MAC независимо, отдельным способом. Давайте используем для этого nmapx. Рисунок 12 показывает результаты сканирования IP-адреса жертвы и полученный в результате MAC-адрес.

Рисунок 12

Шаг 3: Теперь, когда у нас есть MAC-адрес жертвы, давайте используем ucsniff, чтобы подменить ее MAC. ucsniff поддерживает несколько режимов спуфинга (режим наблюдения, режим изучения и режим MiTM, т. е. «человек-посередине»). Давайте используем режим MiTM, указав IP-адрес жертвы и SIP-экстеншен в файле с именем targets.txt. Этот режим гарантирует, что прослушиваются только звонки (входящие и исходящие) жертвы (пользователь A), не затрагивая другой трафик в сети. Рисунки 13 и 14 показывают, что ucsniff подменил MAC пользователя A (в ARP-таблице).

Рисунок 13

Рисунок 14

Шаг 4: Мы успешно подменили MAC-адрес жертвы и теперь готовы прослушивать входящие и исходящие звонки пользователя A по VoIP-телефону.

Шаг 5: Теперь, когда пользователь B звонит пользователю A и начинает диалог, ucsniff принимается записывать их беседу. Когда звонок завершается, ucsniff сохраняет записанную беседу целиком в wav-файл. Рисунок 15 показывает, что ucsniff обнаружил новый звонок с экстеншена 200 на экстеншен 202.

Рисунок 15

Шаг 6: Когда мы закончим, мы вызывем ucsniff снова с ключом –q, чтобы прекратить спуфинг MAC в системе и, таким образом, гарантировать, что после завершения атаки все встало на свои места.

Шаг 7: Сохраненный аудиофайл можно проиграть, используя любой известный медиаплеер вроде windows media player.

Спуфинг Caller ID

Это одна из простейших атак на VoIP-сети. Спуфинг ID абонента соответствует сценарию, когда неизвестный пользователь может выдать себя за легального пользователя VoIP-сети. Для реализации данной атаки может быть достаточно легких изменений в INVITE запросе. Существует множество способов формирования искаженных нужным образом SIP INVITE сообщений (с помощью scapy, SIPp и т. д.). Для демонстрации используем вспомогательный модуль sip_invite_spoof из фреймворка metasploitxi.

Сценарий атаки

Рисунок 16

Шаг 1: Давайте запустим metasploit и загрузим вспомогательный модуль voip/sip_invite_spoof.

Шаг 2: Далее, установим значение опции MSG в User B. Это даст нам возможность выдавать себя за пользователя B. Пропишем также IP-адрес пользователя A в опции RHOSTS. После настройки модуля, мы запускаем его. Рисунок 17 демонстрирует все настройки конфигурации.

Рисунок 17

Шаг 3: Вспомогательный модуль будет посылать измененные invite-запросы жертве (пользователю A). Жертва будет получать звонки с моего VoIP телефона и отвечать на них, думая, что говорит с пользователем B. Рисунок 18 показывает VoIP-телефон жертвы (A), которая получает звонок якобы от пользователя B (а на самом деле от меня).

Рисунок 18

Шаг 4: Теперь A считает, что поступил обычный звонок от B и начинает говорить с тем, кто представился как User B.

Заключение

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

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

Об авторе

Сохил Гарг – пентестер в PwC. Области его интересов включают разработку новых векторов атак и тестирование на проникновение в охраняемых средах. Он участвует в оценках защищенности различных приложений. Он докладывал о проблемах безопасности VoIP на конференциях CERT-In, которые посещали высокопоставленные правительственные чиновники и представители ведомств обороны. Недавно он обнаружил уязвимость в продукте крупной компании, дающую возможность повышения привилегий и прямого доступа к объекту.


Ссылки

i http://fonality.com/trixbox/
ii http://www.zoiper.com/
iii http://www.linphone.org/
iv http://www.wormulon.net/files/pub/smap-blackhat.tar.gz
v http://code.google.com/p/sipvicious/
vi http://code.google.com/p/sipvicious/
vii http://www.wireshark.org/
viii Этот инструмент можно найти в Backtrack 5 в каталоге /pentest/voip/sipcrack/
ix http://ucsniff.sourceforge.net/
x http://nmap.org/download.html
xi http://metasploit.com/download/
или введите имя

CAPTCHA
Dmitry
02-12-2011 10:09:33
А не проще взломав сам IP- телефон по сети, получить всю интересующую информацию, включая идентификаторы? А заодно и телефон перевести в полицейский" режим, когда не только разговоры по нему слушаются, но и вообще все разговоры в помещении, где он расположен, без поднятия трубки!
0 |