Как хакеры используют DNS-туннелирование, чтобы владеть вашей сетью

Father

Professional
Messages
2,602
Reaction score
766
Points
113
DNS-туннелирование
У большинства организаций есть брандмауэр, который действует как фильтр между их чувствительными внутренними сетями и угрожающим глобальным Интернетом. DNS-туннелирование существует уже давно. Но это по-прежнему дорого обходится компаниям, и хакеры тратят больше времени и усилий на разработку инструментов. Недавнее исследование [1] показало, что количество атак DNS только в Великобритании за последний год увеличилось на 105%. DNS-туннелирование привлекательно - хакеры могут получать любые данные в вашу внутреннюю сеть и из нее, минуя большинство брандмауэров. Используется ли он для управления и контроля (C&C) скомпрометированных систем, утечки конфиденциальных данных за пределы или для туннелирования внутри вашей закрытой сети, DNS-туннелирование представляет собой существенный риск для вашей организации. Вот все, что вам нужно знать об атаке, инструментах и способах ее предотвращения.

Вступление
DNS-туннелирование существует с начала 2000-х годов, когда NSTX [2] - простой в использовании инструмент был опубликован для масс. С тех пор наметилась четкая тенденция - усиление безопасности межсетевого экрана привело к более широкому распространению туннелирования DNS. К 2011 году он уже использовался такими вредоносными программами, как «Morto»[3] и «Feederbot»[4] для управления и контроля, а также популярным вредоносным ПО для торговых точек - «FrameworkPOS» [5] для кредитных карт. эксфильтрация.

Почему это проблема
Первоначально DNS был создан для разрешения имен, а не для передачи данных, поэтому часто не рассматривается как угроза злонамеренного обмена данными и кражи данных. Поскольку DNS - это хорошо зарекомендовавший себя и пользующийся доверием протокол, хакеры знают, что организации редко анализируют пакеты DNS на предмет злонамеренных действий. DNS уделяет меньше внимания, и большинство организаций сосредотачивают ресурсы на анализе веб-трафика или трафика электронной почты, где, по их мнению, часто происходят атаки. На самом деле, для обнаружения и предотвращения DNS-туннелирования требуется тщательный мониторинг конечных точек.
Более того, наборы инструментов для туннелирования превратились в индустрию и широко доступны в Интернете, поэтому хакерам действительно не нужны технические сложности для реализации атак с туннелированием DNS.

Распространенные случаи злоупотреблений (и инструменты, которые делают их возможными)
  • Управление и контроль вредоносных программ (C&C). Вредоносные программы могут использовать DNS-туннелирование для получения команд от своих управляющих серверов и загрузки данных в Интернет, не открывая ни единого TCP / UDP-соединения с внешним сервером. Такие инструменты, как Dnscat2, созданы специально для использования в целях управленияи контроля .
  • Создание туннеля «обхода межсетевого экрана» - DNS-туннелирование позволяет злоумышленнику проникнуть во внутреннюю сеть, создав полный туннель. Такие инструменты, как Iodine, позволяют создавать общую сеть между устройствами, создавая полный туннель IPv4.
  • Обход авторизованных порталов для платного Wi-Fi. Многие системы администрирующих порталов пропускают весь трафик DNS, поэтому можно туннелировать IP-трафик без внесения платы. Некоторые коммерческие сервисы даже предоставляют серверный туннель как услугу. Такие инструменты, как Your-Freedom, созданы специально для выхода из захваченных порталов.

Как это работает
01.jpg

  1. Злоумышленник приобретает домен, например, site.com
  2. Злоумышленник настраивает серверы имен домена на свой собственный DNS-сервер.
  3. Злоумышленник делегирует поддомен, например tun.site.com, и настраивает свой компьютер в качестве полномочного DNS-сервера поддомена.
  4. Любой DNS-запрос, сделанный жертвой к «{data} .tun.site.com», в конечном итоге попадет на компьютер злоумышленника.
  5. Машина злоумышленника кодирует ответ, который будет перенаправлен обратно на машину жертвы.
  6. Двунаправленный канал передачи данных достигается с помощью инструмента DNS - туннелирования.

Общие наборы инструментов DNS-туннелирования
Чтобы лучше понять, как хакеры применяют эту технику, давайте рассмотрим три популярных инструмента, реализующих DNS-туннелирование.

image005.png

DNScat2
Вступление.
Большинство других инструментов DNS Tunneling ориентированы на туннелирование TCP-трафика с использованием DNS, но этот инструмент отличается. DNScat2 [6] предназначен для создания зашифрованного канала управления и контроля через DNS. Он заимствует некоторые концепции из обработчика Metasploit и сделан с учетом простоты использования.

Составные части
Инструмент разделен на два компонента: клиент и сервер. Клиент написан на C, а сервер - на Ruby.
Сервер долговечен и может поддерживать соединения от многих клиентов, что делает его основным C&C сервером. Его нужно будет запустить первым, прежде чем любой из клиентов.
После запуска сервера клиент может работать. Это откроет сеанс с сервером, который может либо пройти по иерархии DNS, что является рекомендуемым способом, либо подключиться напрямую к серверу через необработанный UDP . Для прохождения полной иерархии DNS требуется авторитетный домен, но он будет обходить большинство брандмауэров, поскольку обмен трафиком DNS осуществляется с сервером по умолчанию, настроенным на машине.
Прямое подключение к серверу - полезная функция для тестирования, но с большей вероятностью оно будет заблокировано брандмауэром.

Функции
  • Шифрование - все новые соединения автоматически шифруются. И он даже поддерживает два метода противодействия атакам «злоумышленник посередине» - передача предварительно общего секрета и проверка короткой строки аутентификации.
  • Туннели. Несмотря на то, что инструмент предназначен для C&C, он поддерживает традиционные туннели, которые позволяют пересылать TCP-трафик. Это позволяет легко туннелировать SSH и HTTP через сеанс.
  • Сессии - DNScat2 позаимствовал концепцию сессий у Metasploit. Каждая сессия открывается отдельно, и с ней можно взаимодействовать. Это позволяет злоумышленнику открыть столько туннелей с любым количеством клиентов, сколько он хочет. И даже открыть командную оболочку в отдельном сеансе аналогично обработчику Metasploit.

Проблемы
  • Ограниченное туннелирование - может туннелировать только TCP-трафик.
  • Чрезмерно упрощенный - жертвуют универсальностью ради простоты использования.
  • Ограничено сеансами - управление сеансом может стать утомительным при работе со слишком большим количеством клиентов.
  • Низкая производительность - использование записей CNAME и MX делает DNScat2 медленным по сравнению с инструментами, ориентированными на производительность, такими как Iodine.

Скриншоты

Список возможных команд в сеансе
03.jpg


Перенаправление TCP-порта 22 жертвы через туннель
04.jpg


image006.png

Йод
Вступление.
Iodine[7] позволяет туннелировать данные IPv4 через DNS-сервер. Он создает сетевой интерфейс для каждого из клиентов и соединяет их вместе, как если бы они использовали одну и ту же сеть. Эта функция уникальна для Iodine, поскольку другие инструменты DNS-туннелирования сосредоточены на туннелировании определенных портов, а не всего трафика IPv4. Это позволяет компьютерам пинговать друг друга, получать доступ ко всем портам UDP / TCP и всем другим протоколам, которые инкапсулированы заголовком IP.

Инструмент работает в Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD и Windows и требует устройства TUN / TAP. Он также встроен в Kali Linux.

Составные части
Йод поставляется в виде двух исполняемых файлов: йодированный (сервер) и йод (клиент).
Чтобы запустить сервер, вам нужен контроль над реальным доменом и сервер с общедоступным IP-адресом, на котором он будет работать. затем делегируйте субдомен серверу.
Клиенту передается один или два аргумента, первый - это локальный ретрансляционный DNS-сервер, а второй - это домен сервера. Если первый аргумент не указан, текущая настройка DNS системы будет использоваться в качестве ретранслятора.

Функции
  • Самооптимизация - размер фрагмента ответа обычно автоматически проверяется для получения максимальной пропускной способности. Также поддерживаются несколько типов запросов DNS, поэтому лучший тип запроса определяется и используется автоматически.
  • Высокая производительность - использование типа NULL позволяет отправлять данные в нисходящем направлении без кодирования. Каждый ответ DNS может содержать более килобайта сжатых данных полезной нагрузки.
  • Переносимость - работает во многих различных UNIX-подобных системах, а также в Windows.
  • Аутентификация - хотя Iodine не поддерживает полное шифрование, он позволяет выполнять аутентификацию с использованием простого пароля. Он также отслеживает аутентифицированные IP-адреса, которые могут получить к нему доступ.
  • Создает сеть - Iodine - единственный инструмент, который создает полную сеть и автоматически устанавливает IP-адрес на интерфейсах. Одновременно на одном сервере могут работать до 16 пользователей.

Проблемы
  • Туннель только IPv4 - Iodine не может туннелировать трафик IPv6 внутри туннеля.
  • Не зашифровано - туннелируемые данные вообще не зашифрованы. Чтобы избежать этой проблемы, вам придется использовать VPN внутри туннеля DNS или использовать SSH.
  • Требования к драйверу - клиент не может работать в Windows без драйвера TAP-Windows. Это делает невозможным запуск его в автоматическом режиме или включение во вредоносное ПО.

Скриншоты

Запуск сервера на Kali Linux злоумышленника
05.jpg


Запуск клиента на Windows-машине жертвы
06.jpg


Открытие оболочки привязки на порту 666 на машине жертвы
07.jpg


Подключение к оболочке bind через DNS-туннель
08.jpg


image011.png

Хейока
Вступление.
Heyoka[8] - это инструмент для эксфильтрации, который использует поддельные DNS-запросы для создания двунаправленного туннеля. Инструмент больше не находится в активной разработке и, по словам его авторов, работает до 60% быстрее, чем другие инструменты, за счет использования двоичного кодирования и записей NULL. Heyoka также фокусируется на скрытности, отправляя поддельный DNS-трафик с других хостов в сети. Это значительно затрудняет обнаружение брандмауэром и обнаружение машины, которая выполняет туннелирование. С учетом сказанного, в настоящее время он работает только в Windows.

Составные части
Heyoka представляет собой единый исполняемый файл, который может работать в двух режимах: ведущем и ведомом. Мастер действует как сервер и будет прослушивать локальный порт, например, 2222. ведомый действует как клиент и будет пересылать одно из его портов, например, 22 через туннель и позволяют злоумышленнику доступ к нему путем подключения к 127.0.0.1:2222 на главной машине. В этом примере SSH-порт жертвы будет открыт через DNS.

Функции
  • Высокая производительность - инструмент использует записи NULL и двоичное кодирование, что обеспечивает высокую пропускную способность данных.
  • Собственный исполняемый файл - инструмент написан на C, что означает, что он работает изначально без необходимости установки интерпретаторов на машине. На клиенте и сервере не требуется ничего предустановленного.
  • Механизм скрытности - инструмент использует уникальные схемы кражи данных. Он отображает сеть с помощью ARP и распределяет туннель по всей сети, подменяя трафик DNS. Ограничивая поддельный трафик этими IP-адресами и используя правильные комбинации IP / MAC-адресов, можно обнаружить несколько аномалий.

Проблемы
  • Buggy Alpha - Проект заброшен и остановлен в разработке. Так что он может работать, но он очень глючит и очень нестабилен.
  • Только для Windows. Хотя разработчики утверждают, что перенос на Unix-подобную операционную систему не будет слишком сложным, рабочая версия такого кода пока недоступна. Поскольку большинство злоумышленников предпочитают использовать дистрибутивы ОС, такие как Kali Linux, для использования Heyoka потребуется настроить новую машину.
  • Незашифрованные - как и Iodine, туннелированные данные не зашифрованы и могут быть проверены и изменены третьей стороной.
  • Шумно - хотя Хейока пытался избежать обнаружения брандмауэром, он подвергся обнаружению на уровне конечной точки. Heyoka генерирует исключительно большой объем DNS-трафика из-за механизма спуфинга. Это легко обнаружить на конечных точках.

Скриншоты

Запуск сервера на Windows-машине злоумышленника
010.jpg


Открытие оболочки связывания на компьютере жертвы с Windows и запуск инструмента
011.png


Получение соединения на сервере и взаимодействие с оболочкой привязки
012.png


Захват пакетов (отображение данных в виде обычного текста)
013.jpg

014.jpg


Резюме
Брандмауэра уже недостаточно для разделения внутренней сети и обеспечения ее безопасности, а DNS-туннелирование - лишь один из творческих приемов, которые киберпреступники используют для выхода из внутренних сетей. Например, скрытый механизм Heyoka доказывает, что то, что невидимо с точки зрения брандмауэра, очевидно, является вредоносным с точки зрения конечной точки. Для борьбы с туннелированием DNS бремя переместилось с сети на конечную точку. Специалисты по безопасности и поставщики должны проверять входящий и исходящий трафик на конечной точке, чтобы обнаружить и отразить эти атаки.

Рекомендации
[1] https://www.infosecurity-magazine.com/news/dns-attack-costs-soar-105-in-uk
[2] http://thomer.com/howtos/nstx.html
[3] https://www.symantec.com/connect/blogs/morto-worm-sets-dns-record
[4] https://chrisdietri.ch/post/feederbot-botnet-using-dns-command-and-control/
[5] https://www.gdatasoftware.com/blog/...pos-variant-exfiltrates-data-via-dns-requests
[6] https://github.com/iagox86/dnscat2
[7] https://github.com/yarrick/iodine
[8] http://heyoka.sourceforge.net/

Автор: Рон Лифински, исследователь кибербезопасности
cynet.com
 
Top