Эксфильтрация данных с помощью DNSteal

Дата: 25.06.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности.

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

Что такое эксфильтрация данных?

Эксфильтрация данных – это процесс, во время которого злоумышленник извлекает конфиденциальные данные из системы другого компьютера и использует их для личных целей. Поскольку эксфильтрация данных – это просто передача данных по сети, ее достаточно трудно обнаружить. Каждая организация имеет дело с обработкой конфиденциальных данных, что делает атаки, связанные с эксфильтрацией данных, довольно привлекательными для хакеров. Эксфильтрация данных может быть проведена как внутри системы, так и удаленно. Внутреннюю угрозу представляют сотрудники, которые продают секретные данные фирмы для получения прибыли или случайно распространяют их, в то время как внешней угрозой является киберпреступник, который использует определенную уязвимость, чтобы проникнуть в систему, а затем украсть данные.

Что такое DNS-протокол?

Протокол DNS работает на порту TCP / UPD 53. Это протокол независимой обработки запросов, поскольку происходит обмен конкретной информацией. Он позволяет подключаться к интернету, и без него весь серфинг в всемирной паутине был бы, в принципе, невозможен. Главная функция этого протокола заключается в переводе IP-адреса в имена хостов (для удобства пользователя) и обратно. Отсюда и вытекает первостепенная важность DNS для установления интернет-соединения.

Эксфильтрация DNS-данных

Как уже известно, DNS – это протокол независимой обработки запросов, то есть он никогда не предназначался для отправки или получения данных от клиента на сервер. Даже в этом случае авторизованный DNS будет считать, что все запросы, отправленные ему, являются законными. И этот факт очень часто используется злоумышленниками: если бы запрос был сделан к поддомену, то этот запрос обрабатывался бы как данные только в том случае, если был построен правильно. Например, мошенник отправляет запрос в example.target.com и DNS target.com получает «example» в виде строки. Он будет рассматривать указанную строку как данные, и это позволит получить доступ к target.com. Далее это дает возможность злоумышленнику настроить скрытый канал с помощью сервера C2 между DNS и клиентом и получать все данные с помощью двунаправленной связи. Манипулирование DNS таким образом, чтобы получить конфиденциальные данные, называется эксфильтрацией DNS-данных.

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

Знакомство с DNSteal

DNSteal – это инструмент, который способен установить поддельный DNS-сервер, что дает возможность злоумышленнику проникнуть в сеть. Как следует из его названия, он основан на протоколе DNS и работает на порту номер 53. Инструмент используется для извлечения данных из целевого компьютера после настройки соединения и является одной из лучших утилит для эксфильтрации данных DNS. С помощью этого инструмента можно извлечь сразу несколько файлов. Он также поддерживает сжатие файлов Gzip. Все это дает хакеру возможность управлять размером пакетов, которые переносят данные по сети для того, чтобы уменьшить подозрения жертвы.

Подтверждение концепции

Нужно скачать и установить DNSteal с помощью следующей команды:

git clone https://github.com/m57/dnsteal

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

python dnsteal.py

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

python dnsteal.py 192.168.1.112 -z

Из целевой системы будет запрошен файл secret.txt по DNS-соединению, которое установится, когда будет введена данная команда. Содержание файла secret.txt можно увидеть на картинке.

Теперь генерируются две команды. Требуется скопировать первую (выделенную).

И вставить ее в папку назначения. Перед выполнением команды следует убедиться, что имя файла было изменено на имя нужного файла, как показано на картинке ниже:

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

Теперь пользователь попытается извлечь целую папку вместо одного файла. Нужно инициализировать DNS-сервер, существующий благодаря Dental tool, введя следующую команду:

python dnsteal.py 192.168.1.112 -z

Папка, которую пользователь попытался извлечь, показана на рисунке ниже, включая ее содержимое. Она содержит все типы данных, включая .pdf, .msi, .png, .dll.

Опять же, можно увидеть, что были сгенерированы две команды. Однако на этот раз пользователь скопировал вторую (выделенную) и вставил ее в папку назначения, как показано ниже:

После выполнения команды видно, что папка получена с точно вычисленной хэш-суммой MD5 для каждого файла:

Для того чтобы уменьшить заметность проведения атаки, злоумышленник может разделить файл на несколько пакетов. Эти пакеты могут иметь фиксированный размер в байтах. Злоумышленник также способен вычленить несколько байтов имени файла: это делается для того, чтобы избежать срабатывания оповещения в сети, что происходит злоупотребление размером UDP-пакета. Такая настройка может быть выполнена с помощью параметров-s, -b и-f. Эти параметры предназначены для определения значения поддомена, -b – для указания количества байтов в пакете и -f – для определения значения байтов для имени файла. После ввода следующей команды были определены 4 поддомена. Байты на пакет устанавливаются по 57, а значение имени файла равно 17.


рython dnsteal.py 192.168.1.112 -z -s 4 -b 57 -f 17

Теперь пользователь будет раскапывать файл passwd из целевого компьютера. Как видно на приведенном ниже изображении, размер файла составляет 2511 байт. Нужно просто скопировать команду и вставить ее в папку /etc в целевой системе. Опять же, перед выполнением команды следует обязательно изменить имя файла на passwd.

Как только команда будет выполнена, можно увидеть, что полученные данные разделены на куски по 243 байта, как показано на рисунке ниже. А когда прием данных будет завершен, будет отображена хэш-сумма MD5, и пользователь сможет прочитать содержимое файла с помощью простой команды cat, так как полученный файл уже будет распакован:

Пользователь смог извлечь файл с паролем. В то время как происходила передача данных, Wireshark помог проверить байты на размер каждого пакета. Кроме того, соединение было установлено, а передача данных осуществлялась с помощью порта номер 53.

Таким образом, с помощью порта и DNS осуществляется атака DNS Data Exfiltration.

Обнаружение

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

Предотвращение

Для предотвращения эксфильтрации данных DNS следует принять следующие меры:

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

Заключение

Мониторинг и ограничение доступа к другим портам, таким как FTP, SSH заставили злоумышленников придумать новые способы получения данных, такие как использование DNS. DNS является основой для каждого подключения к интернету, и поскольку каждое соединение «клиент-сервер» зависит от DNS, ограничение доступа к DNS, в принципе, невозможно. Это делает DNS привлекательным протоколом для злоумышленников. Он использует его для эксфильтрации данных.

Эксфильтрация данных DNS является реальной угрозой для всех организаций. Компании должны постоянно заниматься как выявлением, так и предотвращением утечек и потерь данных. Атаки типа Remseck и Helminth используют DNS-порт для эксфильтрации данных. Таким образом, предотвращение подобных атак – это первичная мера защиты. По результатам исследования, уже около 46% компаний стали жертвами таких атак.

Автор переведенной статьи: Shubham Sharma

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться ссылкой

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

17 + 17 =