Главная » Arduino
Призовой фонд
на январь 2017 г.
1. 5000 руб.
Академия Благородных Металлов
2. 1000 руб.
Radio-Sale
3. Регулируемый паяльник 60 Вт
Паяльник
4. 600 руб.
От пользователей
5. Тестер компонентов LCR-T4
Паяльник

Brute Force BIOS'а ПК при помощи Arduino

Цель данного эксперимента – переделать плату Arduino в USB клавиатуру плюс VGA-анализатор для взлома пароля стандартного BIOS, используя т.н. метод brute force (метод перебора). Данный метод не имеет особых преимуществ. На самом деле он медленный и вы можете даже не взломать пароль, но мы все-таки попытаемся. Существует много способов для сброса BIOS, особенно если вы имеете доступ к аппаратному обеспечению. Нам понадобится именно физический доступ, поскольку в настоящее время «удаленный доступ» еще не изобрели.

IMG_1.jpg

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

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

Эмулятор USB-клавиатуры

Для USB-клавиатуры используется код V-USB for Arduino, который в свою очередь использует библиотеку V-USB library. Вам необходимо установить V-USB для Arduino, чтобы запустить файл BIOSHack.pde (смотрите архив кода).

Схема

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

Пара стабилитронов используются в качестве интерфейса USB-клавиатуры (это одна из четырех опций, предлагаемых в файле сведений V-USB Readme, смотрите сноску на другой проект, который также использует данный метод). Также в схеме установлена кнопка, которая используется для паузы/продолжения процесса взлома пароля. Если кнопка удерживается более 2 секунд, процесс взлома пароля будет сброшен.

Схема

Печатная плата

Анализ VGA-фрейма

Для определения цвета пикселя в центре экрана нам необходимо считать аналоговый сигнал Red (Красный), а также вертикальные и горизонтальные синхроимпульсы для того, чтобы знать, когда считывать сигнал Red. При первой попытке использовалась функция обработки прерывания Arduino attachInterrupt для захвата HSYNC и VSYNC, но при этом могла перестать работать USB-клавиатура.

В этом случае макросы ISR() и SIGNAL() работают более корректно. Таким образом, VSYNC импульс сбросит глобальную переменную под названием h_line, в то время как HSYNC импульс увеличит ее для того, чтобы знать, в какой строке отображается VGA-фрейм.

Наша функция waitWrongPassword (ожидание неверного пароля) выполняет анализ пикселя. Она ожидает несколько секунд, пока не появится красный пиксель, и продолжает просматривать счетчик строки. Как только он будет располагаться в строке под номером #238 (почти середина по вертикали при разрешении 640×480) произойдет небольшая задержка для получения значения горизонтального отсчета времени и произойдет считывание аналогового входа.

Далее после считывания значения «красного» аналогового входа результат сравнивается для проверки факта, не появлялось ли всплывающее окно ‘wrong password’ (неверный пароль); имеется в виду условие if (величина valueR > 140). Вам может понадобиться изменить данную величину, в соответствии с горизонтальными линиями VGA-карты.

Код

Вам необходимо определить набор символов, который будет использоваться при взломе пароля. Для этого модифицируйте массив charset, добавив коды кнопок USB-клавиатуры по вашему усмотрению. По умолчанию, в примере кода имеется KEY_A, KEY_B, KEY_C. Также вам необходимо модифицировать второй массив под названием charset_log, который должен иметь тот же размер, но вместо кода кнопки в нем отображается печатаемый байт для создания журнала.

Также необходимо изменить максимальную длину пароля; по умолчанию установлено значение 4. Для изменения длины используйте MAX_LEN. Состояние проверки периодически сохраняется в EEPROM. Поэтому в случае пропадания питания вы можете продолжить с последнего (или почти последнего) протестированного пароля.

Программный код можно скачать ниже, и при необходимости, модифицировать в соответствии со своими требованиями.

Ниже показаны некоторые фото платы расширения

IMG_2.jpg

Кожух от iPod используется в качестве корпуса

IMG_3.jpg

Перенос тонера для изготовления платы (метод лазерно-утюжной технологии). Осторожно, не обожгитесь.

IMG_4.jpg

Вид спереди

IMG_5.jpg

Вид сзади

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Плата Arduino
Arduino Duemilanove
1 Поиск в FivelВ блокнот
D1, D2 Стабилитрон3.6 В2 Поиск в FivelВ блокнот
R1 Подстроечный резистор1 Поиск в FivelВ блокнот
R2, R3 Резистор
68 Ом
2 Поиск в FivelВ блокнот
R4 Резистор
2.2 кОм
1 Поиск в FivelВ блокнот
R5 РезисторDSP+1 Поиск в FivelВ блокнот
LCD-дисплей1 Поиск в FivelВ блокнот
J1, JP1, JP2 Джампер3 Поиск в FivelВ блокнот
Разьем USBPN61729-S1 Поиск в FivelВ блокнот
Разьем VGA1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (2) | Я собрал (0) | Подписаться

0
Вадик #
Откуда возьмется BIOS на iMac?
P.S. Я тоже использовал упаковку iPod для arduino-поделок
Ответить
0
птыц #
1) Биоса нет, есть современный EFI
2) Войти в него нельзя. Но есть команды: Зажать C - загрузка с диска, зажать CMD+S - грузиться в консоль Макоси, зажать OPT - выбор загрузочного устройства. Причём, грузиться можно даже с шифрованного WiFi - никакой биос этого не позволит.
3) До 2006 года на старых Маках не было EFI, была OpenFirmware. В неё можно было зайти зажав при старте CMD+OPT+O+F. Настраивать там было решительно нечего, зато был даже специальный язык для написания скриптов... при разгоне Маков это иногда требовалось.
4) Функции биоса, необходимые DOS и Windows-программам EFI успешно эмулирует. Так что, программы будут в полной уверенности, что биос у аймака есть. Но на деле его функции - лишь эмуляция.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Raspberry Pi 2
Raspberry Pi 2
UNI-T UT-61A Солнечная панель 10Вт 12В поликристаллическая
вверх