Исполняемый файл в структуре данных

351
Mr.Robot

В прошлом году у меня возникла проблема с моим kali 2.0, работающим на VirtualBox. Короче говоря, я перестал загружаться в графическом режиме, поэтому доступ к Интернету был, по крайней мере для меня, практически невозможен.

Я хотел сделать резервную копию своих файлов на моей основной машине, а затем отформатировать виртуальную машину. Я не мог ssh с моей виртуальной машины на мой ПК с Windows, и я не мог наоборот. Итак, я установил метастабильную «фиктивную» машину, взломал ее с помощью моей кали в режиме CLI. Я использовал msfvenom для создания простой полезной нагрузки reverse_tcp meterpreter, использовал мой текущий сеанс meterpreter на метасовместимом компьютере и загрузил на него полезную нагрузку. Я мог использовать ssh (с замазкой) с моего компьютера с Windows на метастабильную виртуальную машину, но я не мог найти способ перенести полезную нагрузку с metasploitable на мой компьютер с Windows.

Поэтому я использовал hexdump, чтобы увидеть содержимое этого exe-файла, и скопировал их в мой буфер обмена на окнах (через putty). Затем я написал некоторый код C ++, чтобы взять данные hexdump в качестве ввода текста, проанализировать их и превратить в большой байтовый массив, который я затем поместил в файл (в двоичном режиме). Затем я изменил расширение этих файлов на .exe, настроил обработчик эксплойтов на моей машине kali и запустил .exe на моей машине с Windows (антивирус и брандмауэр отключены), надеясь получить сеанс meterpreter. Однако ничего не произошло, я только что получил ошибку «Несовместимый формат» (или что-то в этом роде), когда я попытался запустить .exe на Windows.

Пару недель спустя мне удалось загрузить машину kali в какой-то безопасный режим, в котором я смог использовать графический режим. Там были все мои файлы, даже сгенерированная полезная нагрузка. Вместо того, чтобы отправлять ВСЕ файлы через Интернет, я дал полезную нагрузку еще один шанс. Я загрузил его на бесплатную страницу размещения файлов и загрузил на свой компьютер с Windows. Выключил антивирус и брандмауэр, настроил обработчик сеанса и запустил его. И вот, наконец, у меня была сессия.

Я использовал команду загружать meterpreter, чтобы загрузить все мои файлы kali на мой компьютер с Windows, а затем закрыл его. Однако мне было любопытно, почему полезная нагрузка работала на этот раз, поэтому, используя версию MidnightCommander для Windows (своего рода необычный hexdump), я сравнил байты полезной нагрузки, которые я скачал через страницу бесплатного размещения файлов, и ту, которую я был преобразован из вывода hexdump. Они были точно такими же! И все же один из них работал, а другой нет. И да, я тогда попробовал их как в CLI, так и в графическом режиме, и все же скачанный был единственным, который работал в ОБА случаях.

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

Я знаю, что вы можете получить доступ к этим данным с помощью программ, таких как ResourceHacker, но кодирование:

Как вы можете загрузить исполняемый файл в программу, написанную на любом языке, чтобы вы могли поместить его в байтовый массив или, при необходимости, в более сложную структуру данных, которая может быть представлена ​​текстом (например, JSON), а затем повернуть это? сырая информация обратно в точно такой же исполняемый файл?

0

0 ответов на вопрос

Похожие вопросы