Доставка вредоноса на целевую систему через PowerShell

Доставка вредоноса через PowerShell

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

Еще по теме: Взлом Windows с помощью PowerShell

Доставка вредоноса на целевую систему через PowerShell

  • SimpleHTTPServer — модуль Python, который позволяет легко запустить веб-сервер прямо из командной строки (см. HTTP-сервер с шифрованием TLS на Kali Linux).
  • PowerShell — оболочка (shell) и язык сценариев для операционных систем Windows и Linux.

Статья в образовательных целях, для обучения этичных хакеров. Несанкционированный взлом операционных систем является незаконным и рассматривается как уголовное преступление. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.

Переходим в каталог с вредоносом и выполняем команду:

Теперь используем PowerShell для передачи файла:

Скачать EXE файл с HTTP-сервера

Важно отметить, что путь назначения не произвольный; он должен существовать. Этот однострочник не создаст каталог.

Вы наверно подумали, что передать EXE-файл по сети таким образом – плохая идея. Вы правы. Любой антивирус спалит такую попытку. Но, что, если преобразовать вредоносный бинарный файл в Base64? Затем мы могли бы записать его в обычный текстовый файл и передать с помощью PowerShell. Давайте рассмотрим этот подход.

Для начала, вернемся к нашей системе Kali и создадим вредонос  с помощью msfvenom. Затем, с помощью SimpleHTTPServer, отправим на целевую систему Windows:

Создание вредоносного файла msfvenom

Я назвал файл sneaky.exe. Теперь сожмем файл и преобразуем в Base64:

Давайте рассмотрим, шаг за шагом. Обратите внимание, что мы используем PowerShell для взаимодействия с .NET:

  1. В пространстве имен System.IO класс File содержит метод ReadAllBytes. Он открывает бинарный файл и считывает результат в байтовый массив, который называем $rawData.
  2. Затем создаем объект MemoryStream с именем $memStream, в котором упаковываем используя класс GZipStream. Другими словами, мы сжимаем содержимое $rawData с помощью gzip.
  3. Затем создаем другой массив $compressedRaw, но на этот раз данные — это наш исходный байтовый массив, сжатый с использованием gzip.
  4. Наконец, преобразовываем сжатый массив байтов в Base64. На этом этапе мы можем обращаться к $b64Compress (в данном примере — это текстовый файл).

Теперь вы можете открыть этот текстовый файл так же, как открываете любой другой обычный текстовый файл.

Base64 для скрытия вредоноса

Когда я попытался отправить его по электронной почте самому себе почта пометила как возможный вирус:

Передать вредонос на целевую систему через PowerShell

Чтобы решить эту проблему, разделим Base64 на куски кода, которые, после передачи, объединим на целевой системе. Просто удалим первые пять символов из нашего текстового файла, а затем передадим оставшиеся символы по сети:

Все это можно сделать с меньшим кодом, но я хочу показать пошагово. Как только наш сценарий получил фрагмент, мы объединяем отсутствующий кусок и сохраняем его как $final. Таким образом, $final теперь содержит код, закодированный в Base64, сжатый с использованием gzip в формате EXE. Мы можем использовать те же методы, что и ранее, только в обратном порядке, а затем использовать метод WriteAllBytes для создания EXE.

Как и все в Metasploit, это можно делать вручную, но к счастью, для работы с PowerShell, есть отличный инструмент — фреймворк Empire.

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32

Хакер-самоучка, который может взломать тостер и настроить его на отправку вам утреннего приветствия в коде Морзе.

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