Рубрика «firmware» - 2

Устройство NVRAM в UEFI-совместимых прошивках, часть четвертая - 1И снова здравствуйте, уважаемые читатели.
Начатый в предыдущих трех частях разговор о форматах хранилищ NVRAM, используемых различными реализациями UEFI, подходит к своему логическому концу. Нерассмотренным остался только один формат — NVAR, который используется в прошивках на основе кодовой базы AMI Aptio. Компания AMI в свое время смогла «оседлать» практически весь рынок прошивок для десктопных и серверных материнских плат, поэтому формат NVAR оказался чуть ли не распространённее, чем оригинальный и «стандартный» VSS.
Если вам интересно, чем хорош и чем плох формат хранилища NVRAM от AMI — добро пожаловать под кат.
Читать полностью »

Устройство NVRAM в UEFI-совместимых прошивках, часть третья - 1 Перед вами третья часть моего повествования о форматах NVRAM, используемых UEFI-совместимыми прошивками различных производителей. В первой части я рассказывал об NVRAM вообще и о «стандартном» формате VSS, во второй — об интересных блоках, которые можно найти рядом с NVRAM в этом формате, а в этой речь пойдет о целой россыпи различных форматов, используемых в прошивках на платформе Phoenix SCT: FlashMap, EVSA, Intel uCode, CMDB, SLIC pubkey и SLIC marker.
Если вам интересно, что умудрились напридумывать на замену VSS разработчики из Phoenix — добро пожаловать под кат, только предупреждаю сразу, статья получилась достаточно длинной.
Читать полностью »

Устройство NVRAM в UEFI-совместимых прошивках, часть вторая - 1 Продолжаем разговор о форматах NVRAM в UEFI-совместимых прошивках, начатый в первой части. На этот раз на повестке дня формат блоков Fsys из прошивок компании Apple, FTW из прошивок, следующих заветам проекта TianoCore и FDC, который можно найти в прошивках, основанных на кодовой базе компании Insyde.
Если вам интересно, зачем нужны и как выглядят не-NVRAM данные, которые можно обнаружить рядом с NVRAM в прошивках различных производителей — добро пожаловать под кат.
Читать полностью »

Устройство NVRAM в UEFI-совместимых прошивках, часть первая - 1 Здравствуйте, уважаемые читатели. Когда-то очень давно, почти 3 года назад, я написал пару статей о форматах данных, используемых в UEFI-совместимых прошивках. С тех пор в этих форматах мало что изменилось, поэтому писать про них снова я не буду. Тем не менее, в тех статьях был достаточно серьезный пробел — отсутствовали какие-либо упоминания об NVRAM и используемых для её хранения форматах, т.к. тогда разбор NVRAM мне был попросту неинтересен, ибо те же данные можно получить из UEFI Shell на работающей системе буквально одной командой dmpstore.
По прошествии трех лет выяснилось, что хранилище NVRAM умеет разваливаться по различным причинам, и чаще всего это событие приводит к «кирпичу», т.е. воспользоваться вышеупомянутой командой уже не получится, а данные (или то, что от них осталось) надо доставать. Собрав пару развалившихся NVRAM'ов вручную в Hex-редакторе, я сказал "хватит это терпеть!", добавил поддержку разбора форматов NVRAM в UEFITool NE, и решил написать цикл статей об этих форматах по горячим следам и свежей памяти.
В первой части поговорим о том, что вообще такое этот NVRAM, и рассмотрим формат VSS и его вариации. Если интересно — добро пожаловать под кат.
Читать полностью »

Замена HDD на NetUP стримере и установка прошивки - 1

Замена HDD на NetUP стримере и установка прошивки - 2

Предыстория

На днях перестал вещать один из NetUP стримеров. «Завис», подумал я (есть у них такая «особенность»), и пошел перезагружать его. Т.к. у этих стримеров не предусмотрено кнопки включения-выключения питания, или кнопки Reset, перезагружаются они только выдергиванием шнура питания.

Через некоторое время, после того, как я вернул ему питание, стример вывел надпись на LCD панели: «Checking HDD filesystem...». Оставил его в таком состоянии с мыслью, что проверит диск и запустится. Однако ни через час, ни через два этого не произошло. На стримере продолжала показываться надпись о проверке HDD. Через консольный кабель подключиться не удалось. Так же не к чему не привели последующие перезагрузки. Решил достать жесткий диск и проверить его на bad block'и. Нашлось не малое количество секторов, для которых не удалось сделать Remap или Erase.

Вывод простой: нужно менять жесткий диск. С самой заменой проблем нет, не рабочий вытащил, рабочий поставил. Но теперь у нас на руках голая железка без ОС (прошивки).

О том, как установить прошивку «с нуля» и пойдет дальнейший рассказ.
Читать полностью »

Столкнулся с проблемой прошивки на своем роутере. Никак не хотел работать стабильно. В итоге, перепробовав кучу разных прошивок, остановился на OpenWRT. Для желающих установить ее следуем сюда.

Итак, я отвлёкся. Мой провайдер предоставляет доступ к IPTV, поэтому изредка за работой я включаю себе что-нибудь из телепередач. Перейдя на данную прошивку заметил, что стандартной настройки UDP-HTTP в ней нет. Поэтому начал рыть рунет на предмет чего-нибудь, что поможет мне в данной ситуации. В результате набрел на статью Silver_Clash «Настройка IPTV в OpenWRT», однако по описанному методу у меня сделать ничего не получилось. Провозившись до 5 утра и найдя в комментариях заветные строки, я его запустил. Теперь хочу поделиться инструкцией с читателями.

Первым делом заходим на ваш роутер по ssh под root пользователем. Все настройки будем производить из консоли.
Читать полностью »

image

В предыдущих сериях:

  1. Взламываем D-Link DSP-W215 Smart Plug
  2. Взламываем D-Link DSP-W215 Smart Plug. Снова
  3. Взламываем D-Link DSP-W215 Smart Plug. Снова и опять

До сих пор, все найденные в DSP-W215 уязвимости могли быть выполнены только из LAN, ну, если вы не глупец и не открыли доступ к Smart Plug из интернета.
Типичным способом атаки устройств со встроенным веб-сервером, доступным только из внутренней сети, типа того, что у DSP-W215 — через CSRF. Проблема этого метода в том, что любой веб-браузер будет кодировать (urlencode) передаваемые данные, например, адрес возврата, но до этого момента мы использовали уязвимости, которые не декодируют (urldecode) наши данные (уязвимость в функции replace_special_char, которую мы эксплуатировали в предыдущей статье, декодирует только ограниченный набор ASCII-символов).

Бинарный файл my_cgi.cgi, который является основной уязвимой целью, содержит функцию-декодировщик «decode», которая декодирует POST-данные. Этой функции передается два аргумента: указатель на закодированные данные и указатель на буфер, где хранятся раскодированные данные:

void decode(char *encode_buf, char *decode_buf);

Эта функция просто проходит циклом по всем байтам в encode_buf и раскодирует или копирует их в decode_buf:
imageЧитать полностью »

Вот мы снова и опять.
image

В последнем эксплоите к DSP-W215 я говорил, чтобы функция get_input_entries не падала, нужно использовать имя «storage_path» в POST-запросе. Так нужно было сделать из-за того, что есть еще одно переполнение буфера, на этот раз в функции get_input_entries, которую вызывает get_input_entries, если имя пост параметра отлично от «storage_path» или «path»:
image

В функцию replace_special_char передается один аргумент — указатель на обрабатываемое POST-значение:
imageЧитать полностью »

Предыстория

Не так давно приобрёл на Aliexpress IP камеру (чип Hi3516 платформа 53H20L) и 16-канальный гибридный видеорегистратор (чип Hi3521 платформа MBD6508E). Оба выполнены на чипсете от HiSilicon, так что проблем с совместимостью между собой не испытывают.
Разумеется, не обошлось и без глюков. Первый, и самый главный — у камеры криво работал WiFi — нельзя было подключиться к сети, если ключ был задан в HEX виде, а таже периодически возникала проблема со шлюзом по умолчанию.
Распаковка, редактирование и упаковка прошивок видеорегистраторов и IP камер из Китая
Прошивка оказалась старая, ещё июньская. Раздобыл несколько свежих прошивок и попробовал. Некоторые оказались глючными, но одна заработала нормально.
Возникла другая проблема — изменился пароль по умолчанию для telnet подключения. Этого я не стерпел и стал искать способы вернуть его обратно.
Сразу предупрежу, что данный способ опробован на видеорегистраторах и камерах на чипах HiSilicon, но должен сработать и с другой платформой, так как китайцы широко используют загрузчик U-boot.
Читать полностью »

Доброго времени суток, читатели!

Я хочу рассказать вам о том, как я восстанавливал прошивку RAID-контроллера LSI MegaRAID после неудачного обновления.
Когда эта беда случилась со мной, то информации об этом я практически не нашел, хотя, допускаю, что плохо гуглил.

Анамнез

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

Зачастую, особенно в случае с 1U серверами я беру их уже с интегрированным контроллером LSI MegaRAID.

Но проблема с ними заключается в том, что сама Supermicro не очень охотно выкладывает прошивки для встроенных контроллеров, так что я их обычно прошиваю актуальной прошивкой (масло масляное, да) от аналогичного контроллера LSI. Проблем не возникало до этих пор.

Недавно привезли несколько серверов с контроллерами LSI 2208 на борту и достаточно старой прошивкой.
Т.к. дискретные контроллеры на этих чипах я тоже активно использую, то особо не сомневаясь загрузился с флешки с Linux-ом, запустил привычное:

./MegaCli64 -AdpFwFlash -f mr2208.rom -a0

и пошел заниматься дальше своими делами.

Когда я в следующий раз обратил взор на терминал сервера, то увидел ту же самую картину, что и была — «Flashing firmware...» и никакого результата. Беда, подумал Штирлиц.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js