Задача: Спрятать любой файл в JPEG’Е

 

Решение

Давно уже руки чесались написать что-нибудь про стеганографию. Как нам сообщает Wikipedia, стеганография — это наука о скрытой передаче информации путeм сохранения в тайне самого факта передачи. Например, невидимые чернила — это один из классических методов стеганографии. В той же Вики написано, что можно писать молоком (как Ленин), а с помощью огня проявлять текст. У меня молока не было, только сгущeнка. Попробовал — не получилось. Сгущeнка палится, видать метод ненадежный… Лучше съесть :).

Но мы живeм в XXI веке, и технологии требуется использовать соответствующие. Некто Антуан Санто опубликовал недавно небольшую работу по поводу скрытия любых файлов в jpeg’ах (dl.packetstormsecurity.net/papers/general/Embedding_hidden_files_in_jpeg_and_abuses.pdf).

В общем-то, ничего нового он не открыл, но зато всe чeтко и последовательно описал :). Суть метода, который использовал Антуан, заключается в том, что мы можем хранить/прятать любое количество данных в exif-заголовках jpeg-файлов. Exif — это стандарт, позволяющий добавлять к изображениям и прочим медиафайлам дополнительную информацию (метаданные), комментирующую этот файл, описывающую условия и способы его получения, авторство и так далее. В общем, метаданные. Все современные фотоаппараты добавляют такую инфу к фоткам, а многие принтеры используют еe для корректной печати.

Мы же эти заголовки используем для своих целей. Автор заюзал для своих экспериментов какой-то linux. Для начала поступим аналогично. Возьмeм любую фотку — test.jpg, и файл, который хотим спрятать — evil.exe. Для начала посмотрим содержимое exif-заголовков нашего jpeg’а:

exiftools test.jpg

Здесь exiftools — стандартная тулза для работы с exif. Главная особенность exif — количество хранимых данных не ограничено. Единственное ограничение — текстовый формат. Отсюда и решение — конвертируем наш evil.exe в Base64.

uuencode –m evil.exe evil.exe > evil.txt

Здесь uuencode — тулза для работы с конвертацией; –m — указываем, что конвертируем в Base64.
Теперь добавим полученный файл в exif-заголовок файла test.jpg.

exiftool –Comment "<=" evil.txt test.jpg

Где:

  • -Comment — указываем имя поля, куда добавить данные;
  • "<=" evil.txt — добавить данные из файла evil.txt.

Теперь если ты запустишь exiftools test.jpg, то обнаружишь изменения в заголовках.
Таким образом, мы всe спрятали. Изображение при этом никак не изменилось. Разве что размер файла увеличился. Конечно, метод лайтовый, и задетектить его просто. Но самое интересное заключается в том, что мы можем залить этот файл в альбом на facebook или на flickr! Вообще говоря, мы можем залить и файлы, в которых использовались даже более крутые средства стеганографии (инфу прячут в самом изображении), но на всех онлайн-сервисах графические файлы проходят предобработку и содержимое меняется. Но это не касается exif-заголовков! Только Вконтакте эта тема не работает — там имеет место полная обработка изображения.

Для декодирования и получения evil.exe из нашего jpeg’а нам требуется выполнить следующую последовательность. Качаем фотку с фэйсбука, а далее:

dd if=test_from_FB.jpg of=test_from_FB.uue bs=1 skip=24

Где dd — стандартная тулза для конвертации и копирования файлов;
if — из какого файла; of — в какой файл; bs=1 — размер блока 1 байт;
skip=24 — пропустить первые 24 байта (заголовок jpeg).

Таким образом, мы получим в test_from_FB.uue только текстовые строки, то есть наш evil.exe в Base64. Далее декодируем строку образно в exe-файл:

uudecode test_from_FB.uue

Вторым плюсом этого метода является его простота. Пример приведeн для *nix’ов, но то же самое можно сделать и в Win, только потребуется больше работать ручками. Например:

  1. Заходим в свойства jpeg.
  2. Открываем вкладку "Подробно" (это и есть exif).
  3. Изменяем любое поле на заметную строку.
  4. Открываем jpeg в каком-либо редакторе.
  5. Ищем заметную строку.
  6. Вставляем вместо неe файл в Base64.

Для конвертации файлов в Base64 можно воспользоваться любым онлайн-сервисом.

 

Задача: Проверить «малварь» на детектируемость, или замена VIRUSTOTAL

 

Решение

Да, антивирей развелось видимо-невидимо! Они теперь фактически входят в стандартный комплект ПО любого ПК. И чтобы кого-то заразить (естественно, в ознакомительных целях), нам приходится эти антивири обходить.

На самом деле, если действовать по всем правилам, то желательно знать, что у жертвы за антивирь, да и вообще «характеристики» системы — ОС, фаера и так далее. Тогда можно будет накатить на вируталке аналогичную, максимально сэмулированную систему и протестить всю атаку, чтобы она потом прошла, как по маслу.
Самым простым способом определения точной версии антивиря является, наверное, электронная почта. Нам требуется, чтобы наша жертва что-нибудь нам написала. Фишка в том, что большинство антивирусов проверяет как отсылаемую, так и присылаемую почту, добавляя в поле «X-Antivirus-Status:» заголовка письма запись о том, что письмо проверено. А в поле «X-Antivirus:» указывается, с использованием какого антивируса проводилась проверка. Иногда прописывается даже версия антивируса и дата апдейта базы, что, безусловно, важно. Кстати, аналогичным образом можно узнать о применении спам-фильтра (поле «X-spam») и использованном для отправки почты ПО (поле «X-Mailer»).

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

Кстати, здесь под «малварью» давай понимать что-то более обширное. Пусть это будут как всякие вири, так и хакерские тулзы. Ведь даже с безобидным netcat’ом были проблемы из-за детектов.

Итак, в ходе поисков нашлась следующая группа онлайн-сервисов:

Основной же «проблемой» большинства сервисов является то, что итоги их работы попадают в антивирусные компании. То есть запихнeм мы туда подозрительный бинарник, который покамест палится лишь частью антивирусов — и тем, которые не спалили файл, будет отправлен соответствующий отчeт. Таким образом, через некоторое время и остальные антивирусы добавят сигнатуры в свои базы. Но на самом деле не всe так страшно. Отчeтов в антивирусные компании отсылается много, обрабатываются они медленно, а многое и вовсе отбрасывается.

Кроме того, у большинства перечисленных сервисов есть галка в стиле «No distribute», которая предполагает, что файлы/результаты не будут никуда отправляться. Но на античате (forum.antichat.ru/threadnav32269-1-10.html) есть старый пост, говорящий об обратном.

Типа, такие файлы наоборот подвергаются более тщательной проверке. Вместе с тем, в сети нашлась ещe парочка онлайн-сервисов, которые утверждают, что никуда ничего не отправляют, но они платные (недорого).

 

Задача: Перебор паролей по-умному

 

Решение

Я уже не раз описывал тему перебора аутентификационных данных в том или ином контексте, не пропущу и сегодня. Такая информация важна, так как это распространeнная уязвимость, актуальная для самых разных систем, которые в итоге очень просто эксплуатировать. В подтверждение этому — доклад Дмитрия Евтеева (Positive Technologies) — ptsecurity.ru/download/PT-Metrics-Passwords-2009.pdf.

В нeм представлена большая и хорошая статистика по российским компаниям. Документ не очень новый, но всe равно актуальный. По нему становится ясно, как перебирать пароли и куда идти с ними дальше :). В качестве бонуса — разнообразные словари самых распространeнных паролей с привязкой к ресурсам можно почерпнуть тут:

В заключение — мотаем на ус самые распространeнные пароли «в среднем по больнице»:

  • 123456 (+\- 2 символа);
  • Qwerty;
  • abc123;
  • password;
  • название_сервиса;
  • имя_пользователя.
 

Задача: Закачка бинарных файлов жертве (BIN2HEX)

 

Решение

Достаточно распространeнная ситуация, когда ломаешь win-системы (хотя и под nix’ами бывает) и понимаешь, что шелл есть, а сделать с ним ничего нельзя. Это связано в основном с ограниченностью консольного ПО винды, а также с наличием всяких файерволов. В общем, задача классическая: закачать файлик «через консоль».

Для этого можно воспользоваться старым добрым методом — через debug.exe. Debug — это стандартная программа-отладчик в Windows, которую используют для проверки и отладки выполняемых файлов.

Метод чем-то похож на описанный выше стеганографический. Для начала мы конвертируем наш exe-файл в hex (шестнадцатиричный формат). Но не просто в хекс, а в специально отформатированный хекс. Подав его на «вход» debug’у, мы на выходе получим полноценный exe’шник.

Чтобы соблюсти это специальное форматирование, воспользуемся сторонним продуктом — Fast Track’ом или каким-нибудь другим (в Сети их целый пучок).
Fast Track — это ещe одно ответвление/фронт-энд к Metasploit’у. За ним уже не особо следят, потому есть проблемы в работе, хотя он всe равно включeн в BackTrack R2. Ну да ладно, к делу.

  1. Запускаем Fast Track.
  2. Выбираем "Binary to Hex Payload Converter".
  3. Прописываем путь к exe-файлу, который необходимо конвертировать.

В итоге мы получим последовательность echo, которую и потребуется ввести в консоль жертве. Понятно, что вводить вручную — безумно. Но автоматизация, как понимаешь, зависит от ситуации. Пример профессиональный и применим к продукту от Citrix (с использованием протокола RDP). В общем, всe было бы просто и элегантно, но есть большой минус: ограничение на размер создаваемого файла, а именно — 64 Кб. Это очень мало. Мы можем залить тот же netcat (например, его старую версию весом 60 Кб) или какой-нибудь легкий шелл-код из Metasploit’а, но meterpreter уже великоват. Тем не менее, это ограничение можно обойти. Как?
Сначала небольшое отступление. Вышеописанный метод очень часто используется для загрузки файлов на сервер через захваченный MSSQL-сервер, используя процедуру xp_cmdshell (данная процедура позволяет выполнять команды ОС из СУБД). Потому и способ обхода отчасти «привязан» к MSSQL.

Его первое описание было сделано на DefCon 16 в 2008 году компанией Securestate (defcon.org/images/defcon-16/dc16-presentations/defcon-16-panel-black_vs_white.pdf). Описанную в документе тулзу было непросто найти, так как на неe уже давно забили (https://media.defcon.org/dc-16/tools/sa_exploiter.rar). Суть способа тоже вполне проста — мы сначала закачиваем exe’шник-конвертер, некий аналог debug.exe, только со снятыми ограничениями на размер файла. А потом пользуемся им для создания больших файлов по тому же алгоритму, что и с debug’ом.

К сожалению, мне не удалось найти в сети конкретного описания, как работает данный конвертер (похоже, на гугле меня забанили). Но всe не так уж плохо. В Metasploit’е есть модуль, который реализует загрузку больших файлов через MSSQL, как раз используя конвертер (метод c DefCon’а). Описание и исходный код в простейшем для портирования виде (в новых версиях MSF он усложнился) можно взять на offensive-security.com/metasploit-unleashed/The_Guts_Behind_It.
Для BackTrack’а 4 путь к файлу-конвертеру лежит в /opt/metasploit3/msf3/data/exploits/mssql. Файл (h2b) уже находится в hex-виде для debug’а. Таким образом, нам остаeтся залить его, используя тот или иной способ, в файл (например, converter.tmp):

Создаeм exe-шник:

debug < converter.tmp

Переименовываем с правильным расширением:

move converter.bin converter.exe

Далее мы можем закачивать любые другие exe-файлы. Здесь также потребуется автоматизация. При этом «закачка» происходит просто в hex-виде. Последний шаг — конвертировать hex-файл в exe. Он создастся с тем же именем, что и файл на входе:

converter.exe evil_fi le_hex.txt

Напоследок расскажу об очередном минусе данного метода — в последних версиях Windows отсутствует debug.exe. В каких именно — вопрос (в Win7 файла точно нет).

 

Задача: Определение версий плагинов браузера, используя javascript

 

Решение

Браузеры уже давно являются одной из основных целей, одним из главных мест для проникновения и захвата систем. Оно и понятно. Интернет — это наше всe, а браузер — основное средство для взаимодействия. Ввиду разнообразия применяемых в Сети технологий одного браузера не хватает, и к нему ставятся плагины.
Классический набор: flash, pdf reader, java. И каждый из плагинов добавляет новый вектор атаки. Понятно, что в разных версиях браузеров/плагинов свои собственные уязвимости, и эксплуатация их часто различна, а потому необходимо точно определить версию ПО перед атакой.

Предположим, мы подсунули нашей жертве ссылку на наш сайт. Практически 100%, что при заходе на него в http-заголовке будет передана точная версия браузера в поле «User-Agent». Но информацию о плагинах мы можем получить, только используя JavaScript. Можно было бы показать несколько лайтовых примеров о том, как получить версию плагина, но, во-первых, их легко найти в сети, а вовторых, они не особо юзабельны, так как взаимодействие с плагинами в IE происходит посредством соответствующих ActiveX-элементов, а в других браузерах — напрямую с плагинами.

Таким образом, код под различные браузеры — разный. В-третьих, кроме того, что плагин установлен, он должен быть включeн (enabled).

В-четвертых — зачем изобретать велосипед? Есть несколько «детекторов», многие из которых входят в стандартные веб-фрэймворки. Мне по нраву pinlady.net/PluginDetect, который написал Эрик Гердс.

Детектор определяет версию Java, QuickTime, Flash, Shockwave, Silverlight, а также версии различных PDF-ридеров и ещe нескольких плагинов. То есть, основные темы, через которые ломают. К тому же можно дописать детект других плагинов по аналогии. На сайте есть подробное описание работы и возможность настроить детектор под себя. В итоге мы получаем с сайта javascript-файл plugindetect.js.

Подпихиваем его на наш сайт:

<script type="text/javascript" src="plugindetect.js"></script>

И получаем версию Adobe Reader, например:

var reader_version = PluginDetect.getVersion("AdobeReader");

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

 

Задача: Сделать журнал ][ лучше!

 

Решение

Всe просто — group.xakep.ru. Вступай в фокус-группу и излагай свои мысли и пожелания по материалам журнала. Могу тебя уверить, что многие авторы читают отзывы читателей, реагируют на них. Так что это реально действенный способ изменить что-то к лучшему.

Оставить мнение

Check Also

Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10

Этой осенью Windows 10 обновилась до версии 1709 с кодовым названием Fall Creators Update …