Болид — адреса, явки, пароли

в 13:24, , рубрики: diy или сделай сам, болид, орион-про, пароли, с2000м

Здравствуйте! В этой статье я подробно расскажу, как получить доступ к программным и аппаратным продуктам НПФ «Болид», закрытых паролями. Я инженер, а не программист и не электронщик, поэтому примененные здесь программно-аппаратные уловки (не лайф хаки, заметьте!), вероятно, не всем будут по нраву в виду их дилетантского подхода, но меня, как говорится, «жизнь заставила».

По специфике своей работы мне часто приходится сталкиваться с оборудованием НПФ «Болид» (пульты С2000 и С2000М) и ПО (Орион, Орион-ПРО), пароли от которых утеряны или «ушли» вместе с предыдущей обслуживающей организацией. Вскрытие ПО и баз данных через техподдержку «Болида» процесс вполне осуществимый, но долгий, а вот с пультами таких возможностей нет. Все, что предлагает производитель – это вернуть пульт к исходным заводским установкам с потерей существующей конфигурации, а зачастую стоимость работ по созданию новой конфигурации в десятки раз превышает стоимость пульта как такового из-за размеров объекта и/или утерянной проектной документации.

Для вскрытия паролей ПО нам понадобится HEX-вьювер и HEX/DEC калькулятор… Ленивые в конце статьи найдут ссылку на программу для выдачи паролей из баз (VB6, другим языком не владею). Для вскрытия пультов, соответственно, еще один пульт такого же типа (с «М» или без «М»), с заведомо известным паролем для в хода в режим программирования (версия пульта не важна), джампер (штука такая, которой CMOS сбрасывают и Master/Slave у IDE хардов выбирают) и в случае варианта с «М» — паяльник и несколько проводков.

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

Итак, приступим…

АРМ «Орион»

Все настойки, пароли, права пользователей в АРМ «Орион» осуществляются через программу Администратор Базы Данных (далее АБД), но не зная пароля, запустить АБД невозможно, вот поиском этого пароля мы и займемся. В АРМ «Орион» пароли, коды, и прочие идентификаторы хранятся в файле pMark.DB находящимся в папке с базой данных. Откроем этот файл в HEX редакторе и найдем следующую последовательность (в вашем варианте имена скорее всего будут отличаться, но с вероятностью 99% Иванов будет на месте):

Болид — адреса, явки, пароли

Как видно, имена пользователей, владельцев карт и владельцев прочих идентификаторов никак не шифруются и доступны в открытом виде, но где же пароли? Давайте рассмотрим этот кусочек файла повнимательнее:

Болид — адреса, явки, пароли

Опытным путем выявлено, что пароль находится перед именем. Если перед паролем находится последовательность 01:80: ХХ: ХХ:5F, значит далее следует пароль для входа в программу, если перед паролем 04:80:00:00:00, значит, далее следует код карты доступа. Есть еще различные виды индентификаторов, например, гос. номер автомобиля, но нам для доступа в АБД они не нужны, поэтому и не будем рассматривать. Все остальные идентификаторы можно увидеть потом, в «открытой» АБД. Для удобства логины подчеркнуты синим цветом, пароли – красным, коды карт доступа – зеленым.

Пароли слегка зашифрованы следующим образом:

1-й байт – количество символов в пароле;
2-й байт, значение минус 1-й байт = 1-й символ пароля;
3-й байт, значение минус 2-й байт = 2-й символ пароля;
4-й байт, значение минус 3-й байт = 3-й символ пароля.

И так далее.

Соответственно, из приведенного выше скриншота видно, что пароль Иванова И. И. — это 01:32, т.е. пароль из одного символа со значением в HEX 32-1=31, что в десятичной системе равно 49 или символу «1».

Еще один пример на более длинном пароле Прошина И.Ф.: 13:44:76:A9:DD:12:48:7F:B7:F0:20:51:83:B6:EA:1F:55:8C:C4:FD

Вычисляем…

13 – длина пароля в HEX (19 знаков)
44-13=31 (49 в десятичной или знак «1»)
76-44=32 (50 в десятичной или знак «2»)
A9-76=33 (51 в десятичной или знак «3»)
DD-A9=34 (52 в десятичной или знак «4»)
12-DD= (если результат, как в этом случае меньше нуля, тогда прибавляем к результату &H100) т.е. 12-DD+100=35 (53 в десятичной или знак «5»)
48-12= 36 (54 в десятичной или знак «6»)
7F-48= 37 (55 в десятичной или знак «7»)
B7-7F= 38 (56 в десятичной или знак «8»)
F0-B7= 39 (57 в десятичной или знак «9»)
20-F0= 30 (48 в десятичной или знак «0») тут результат снова меньше нуля, поэтому снова прибавляем &H100
51-20= 31 (49 в десятичной или знак «1»)
83-51= 32 (50 в десятичной или знак «2»)
B6-83= 33 (51 в десятичной или знак «3»)
EA-B6= 34 (52 в десятичной или знак «4»)
1F-EA= 35 (53 в десятичной или знак «5)
55-1F= (54 в десятичной или знак «6»)
8C-55= (55 в десятичной или знак «7»)
C4-8C= (56 в десятичной или знак «8»)
FD-C4= (57 в десятичной или знак «9»)

Наш пароль: «12345678890123456789».

Коды карт не шифруются, они просто записаны «задом на перед». Например карта Прошина И. Ф. записана как 08:12:24:43:95:78:67:11:12, т.е. длина кода 08 байт, код карты 12:11:67:78:95:43:24:12.

Обычный Орион победили, движемся дальше.

АРМ «Орион-ПРО»

Здесь все немного сложнее, так как пароль можно установить не только на запуск АБД, но так же и на запуск программ, и на управление сервером БД (пароль установщика).

Начнем с пароля на запуск программ:

Пароль для запуска программ хранится в реестре в следующей ветке: HKLMsoftwarewow6432nodebolidorioncsopasswordpasswordcr. Введите вместо существующего значения 016D34A5B664B2D8CD и пароль станет «1», или удалите значение совсем, тогда вообще пароля не будет.

Пароль установщика (Управление сервером БД):

Пароль храниться в реестре в следующей ветке: «HKCUsoftwareclassesvirtualstoremachinesoftwarewow6432nodebolidМенеджер сервера», в ключе PassDefault. Удалите ключ или задайте значение:A9:9E:BA:4A:DA:E3:BF:A9:8F:2C:C6:D9:14:56:BD:45. В любом из выбранных вариантов пароль станет стандартным — «73173100».

Разбираться, по какому алгоритму тут зашифрованы пароли – я не стал. Если не лень, вот варианты паролей и ХЕШей, пробуйте:

«qqqqqq» — F0:FB:45:CE:7A:0C:80:76:5F:08:E9:30:2C:EA:E0:F0
«73173100» — A9:9E:BA:4A:DA:E3:BF:A9:8F:2C:C6:D9:14:56:BD:45
«111111111» — 01:A0:52:A1:C2:EE:E9:54:41:6D:34:A5:B6:64:B2:D8:CD
«11111111» -8 — 00:A0:52:A1:C2:EE:E9:54:41
«1111111» -7 — 07:1B:65:33:39:59:66:2A:3D
«111111» -6 — 06:B3:DC:5C:33:F1:53:0A:9B:
«1» — 01:6D:34:A5:B6:64:B2:D8:CD
«2» — 01:C4:50:32:82:23:FA:88:33

Пароль на запуск АБД:

Здесь так же все настойки, пароли, права пользователей и прочее-прочее осуществляются через программу АБД. В АРМ «Орион-ПРО» пароли, коды и прочие идентификаторы хранятся в файле с расширением MDF. Например, DEMOBASE.MDF, который находится в соответствующей папке.

Откроем этот файл в HEX редакторе. Ищем в теле файла фамилии с инициалами. Другие места, где фамилия без инициалов или имя-отчество полностью нас не интересуют. Там нет паролей.

Болид — адреса, явки, пароли

Как видим, все выглядит так же, как и в Орионе без ПРО и алгоритмы расшифровки паролей точно такие же.

Пульт С2000

Со старой версией пульта все предельно просто, достаточно быть просто аккуратным и иметь съемник для 8-и ногих микросхем или любые подручные ДИЭЛЕКТРИЧЕСКИЕ инструменты.

Плата пульта С2000 выглядит так:

Болид — адреса, явки, пароли

Красным цветов выделен микроконтроллер (он нас не интересует), а синим микросхема памяти – 24С512, содержимое которой нам и нужно прочитать.

Считываем конфигурацию следующим способом: берем пульт с известным паролем для входа в режим программирования, подключаем к компьютеру, переводим в «режим программирования», запускаем Uprog и пробуем считать конфигурацию. Читается? Отлично! Прерываем чтение, выдергиваем 24C512 и вставляем другую, которая из пульта с неизвестными паролями, считываем, наслаждаемся. Естественно в считанной конфигурации будут и пароли.

Пульт C2000М

С этой версией пульта несколько сложнее. Микросхем памяти две штуки, да еще и припаяны насмерть.

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

Пульт С2000М выглядит так (наклейки и защитный пластик сняты):

Болид — адреса, явки, пароли

Красным цветом выделен микроконтроллер, тут он нас тоже не интересует, синим – микросхемы памяти, желтым – технологический разъем, желтой и зеленой линиями – пятаки через которые идет обмен данными памяти и микроконтроллера.

Микросхемы памяти, как мы видим – две штуки 24LC512. Этот тип микросхем может объединяться в банки по 8 штук, но в данном случае их две. Общается микропроцессор с микросхемами памяти посредством двух линий («последовательные данные» и «последовательные синхроимпульсы»), которыми мы и будем манипулировать. Способ считывания, точно такой же как и с С2000, только микросхемы тут не переставишь, а отпаивать/припаивать их совсем не хочется, поэтому давайте еще посмотрим на обратную сторону платы пульта:

Болид — адреса, явки, пароли

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

Необходимо сделать следующее:

1. Перерезать отмеченные на рисунке дорожки.
2. К пятакам припаять проводки небольшой длины.
3. Соединить провода с зеленых пятаков и соответственно с желтых между собой.
4. Подключить пульт к компьютеру
5. Подать на пульт питание
6. Перевести пульт в «режим программирования»
7. Проверить читается конфигурация или нет. Если читается переходим к следующему шагу. Если нет, проверяем полярность проводков.
8. Отсоединяем проводки соединенные между собой.
9. Подаем питание на пульт с неизвестными паролями.
10. Надеваем на технологическом разъеме пульта с неизвестными паролями джампер на 4-й и 5-й контакты (пульт уйдет в режим РЕСЕТ и его микроконтроллер нам не будет мешать).
11. Проводки которые припаяны к пятакам, которые находятся ближе к микроконтроллеру прижимаем к таким же на пульте с неизвестными паролями.
12. Считываем конфигурацию.

Самое главное, в момент чтения не передвинуть проводки на соседние контакты, а то все может закончится не очень хорошо, поэтому для себя я модифицировал пульт более основательно. Расположил на свободном месте платы штырьки от компьютерной материнки 4х4 и к ним припаял провода. Когда установлены оба джампера, пульт в нормальном режиме, когда снимаю — в режиме чтения «чужой памяти».

Также для удобства изготовил такой провод: с одной стороны разъем (можно взять от компьютера которые идут на RESET, HDD LED, и т. д.), а с обратной припаял иголки. Использовать гораздо проще, надеваем разъем, прижимаем иглы к пятакам читаемого пульта — и все. Для еще большего удобства примотал иглы к карандашу с необходимым шагом.

К сожалению, фото модифицированного пульта приложить не могу. Монтажники по незнанию. В мое отсутствие взяли его и установили на объекте. Ехать забирать далеко, поэтому, как возникнет новая необходимость, сделаю себе еще один.

Да, и еще. Если в момент чтения убрать контакты с пятаков (не мудрено, М-ка читается минут 5-10, руки устают), чтение просто прекратится. Приложите снова — и все продолжиться с того же самого места.

P.S. Холивар на тему «информирование производителя о дырах в защите» предлагаю не разводить, так как базы они и сами по требованию вскрывают, а в новых версиях пульта С2000М появилась возможность сброса пароля без сброса конфигурации.

Ссылка на программу: yadi.sk/d/1eSH87KNbqZFt

Автор: Big-Boss

Источник


  1. сергей:

    для с2000 пку адресс для пароля инженера в eeprom 24lc512 находится в пределах строки 6С02 начинается в первёрнутом состоянии и читается в убывающем порядке.
    то есть пароль 123456 будет выглядеть вот так 6C07 +F0 это перед началом пароля
    сам пароль начинается с адреса 6C08
    строка 6C02 = FF FF FF FF FF F0 56 34 12 FF FF FF F0 34
    А пароль 4015429789 будет выглядеть вот так
    6C02 = FF FF FF FF FF F0 89 97 42 15 40 FF F0 34

    • Константин:

      Из C2000 вычитал пароль с помощью CH341, а вот на С2000М из памяти MX25L3233F вычитывает нули ((

  2. Сергей:

    Спасибо за информацию. На следующей неделе проверю с С2000-М v4.12

  3. Джейсон Форрис:

    Спасибо!

  4. Андрей:

    Два раза по этой инструкции добывал пароль Ивана Ивановича в орион про 1.20.3. Спасибо! Есть что дополнить.
    1. Оба раза после пароля, ФИО были написаны полностью. Не Иванов И. И., а Иванов Иван Иванович.
    2. Опытным путём выявлено, если после вычитания из байта предыдущего байта получается значение, выходящее за рамки допустимых значений, то нужно вычесть ещё раз этот байт.
    3. Ни разу не увидел последовательность 01:80: ХХ: ХХ:5F, после после которой, по утверждению автора, должен находиться пароль.

  5. Игорь:

    Пробовал с помощью пульта вер 2.06 вскрыть пульт 2.05. Не получается, а очень)) нужно. Может быть подскажите, нужно ли точное соответствие версии?

* - обязательные к заполнению поля


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