В данной статье я хотел бы рассмотреть различные техники поиска информации о VoIP-устройствах в сети, а затем продемонстрировать несколько атак на VoIP.
В последние несколько лет наблюдались высокие темпы внедрения IP-телефонии (VoIP). Большинство организаций, внедривших VoIP, либо игнорируют проблемы безопасности VoIP и ее реализации, либо попросту не знают о них. Как и любая другая сеть, сеть VoIP чувствительна к неправильной эксплуатации. В данной статье я хотел бы рассмотреть различные техники поиска информации о VoIP-устройствах в сети, а затем продемонстрировать несколько атак на VoIP. Я сознательно не стал спускаться до деталей уровня протокола, поскольку данная статья предназначена для пентестеров, которые хотят для начала попробовать основные приемы. Однако я настоятельно рекомендую изучить протоколы, используемые в VoIP-сетях.
Чтобы продемонстрировать проблемы безопасности VoIP в рамках данной статьи, я использовал следующую конфигурацию лаборатории:
Рисунок 1
Рассмотрим схему лаборатории, представленную выше. Это – типичная конфигурация VoIP-сети небольшой организации с маршрутизатором, который выделяет IP-адреса устройствам, IP-PBX системе и пользователям. Если пользователь A данной сети захочет связаться с B, произойдет следующее:
Теперь, когда у нас есть ясная картина взаимодействия, давайте перейдем к развлекательной части – атакам на VoIP.
Поиск устройств (enumerating) – лежит в основе каждой успешной атаки/пентеста, поскольку он обеспечивает атакующего как необходимыми подробностями, так и общим представлением о конфигурации сети. VoIP – не исключение. В VoIP-сети нам, как атакующим, будет полезна информация о VoIP-шлюзах/серверах, IP-PBX системах, клиентских программных и VoIP-телефонах и номерах пользователей (экстеншенах). Давайте посмотрим на некоторые широко используемые инструменты для поиска устройств и создания отпечатков (fingerprints). Для упрощения демонстрации предположим, что нам уже известны IP-адреса устройств.
Smapiv сканирует отдельный IP-адрес или подсеть на предмет включенных SIP-устройств. Давайте используем smap против IP-PBX сервера. Рисунок 2 показывает, что мы смогли найти сервер и получить информацию о его User-Agent.
Рисунок 2
Svmap – другой мощный сканер из набора инструментов sipviciousv. Данный инструмент позволяет выставить тип запроса, использующийся при поиске SIP-устройств. Тип запроса по умолчанию – OPTIONS. Давайте запустим сканер для пула из 20 адресов. Как видно, svmap может обнаруживать IP-адреса и информацию о User-Agent.
Рисунок 3
При поиске VoIP-устройств для определения действующих SIP-экстеншенов может помочь поиск по номерам пользователей. Svwarvi позволяет сканировать полный диапазон IP-адресов. Рисунок 4 показывает результат сканирования пользовательских номеров в диапазоне от 200 до 300. В результате получаем экстеншены пользователей, зарегистрированные на IP-PBX сервере.
Рисунок 4
Итак, мы рассмотрели процесс поиска VoIP-устройств и получили некоторые интересные детали конфигурации. Теперь давайте воспользуемся этой информацией для атаки на сеть, конфигурацию которой мы только что исследовали.
Как уже обсуждалось, VoIP-сеть подвержена множеству угроз безопасности и атак. В данной статье мы рассмотрим три критические атаки на VoIP, которые могут быть направлены на нарушение целостности и конфиденциальности VoIP-инфраструктуры.
В дальнейших разделах продемонстрированы следующие атаки:
Когда новый или существующий VoIP-телефон подсоединяется к сети, он посылает на IP-PBX сервер запрос REGISTER для регистрации ассоциированного с телефоном идентификатора пользователя/экстеншена. Этот запрос на регистрацию содержит важную информацию (вроде информации о пользователе, данных аутентификации и т. п.) которая может представлять большой интерес для атакующего или пентестера. Рисунок 5 показывает перехваченный пакет запроса на аутентификацию по протоколу SIP. Перехваченный пакет содержит лакомую для атакующего информацию. Давайте используем данные пакета для атаки на аутентификацию.
Рисунок 5
Рисунок 6
Шаг 1: Для упрощения демонстрации предположим, что у нас есть физический доступ к VoIP-сети. Теперь, используя инструменты и техники, описанные в предыдущих разделах статьи, мы проведем сканирование и поиск устройств, чтобы получить следующую информацию:
Далее мы начнем сканировать пакеты, приходящие с 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-телефона. Это позволит нам выполнять следующие действия:
Каждое сетевое устройство имеет уникальный 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.
Это одна из простейших атак на 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, которые посещали высокопоставленные правительственные чиновники и представители ведомств обороны. Недавно он обнаружил уязвимость в продукте крупной компании, дающую возможность повышения привилегий и прямого доступа к объекту.
И мы тоже не спим, чтобы держать вас в курсе всех угроз