Содержание статьи
Мультизагрузочный накопитель помогает выполнять проверку железа, готовить компьютеры к установке ОС, бэкапить данные и удалять любые зловреды. А также ломать пароли и копаться в системе сколько душе угодно.
WARNING
Ошибки при работе с 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 корпоративного класса и буферов гибридных накопителей. Флешки с такой памятью перестали делать много лет назад.
Xakep #200. Тайная жизнь Windows 10
В окне Flash Drive Information Extractor отображается тип чипов памяти, их предположительный производитель и максимальная сила тока. По ней можно судить о потребляемой мощности, а значит — прогнозировать степень нагрева флешки и ее способность длительно работать в проблемных условиях. На заре производства USB-Flash они оснащались качественным термоинтерфейсом, схемой стабилизации питания, защиты от помех и даже от переполюсовки. Современные модели, как правило, совершенно беззащитны. Теперь флешки — это не высокие технологии, а расходный материал.
INFO
Некоторые старые компьютеры не поддерживают загрузку с 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
.