Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: CXXXIII Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 20 января 2022 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Магеро М.В. ИЗУЧЕНИЕ РЕШЕНИЙ ДЛЯ ОРГАНИЗАЦИИ ICMP ТУННЕЛЯ // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. CXXXIII междунар. студ. науч.-практ. конф. № 2(133). URL: https://sibac.info/archive/meghdis/2(133).pdf (дата обращения: 19.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ИЗУЧЕНИЕ РЕШЕНИЙ ДЛЯ ОРГАНИЗАЦИИ ICMP ТУННЕЛЯ

Магеро Михаил Владимирович

студент, кафедра информатики, вычислительной техники и прикладной математики, Забайкальский государственный университет,

РФ, г. Чита

EXPLORING SOLUTIONS FOR ICMP TUNNEL ORGANIZATION

 

Michael Magero

student, Department of Computer Science, Computer Engineering and Applied Mathematics, Transbaikal State University,

Russia, Chita

 

АННОТАЦИЯ

В данной работе изучаются решения для организации скрытого канала передачи данных по протоколу ICMP посредством эксперимента.

ABSTRACT

In this paper, we study solutions for organizing a hidden data transmission channel over the ICMP protocol using an experiment.

 

Ключевые слова: ICMP; протокол; скрытый канал; Python; трафик.

Keywords: ICMP; protocol; hidden channel; Python; traffic.

 

ICMP Reverse Shell (icmpdoor). Обратная оболочка – это удаленная интерактивная оболочка для выполнения команд, инициированных злоумышленником для получения контроля над скомпрометированной системой. Обратная оболочка также может быть использована инсайдерской угрозой для извлечения данных по этому скрытому каналу. Корпоративные пограничные и основные брандмауэры обычно настраиваются для фильтрации, запрета, блокирования портов TCP и UDP или для каждого конкретного приложения (брандмауэр уровня 7). На рисунке 1 показано, как правильно настроенный брандмауэр должен блокировать традиционную обратную оболочку TCP или UDP.

 

tcp-reverse-shell

Рисунок 1. Правильно настроенный брандмауэр

 

ICMP расшифровывается как протокол сообщений управления Интернетом. Этот протокол часто упускается из виду или недооценивается при планировании стратегии брандмауэра. Фильтрация брандмауэра ICMP настраивается редко, что позволяет злоумышленникам обходить брандмауэры. Злоупотребление ICMP в качестве бэкдора было сделано по крайней мере одной группой APT (Advanced Persistent Threat) в прошлом. Полная блокировка протокола ICMP также будет означать, что хосты больше не смогут пинговать друг друга.

Необязательное поле данных ICMP обычно используется для обмена сообщениями об ошибках. Однако вместо сообщения об ошибке будет использоваться это поле данных для нашей полезной нагрузки обратной оболочки (Raw), размер которой может составлять не более 576 байт. Программное обеспечение будет фрагментировать полезную нагрузку, если общий её размер превысит этот максимум в 576 байт [1].

Мы также изменяем и злоупотребляем полем идентификатора ICMP до статического значения 13170, чтобы отфильтровывать легальные пакеты ICMP и соответствовать нашей обратной оболочке ICMP. В общей сложности мы фильтруем, либо обрабатываем, следующие поля заголовка [3]:

  • pkt[IP].src (IP адрес машины A или B)
  • ip[ttl] (Time To Live == 64)
  • pkt[ICMP].type (Echo Request [8] или Echo Reply [0])
  • pkt[ICMP].id (Статический идентификатор (ID) со значением 13170 == 0x3372 в шестнадцатеричном формате)
  • pkt[Raw].load (Полезная нагрузка ≠ пусто)

На рисунке 2 показаны все урони инкапсуляции пакетов и их значения, когда мы отправляем идентификатор команды Linux с ответом uid=0(root), gid=0(root), groups=0(root). Icmpdoor инкапсулируется в следующих сетевых пакетах MAC[IP[ICMP(payload)]]].

 

packet-headers

Рисунок 2. Уровни инкапсуляции

 

Модуль языка программирования Python 3 Scapy помогает управлять сетевыми полями. На рисунке 3 показан процесс подключения, выполняемый при настройке Command & Control.

 

icmp-reverse-shell

Рисунок 3. Процесс подключения

 

Для организации ICMP туннеля необходимо, чтобы на машине A был запущен icmp-cnc.exe (icmp-cnc.py) и на машине B был запущен icmpdoor.exe (icmpdoor.py), далее следует:

  1. Злоумышленник отправляет команду на хост в качестве полезной нагрузки по эхо-запросу ICMP (код 8) с идентификатором ICMP 13170;
  2. Жертва выполняет команду и отправляет обратно на машину злоумышленника через ICMP эхо-ответ (код 0) с тем же идентификатором ICMP 13170 [2].

Пример работы данного программного обеспечения представлен на рисунках 4 и 5.

 

Рисунок 4. Запуск icmp-cnc.exe

 

Screenshot_1

Рисунок 5. Запуск icmpdoor.exe и выполнение команды calc

 

  • использует тот же принцип, что и icmpdoor. Однако для установки соединения между двумя узлами есть некоторые отличительные требования:
  • Операционная система злоумышленника должна поддерживать стандарт POSIX. Одна из таковых систем – Kali Linux. Соответственно, необходимо иметь root-права в системе для успешной реализации задачи построения ICMP туннеля.
  • Операционная система жертвы должна быть только системой семейства Windows (по утверждению разработчика, всё работает начиная с ОС Windows 2000). Однако, в отличии от ОС злоумышленника, необходимости иметь жертве root-права нет, что является хорошим преимуществом, в отличии от программного обеспечения icmpdoor.

Для корректного использования данного программного обеспечения необходимо, чтобы у злоумышленника было установлено:

  1. Операционная система Kali Linux с root-правами;
  2. Python 2;
  3. Дополнительная библиотека Python 2 Impacket;

Также обязательно включить возможность игнорирования (пропуска) всего ICMP трафика. В случае, если пропустить этот этап, машина злоумышленника не сможет получать эхо-ответы от машины жертвы.

Пример рассмотрения пакета по скрытому каналу передачи данных приведён на рисунке 6.

 

response_packet_from_icmpsh_slave_containing_output_of_command_whoami

Рисунок 6. Пример рассмотрения пакета

 

На рисунке 7 показан результат выполнения команды для организации скрытого подключения и доступа к командной строке машины жертвы.

 

Рисунок 7. Результат выполнения команды

 

Для успешной реализации скрытого канала на машине жертвы необходимо также запустить сервис, как показано на рисунке 8.

 

Рисунок 8. Запуск сервиса прослушивания ICMP трафика

 

Далее, когда уже имеется скрытое подключение, можно выполнять команды на машине жертвы. Однако, командная строка, которая открыта таким способом у злоумышленника, не имеет прав администратора и «убить» систему не представляется возможным, но можно выполнять различные команды, в которых нет необходимости иметь права администратора, например, как показано на рисунке 9, можно запустить калькулятор, выполнив команду calc.

 

Screenshot_1

Рисунок 9. Пример выполнения команды

 

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

 

Список литературы:

  1. ICMP Tunneling: Defense Against the Vulnerability [Электронный ресурс]. – Режим доступа: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.61.5798&rep=rep1&type=pdf
  2. Icmpdoor – ICMP reverse shell in Python 3 [Электронный ресурс]. – Режим доступа: https://cryptsus.com/blog/icmp-reverse-shell.html
  3. An ICMP Reference [Электронный ресурс]. – Режим доступа: https://danielmiessler.com/study/icmp/
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.