Мастер-ключ ко всем компьютерам. Создаем мультизагрузочную флешку с набором полезностей
Эксплойт
Мультизагрузочный накопитель помогает выполнять проверку железа, готовить компьютеры к установке ОС, бэкапить данные и удалять любые зловреды. А также ломать пароли и копаться в системе сколько душе угодно.
Ошибки при работе с GRUB и многими утилитами могут привести к утрате данных или невозможности загрузить ОС. Делай бэкапы! Ни канал, ни автор не несут ответственности за любой возможный вред.
Когда в BIOS появилась опция загрузки с USB-накопителей, жизнь хакеров навсегда изменилась. С тех пор при помощи крохотного устройства за любым компьютером стало можно делать что угодно, не вскрывая его корпус и не привлекая внимания. Получить полный контроль над системой можно, только выйдя за ее пределы.
Multiboot
Сегодня с флешки может загрузиться практически любая операционка. Многие ОС вообще создают слой аппаратных абстракций HAL прямо в процессе инсталляции или тестовой установки на RAM drive. Начиная с Windows XP доступна удобная среда предустановки — WinPE. Сейчас она доросла до версии 5.1 и базируется на Windows Kits 8.1 Update. После некоторых модификаций WinPE позволяет делать почти все то же, что и установленная Windows. Например, устанавливать драйверы не только в процессе загрузки, но и после нее.
От живых CD к ожившим флешкам
Мультизагрузку можно сделать и на CD/DVD, но это устаревший неудобный вариант. Одного DVD-R(W) мало на что хватает. Приходится делить сборку на части и носить пачку дисков. Файлы на них нельзя перезаписывать в процессе работы. На время сеанса все помещается в виртуальный раздел (RAM drive), который тоже не резиновый. К тому же обычно требуется сохранить что-то именно на физическом разделе.
Обновилась версия программы или база антивируса — приходится пересобирать и прожигать заново весь образ. Скорость чтения получается низкая, особенно когда нужно запускать портативные утилиты и считывать много мелких файлов. Надежность современных DVD не выдерживает критики, а в неттопах и многих ноутбуках оптического привода давно нет.
Приверженцы «старой школы» наверняка оценят FreeDOS. Она достаточно всеядна — ей подойдет любая платформа x86. В этой операционке доступны даже браузер и медиаплеер. Современные дистрибутивы Linux легко запускаются в режиме Live, а некоторые даже имеют функцию сохранения изменений после перезагрузки — USB persistence. Многие программы для восстановления данных и антивирусной защиты сами создают образы загрузочных дисков, которые можно поместить на флешку. Словом, выбор компонентов для мультизагрузки очень большой.
Загрузившись в режиме WinPE, ты сможешь с помощью соответствующих утилит менять в установленной ОС Windows пароли, системные файлы и настройки реестра, которые заблокированы даже для админа. Системы со сквозным шифрованием и дополнительной защитой так просто не одолеть, но рядовой домашний или офисный компьютер — легко. Отдельные программы позволяют получить полный контроль над железом, также невозможный в обычных условиях из-за ограничений на уровне прав, драйверов и служб. Весь этот набор инструментов часто записывают на разные носители, поскольку они отличаются по требованиям и конфликтуют друг с другом, но есть способы объединить многие из них в универсальную сборку. Этим мы и займемся.
Нам понадобятся:
- флешка емкостью от 8 Гбайт;
- загрузчик GRUB;
- набор образов с желаемыми программами и операционными системами;
- утилита WinConfig;
- программа WinSetupFromUSB (опционально).
Как выбрать флешку до покупки
В первую очередь стоит исходить из того, что на флешке с мультизагрузкой и портативным софтом будет перезаписываться большой объем данных, поэтому важна как скорость ее работы, так и ресурс. Найти соответствующую информацию помогут обзоры и отзывы, но помни про маркетинговую хитрость: внутри двух одинаковых с виду флешек могут стоять разные чипы памяти и даже разные контроллеры. Поэтому смотрим только свежие тесты.
Для создания мультизагрузочной флешки лучше выбрать модель с металлическим корпусом. Он лучше рассеивает тепло, а в интенсивной работе его будет выделяться много — отдельные операции выполняются часами. По той же причине стоит выбирать модели с крупным корпусом — у него больше площадь рассеивания и выше шанс, что внутри объем занят чем-то полезным.Может возникнуть желание записать на флешку как можно больше, но за рекордными объемами гнаться не стоит. Очень вероятно, что возникнут проблемы при загрузке на старых компьютерах, да и накопитель с меньшей емкостью обычно работает надежнее. Самые жадные до объемов могут в тех же целях использовать внешний винчестер.
Для самых запасливых
Вместо флешки можно использовать любой другой внешний накопитель. Им может быть карта памяти, внешний жесткий диск или даже старый SSD. С карточки удобно загружать ноутбук — USB останется свободным. Внешний винчестер обрадует желающих носить с собой весь набор программ. На него же можно записывать резервные копии, разворачивать бэкапы для тестов и устанавливать дополнительные ОС — места много не бывает.
Как выбрать флешку из имеющихся
Узнать наверняка, что находится внутри конкретной флешки, можно только после покупки. Обойтись без вскрытия ее корпуса помогает база данных iFlash и утилиты для идентификации по VID/PID. Среди многих аналогов бесплатная утилита Flash Drive Information Extractor производства компании ANTSpec Software — единственная, корректно работающая с USB 3.0 и новыми контроллерами.
Каждая перезапись уменьшает ресурс памяти, поэтому модели с чипами TLC лучше не использовать. Современные чипы NAND MLC делятся по ресурсу на два класса: 3K (до 3000 циклов перезаписи) и 5K (до 5000 циклов перезаписи). Последние ставят в дорогие SSD, и обнаружить такой чип внутри флешки маловероятно. Память SLC с ресурсом до 100K циклов и сейчас выпускается, только для SSD корпоративного класса и буферов гибридных накопителей. Флешки с такой памятью перестали делать много лет назад.

В окне Flash Drive Information Extractor отображается тип чипов памяти, их предположительный производитель и максимальная сила тока. По ней можно судить о потребляемой мощности, а значит — прогнозировать степень нагрева флешки и ее способность длительно работать в проблемных условиях. На заре производства USB-Flash они оснащались качественным термоинтерфейсом, схемой стабилизации питания, защиты от помех и даже от переполюсовки. Современные модели, как правило, совершенно беззащитны. Теперь флешки — это не высокие технологии, а расходный материал.
Некоторые старые компьютеры не поддерживают загрузку с USB-накопителей, хотя и оснащены портами USB. Использовать на них мультизагрузочную флешку можно при помощи своеобразного костыля — менеджера загрузки PLoP на загрузочном CD. Процесс загрузки начинается с него и уже затем перенаправляется в меню на флешке.
GRUB — GRand Unified Bootloader
Загрузчик GRUB далеко не единственный, но очень удобный вариант создания мультизагрузки. Он универсален, поддерживает как старые, так и все современные технологии загрузки. К тому же синтаксис команд для других загрузчиков (в частности, Syslinux) легко переписывается в строчки меню GRUB.
GRUB, как и многие опенсорсные проекты, за годы своего существования разделился на разные варианты. Есть WinGRUB, Grub2Win, GRUB4DOS и прочие форки. Наиболее простой и безопасный для нашей задачи — Grub4DOS USB Installer, написанный на Visual C++ в конце 2012 года. Эвристический анализатор некоторых антивирусов может на него ругаться из-за использования API DeviceIOControl, необходимой для записи бут-сектора. Подробнее смотри отчет VirusTotal.
Превратить флешку в мультизагрузочную сегодня крайне просто — ручные операции сведены к минимуму, есть множество готовых утилит, отработанных методик, и давно реализована поддержка новых файловых систем. Если нет нужды работать с чистым досовским окружением и старыми программами непосредственно на разделе флешки, то можно смело форматировать ее в NTFS. Для установки Windows 8, 8.1, 10 и некоторых других операций это вообще обязательное условие. Изначально все флешки продаются с разделом FAT32. Создать раздел NTFS может сам инсталлятор GRUB — главное, не ошибиться при выборе диска. Предварительно нужно очистить флешку, переписав все данные на другой носитель.

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

Утилиту можно найти на официальном сайте PassMark и запускать с одной флешки вместе с последней версией MemTest86+. Это форк, который прекратил развитие, но до сих пор имеет некоторые преимущества.
Записываем свое меню
Открываем файл 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)

Продолжить ностальгировать можно будет позже в среде 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

Альтернативный вариант — ничего не распаковывать, а загружать версии дисков восстановления 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.
Интеграция Alkid Live CD проходит в три простых этапа. Сначала распаковываем из образа в корень флешки файлы bootfont.bin и \A386\ntdetect.com, а также каталог \PLOP. Затем копируем на флешку каталоги \A386\ и \PROGRAMS\ целиком, после чего переименовываем \A386\ в \miniNT. В меню добавляем следующие строки:
title Alkid Live USB Full find --set-root /MININT/setupldr.bin chainloader /MININT/setupldr.bin

Добавление сборок на основе последних версий WinPE происходит подобным образом. В них всегда есть каталог с образами WIM, который надо скопировать в корень флешки целиком. В нем же будет находиться загрузчик BOOTMGR. Его мы и вызовем через меню.
title Win PE 5.0 (Xemom1, unpacked) find --set-root /W81X/bootmgr chainloader /W81X/bootmgr

Переборщик паролей и 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)


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

Здесь надо определиться: будешь ли ты использовать только ее или хочешь сделать кастомную флешку вручную. Ниже я привожу строки для ручной интеграции, но если лень разбираться — просто последовательно добавляй образы через утилиту. Порядок не имеет значения.
Для примера возьмем образ 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 уже содержит FreeDOS, поэтому можно не добавлять его отдельным пунктом.

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

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

Бесплатные программы, не требующие установки. Могут запускаться в среде WinPE
Антивирусная утилита AVZ. Добавляется на флешку простым копированием и загружается в WinPE