Мультизагрузочная флешка для хакера.

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

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

Когда в BIOS появилась опция загрузки с USB-накопителей, жизнь хакеров навсегда изменилась. С тех пор при помощи крохотного устройства за любым компьютером стало можно делать что угодно, не вскрывая его корпус и не привлекая внимания. Получить полный контроль над системой можно, только выйдя за ее пределы.

Мультизагрузка

Сегодня с флешки может загрузиться практически любая операционка. Многие ОС вообще создают слой аппаратных абстракций HAL прямо в процессе инсталляции или тестовой установки на RAM drive. Начиная с Windows XP доступна удобная среда предустановки — WinPE. Сейчас она доросла до версии 5.1 и базируется на Windows Kits 8.1 Update. После некоторых модификаций WinPE позволяет делать почти все то же, что и установленная Windows. Например, устанавливать драйверы не только в процессе загрузки, но и после нее.

Приверженцы «старой школы» наверняка оценят FreeDOS. Она достаточно всеядна — ей подойдет любая платформа x86. В этой операционке доступны даже браузер и медиаплеер. Современные дистрибутивы Linux легко запускаются в режиме Live, а некоторые даже имеют функцию сохранения изменений после перезагрузки — USB persistence. Многие программы для восстановления данных и антивирусной защиты сами создают образы загрузочных дисков, которые можно поместить на флешку. Словом, выбор компонентов для мультизагрузки очень большой.
[ad name=»Responbl»]
Загрузившись в режиме WinPE, ты сможешь с помощью соответствующих утилит менять в установленной ОС Windows пароли, системные файлы и настройки реестра, которые заблокированы даже для админа. Системы со сквозным шифрованием и дополнительной защитой так просто не одолеть, но рядовой домашний или офисный компьютер — легко. Отдельные программы позволяют получить полный контроль над железом, также невозможный в обычных условиях из-за ограничений на уровне прав, драйверов и служб. Весь этот набор
инструментов часто записывают на разные носители, поскольку они отличаются по требованиям и конфликтуют друг с другом, но есть способы объединить многие из них в универсальную сборку. Этим мы и займемся.

Нам понадобятся:
•     флешка емкостью от 8 Гбайт;
•     загрузчик GRUB;
•     набор образов с желаемыми программами и операционными системами;
•     утилита WinContig;
•     программа WinSetupFromUSB (опционально).

КАК ВЫБРАТЬ ФЛЕШКУ ИЗ ИМЕЮЩИХСЯ

Узнать наверняка, что находится внутри конкретной флешки, можно только после покупки. Обойтись без вскрытия ее корпуса помогает база данных iFlash и утилиты для идентификации по VID/PID. Среди многих аналогов бесплатная утилита Flash Drive Information Extractor производства компании ANTSpec Software — единственная, корректно работающая с USB 3.0 и новыми контроллерами.

usb1 usb2

Каждая перезапись уменьшает ресурс памяти, поэтому модели с чипами TLC лучше не использовать. Современные чипы NAND MLC делятся по ресурсу на два класса: 3K (до 3000 циклов перезаписи) и 5K (до 5000 циклов перезаписи). Последние ставят в дорогие SSD, и обнаружить такой чип внутри флешки маловероятно. Память SLC с ресурсом до ста тысяч циклов и сейчас выпускается только для SSD корпоративного класса и буферов гибридных накопителей. Флешки с такой памятью перестали делать много лет назад.

[ad name=»Responbl»]

В окне Flash Drive Information Extractor отображается тип чипов памяти, их предположительный производитель и максимальная сила тока. По ней можно судить о потребляемой мощности, а значит — прогнозировать степень нагрева флешки и ее способность длительно работать в проблемных условиях. На заре производства USB-Flash они оснащались качественным термоинтерфейсом, схемой стабилизации питания, защиты от помех и даже от переполюсовки. Современные модели, как правило, совершенно беззащитны. Теперь флешки — это не высокие технологии, а расходный материал.

GRUB — GRAND UNIFIED BOOTLOADER

Загрузчик GRUB далеко не единственный, но очень удобный вариант создания мультизагрузки. Он универсален, поддерживает как старые, так и все современные технологии загрузки. К тому же синтаксис команд для других загрузчиков (в частности, Syslinux) легко переписывается в строчки меню GRUB.

GRUB, как и многие опенсорсные проекты, за годы своего существования разделился на разные варианты. Есть WinGRUB, Grub2Win, GRUB4DOS и прочие форки. Наиболее простой и безопасный для нашей задачи — Grub4DOS USB Installer, написанный на Visual C++ в конце 2012 года. Эвристический анализатор некоторых антивирусов может на него ругаться из-за использования API DeviceIOControl, необходимой для записи бут-сектора. Подробнее смотри отчет VirusTotal.

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

Установка GRUB на флешку одним кликом
Установка GRUB на флешку одним кликом

Для установки Windows 8, 8.1, 10 и некоторых других операций это вообще обязательное условие. Изначально все флешки продаются с разделом FAT32. Создать раздел NTFS может сам инсталлятор GRUB — главное, не ошибиться при выборе диска. Предварительно нужно очистить флешку, переписав вседанные на другой носитель. Теперь остается выбрать ее из списка в окне Grub4DOS USB Installer и нажать «Установка». Через несколько секунд все операции будут завершены, подтверждением чему станет файл menu.lst в корне флешки. Это лишь пример меню, который мы скоро будем править.

СОЗДАЕМ НАБОР

Перед началом работы советую Установка GRUB на флешку одним кликом прочесть статью полностью и заранее скачать все необходимое по указанным в тексте ссылкам. Каждая из них
была проверена, как и процедура мультизагрузки. Начнем с простого: скачаем программу для диагностики оперативной памяти MemTest86 Free (подробности смотри в статье «Как решить проблемы с компьютером с помощью бесплатных программ.»). Ее целесообразно поместить сверху списка будущего меню, так как первый пункт выбирается автоматически через несколько секунд. Если пропустишь момент, то просто нажмешь Esc, избегая долгого ожидания загрузки чего-то более тяжелого. Для современных компьютеров с DDR4 понадобится версия 6.1.0 или новее. Она же включает релиз 4.3.7, который автоматически загрузится при определении старых типов памяти.

Утилиту можно найти на официальном сайте PassMark и запускать с одной флешки вместе с последней версией MemTest86+. Это форк, который прекратил развитие, но до сих пор имеет некоторые преимущества.

Memtest for usb flash drive
Утилита MemTest с автозагрузкой версии для старых типов памяти

ЗАПИСЫВАЕМ СВОЕ МЕНЮ

Открываем файл menu.lst «Блокнотом» и пишем строки:

timeout=20
default 0
splashimage (hd0,0)/Boot/gfx/cooltheme.xpm

Первая строка задает время ожидания выбора пункта в секундах. Если ничего не выбрано, то автоматически загружается пункт, указанный во второй строчке.
Третья строка — путь до картинки в формате XPM, на фоне которой отображается меню. Далее идут непосредственно вызовы других загрузчиков для запуска разных утилит и операционок. Название каждого пункта произвольное и записывается после ключевого слова title. Затем указывается метод загрузки и путь до образа ISO относительно корня флешки. Подробнее синтаксис рассматривается в объемном руководстве.

title MemTest86 v.6.1.0
map /img/MemTest86-610.iso (0xFF)
map --mem /img/MemTest86-610.iso (0xFF)
map --hook
chainloader (0xFF)

Здесь и далее все образы будут размещаться в каталоге /img/, но можно указать любой путь (желательно покороче). Аналогично прописываем загрузку MemTest86+.

title MemTest86+ v.5.01
map /img/MemTest86p-501.iso (0xFF)
map --mem /img/MemTest86p-501.iso (0xFF)
map --hook
chainloader (0xFF)

Меняется только название и ссылка на образ, однако далеко не все ISO можно загружать таким простым методом. Зато, помимо ISO, на флешку можно поместить образы в формате IMA. Ради эксперимента добавим набор утилит от Active@, среди которых есть программа для сброса пароля любой учетной записи и разблокировки аккаунтов в Windows. В среде WinPE она работает с Windows от версии 2000 до 8.1 включительно, а также Windows Server (2000– 2012). Релиз для DOS гораздо старее и официально поддерживает только сброс паролей в XP, хотя файлы SAM порой находит и в более свежих версиях Windows. Скачивается утилита все так же в виде образа ISO, но внутри него есть файл floppy_2.88.00.ima, который ради экономии места можно извлечь, переименовать и загружать напрямую. Способ здесь уже другой — эмуляция FDD.

title Active@ toolkit with Password Changer
find --set-root /IMG/active.ima
map --mem /IMG/active.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
Active for dos
Набор утилит Active@ для DOS запускается с NTFS

Продолжить ностальгировать можно будет позже в среде FreeDOS, а сейчас мы займемся более актуальными вещами. Интегрируем в мультизагрузку набор средств диагностики и восстановления — Microsoft DaRT. Подписчики программы Software Assurance могут его создать с помощью комплекта Microsoft Desktop Optimization Pack, а остальные — попросить у знакомого админа или найти в интернете. Получив образ, просто откроем его и скопируем каталог ERDC в корень флешки. В меню добавим следующие строчки:

title MS DaRT
map --unmap=0:0xff
map --unhook
root (hd0,0)
chainloader /ERDC/bootmgr
Microsoft Dart
Запуск Microsoft DaRT

Альтернативный вариант — ничего не распаковывать, а загружать версии дисков восстановления x86- и x64-систем прямо из образов, созданных на своем компьютере:

title Win 7 x86 Recovery
find --set-root /img/W7-x86-Repair.iso
map /img/W7-x86-Repair.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
title Win 7 x64 Recovery
find --set-root /img/W7-x64-Repair.iso
map /img/W7-x64-Repair.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
Создание диска восстановления штатными средствами
Создание диска восстановления штатными средствами

Способ с распаковкой надежнее и менее требователен к объему оперативной памяти. Второй способ удобнее и быстрее для интеграции.
Установка Windows с USB-накопителей имеет свои особенности. Для Windows 7 достаточно скопировать все файлы из образа на флешку (например, с помощью UltraISO) и написать простую команду в меню GRUB:

title Windows 7 Setup
root (hd0,0)
chainloader /bootmgr
boot

Ручная интеграция нескольких установочных дистрибутивов Windows на одной флешке — тема для отдельной статьи, как и пошаговое создание сборок на основе WinPE. Здесь же мы возьмем для примера готовые и сосредоточимся на режиме Live USB.

На следующем шаге добавим самый универсальный инструмент — сборку на основе WinPE. Для старых компьютеров подойдет Alkid Live CD, а для новых — Xemom1. Разумеется, можно взять и другие — механизм их загрузки типовой. Главное, не допускать конфликтов на уровне общих имен каталогов и разных версий файлов. Например, каталог BOOT встречается во многих сборках, а EFI нужен для установки последних версий Windows.

[ad name=»Responbl»]

Интеграция Alkid Live CD проходит в три простых этапа. Сначала распаковываем из образа в корень флешки файлы bootfont.bin и A386ntdetect.com, а также каталог PLOP. Затем копируем на флешку каталоги A386 и PROGRAMS целиком, после чего переименовываем A386 в miniNT. В меню добавляем следующие строки:

title Alkid Live USB Full
find --set-root /MININT/setupldr.bin
chainloader /MININT/setupldr.bin
Загрузка Alkid Live USB
Загрузка Alkid Live USB

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

title Win PE 5.0 (Xemom1, unpacked)
find --set-root /W81X/bootmgr
chainloader /W81X/bootmgr
Загрузка WinPE 5.0 с поддержкой 32/64-разрядных систем
Загрузка WinPE 5.0 с поддержкой 32/64-разрядных систем

ПЕРЕБОРЩИК ПАРОЛЕЙ И KALI LINUX

Установленный локально GRUB сам по себе имеет функцию руткита. Он всегда загружается до операционной системы, выполняет заданный набор команд, а затем вызывает штатный загрузчик ОС либо тот, который ты сам ему укажешь.

Сброс пароля — быстрый, но грубый метод. Если надо скрыть следы проникновения, то придется потрудиться над подбором. Для этого в любом случае понадобятся файлы SAM и SYSTEM, которые без труда копируются при загрузке с флешки любой операционки, понимающей NTFS. Добавленные в сборку WinPE утилиты Elcomsoft помогут справиться с защитой BitLocker и другими недоразумениями.

Записав на флешку две версии WinPE, ориентированные на старые (x86, BIOS, MBR) и новые (x86-64, UEFI, GPT) компьютеры, ты получишь универсальную среду для запуска хакерского софта. Без ограничений установленной системы можно править файл hosts, подменять драйверы и библиотеки, а в редакторе реестра — убирать команды автозагрузки хитрых троянов или
добавлять свои.

Как бы ни была удобна WinPE, у хакера остается масса задач, которые можно решить только в Linux. Со второй версии в Kali Linux появился удобный инструмент создания кастомных образов ISO — с любыми пакетами, иксами и подключением скриптов в процессе сборки. Как и прежде, их можно запускать с флешки в режиме Live или Persistence. В документации описано, как  записать Kali на отдельную флешку, а мы добавим его в мультизагрузку.

title Kali 2.0 Lite
set ISO=/img/kali-linux-light-2.0-i386.iso
partnew (hd0,3) 0x00 %ISO%
map %ISO% (0xff) || map --mem %ISO% (0xff)
map --mem --heads=0 --sectors-per-track=0 %ISO% (0xff)
map --hook
root (0xff) || rootnoverify (0xff)
chainloader (0xff)
Варианты загрузки Kali Linux
Варианты загрузки Kali Linux

АНТИВИРУС
Разработчики антивирусов часто предлагают бесплатные образы своих загрузочных дисков. Нужны они в первую очередь для избавления от зловредов, уже поразивших установленную ОС. Если раньше такие образы можно было просто скачать и добавить на флешку, вызывая их командой map, то сейчас структура загрузочных дисков сильно усложнилась. Для их  гарантированной работы приходится создавать временные файловые метки, считывать идентификаторы тома и выполнять кучу проверок. К тому же дисковая подсистема компьютера
может быть сложной, и на очередном этапе загрузчик антивируса потеряется при сдвиге разделов.

Добавление Kaspersky Rescue Disk через WinSetupFromUSB
Добавление Kaspersky Rescue Disk через WinSetupFromUSB

Запись образа с антивирусом на чистую флешку обычно выполняется элементарно — отдельной программой с сайта разработчика или какой-либо универсальной утилитой, например UNetbootin. При этом ручное добавление антивируса в мультизагрузку требует неплохих познаний GRUB, общих навыков программирования и серии тестов. Поэтому мы воспользуемся утилитой WinSetupFromUSB, которая делает большую часть рутинных операций автоматически.
Здесь надо определиться: будешь ли ты использовать только ее или хочешь сделать кастомную флешку вручную. Ниже я привожу строки для ручной интеграции, но если лень разбираться — просто последовательно добавляй образы через утилиту. Порядок не имеет значения.

Запуск Kaspersky Rescue Disk с раздела NTFS на мультизагрузочной флешке

Для примера возьмем образ Kaspersky Rescue Disk. При интеграции образа его можно поместить вместе с другими (у нас это каталог img). В menu.lst добавляем следующие строки:

title KAV Rescue Disk
set /a dev=*0x8280&0xff
root (%dev%,0)
set ISO=/img/kav_rescue_10.iso
map %ISO% (0xff) || map --heads=0 --sectors-per-track=0 %ISO% (0xff)
set /a dev=*0x82a0&0xff
debug 1
parttype (%dev%,3) | set check=
debug off
set check=%check:~-5,4%
if “%check%”==”0x00” partnew (%dev%,3) 0 0 0 && partnew (%dev%,3) 0x00 %ISO%
if not “%check%”==”0x00” echo Error!
map --rehook
root (0xff)
chainloader (0xff)

Теоретически вместо проверок и отладки можно сразу загружать, как в примере с Kali (partnew (hd0,3) 0x00 %ISO%…), но слегка избыточный вариант записи обеспечивает лучшую совместимость с разными компьютерами. Программа WinSetupFromUSB записывает еще больше строк в каждый пункт меню, поскольку содержит дополнительные проверки, а также систему вложенных списков и механизм автонумерации.

УТИЛИТЫ ДЛЯ РАБОТЫ С ДИСКОМ

С загрузочной флешки можно клонировать жесткий диск или восстановить его из образа. Сделать это можно одной из платных программ или с помощью свободной утилиты Clonezilla. Если надо запустить ее на компьютере с UEFI, то потребуется скачать дистрибутив Clonezilla на основе Ubuntu x64, а не Debian x86.

title Clonezilla
set /a dev=*0x8280&0xff
root (%dev%,0)
set ISO=/img/clonezilla.iso
map %ISO% (0xff) || map --heads=0 --sectors-per-track=0 %ISO% (0xff)
map --rehook
root (0xff)
chainloader (0xff)
Загрузка Clonezilla
Загрузка Clonezilla

Clonezilla уже содержит FreeDOS, поэтому можно не добавлять его отдельным пунктом.

В состав Clonezilla входит FreeDOS
В состав Clonezilla входит FreeDOS

В конце меню оставим автоматически создаваемые элементы: поиск и загрузку установленной ОС, ее запуск со скрытого раздела, загрузку с оптического привода, с первого (в BIOS) жесткого диска, выход в режим командной строки GRUB, перезагрузку и выключение.

Основное меню мультизагрузочной флешки
Основное меню мультизагрузочной флешки

Перед проверкой созданной флешки необходимо дефрагментировать все записанные в img образы утилитой WinContig, иначе они не будут корректно работать при вызове командой map

Дефрагментация ISO в WinContig
Дефрагментация ISO в WinContig
Click to rate this post!
[Total: 11 Average: 4.3]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

10 comments On Мультизагрузочная флешка для хакера.

Leave a reply:

Your email address will not be published.