postheadericon Семь способов взломать 1С v7.7

Начнем с первого способа (самый простой)

Любой маломальский программист в 1С знает, что все данные для пользователя хранятся в файле «\Путь-для-конфигурации\usrdef\users.usr». Поэтому самый простой способ забраться в данные – это просто прибить этот файл и заходить совершенно свободно. Но! Если конфигурацию оформлял аккуратный программист, то он сделает совершенно простую вещь – установит в конфигурации интерфейс с нулевыми правами и такой способ отпадет сам собой. Хотя, я такое на сторонних конфигурациях встречал очень редко.

Способ номер два (для продвинутых)

Основан на том же самом файле «\Путь-для-конфигурации\usrdef\users.usr». Только в этом случае мы его прибивать не будем, а подменим. В большинстве типовых конфигураций есть начальный набор прав называемый стандартными терминами. Для «1С:Торговля и Склад» это будет «Интерфейс_Администратора», «Интерфейс_Продавца» и так далее. Залазим в файл «users.usr» простым HEX редактором и в конце видим такие строчки:

«всякая чушь» Вася «чушь» .\Vasya «чушь» Интерфейс_Администратора «чушь» Администратор

где

– Вася – имя пользователя;
– .\Vasya – путь к каталогу пользователя, если начинается с точки, то путь высчитывается относительно корневого каталога базы. Или же просто пишется «C:\SUPERTRADE\1C\Vasya»;
– Интерфейс_Администратора – название интерфейса с описанием меню и внешнего вида;
– Администратор – название блока прав.

Если руки растут откуда нужно с помощью того же самого HEX редактора можно для любого пользователя присвоить администраторские права и заходить совершенно свободно. Если же живем по принципу «не хочу, ибо мне в лом», тогда дома берешь аналогичную конфигурацию, подготавливаешь в ней полный набор прав и называешь его Администратор – приносишь, подменяешь и сидишь спокойно. Разумеется, если названия интерфейсов писались новые – то нужно знать название необходимого набора прав.

 

 

Способ третий (для извращенцев)

Сам я этот способ использовал только пару раз, когда база полностью рушилась. В принципе, этим методом пользовались еще несколько моих знакомых программистов, так что он вполне реален. Дело в том, что в каталоге конфигурации (в случае DBF-ной базы, не SQL) хранится несколько типов файлов.

*.CFG – он нам особо не нужен, ничего важного там нет;
1Cv7.DD – файл словаря, он нам тоже пригодится;
1Cv7.MD – файл с метаданными, всякие там макросы и формы документов-отчетов-журналов, планы счетов, интерфейсы и прочее.
*.CDX – индексированные файлы, нам они по барабану, можно их покилять, чтоб вид не портили.
И, наконец-то(!) *.DBF – собственно файлы с данными. Вот их-то и надо разбирать.

Предупрежу сразу – эта статья писалась как общеобразовательная, поэтому никаких глубинных технических деталей я давать не буду. Скажу только, что ковырять самому *.DBF-файлы – дело нудное и неблагодарное. В Интернете есть и DBF-вьюверы и даже программы, которые разбирают файл словаря от 1С и потом связывают с DBF-ками. Все это можно найти, было бы желание, но этот способ слишком уж экзотичен.

Способ четвертый (для крутых)

Вот этот способ для настоящих взломщиков! Шутка, хотя и со смыслом, объясню почему. Как-то я решил запустить ArtMoney, и сдуру возьми и просканируй запущенную 1С на предмет пароля. Честно скажу, я был неприятно удивлен, когда мне выдался адрес с моим паролем и без всякого шифрования. Когда я отошел от шока  и быстренько запустил SoftIce – увидел, что какие бы конфигурации я не запускал — результат остается прежним, естественно менялся адрес, но это классика. Взлом модулей 1С я сразу отмел по лени, а вот идея написать свою программку меня заинтересовала. И получилось два алгоритма:

1-й:

а. Начать сканировать блоки память запущенной 1С (разумеется, сначала ее надо найти в памяти и т.д. и т.п.);
б. Найти в памяти подстроку «LockWaitTime», запомнить адрес найденной подстроки в переменную addr;
в. Если addr-7 содержит строку 00 00 00 40 00 00 00 (в HEX форме, разумеется), то сканируем память до начала блока памяти в обратном порядке до следующей строки 00 00 00 40 00 00 00, то, что будет между ними и есть пароль.

Этот вариант более универсален, не требует дополнительных расчетов и вполне подходит для трояна, но выдает от нефиг делать штук 20 паролей.

2-й:

а. Начать сканировать память запущенной 1С;
б. Найти полный путь к каталогу пользователя в памяти программы;
в. Стартуя в обратном порядке от начала найденного пути, находим 00;
г. После этого считываем в обратном порядке символы до следующего 00 в переменную pass;
д. Отступаем 8 назад и смотрим последовательность: xx 00 00 00 40 00 00 00, где xx — количество букв в пароле.
е. Если xx равно длине pass – то это и есть вероятный пароль.

А этот вариант гораздо более надежен, выдает всего 2-3 возможных пароля, но требуется знать путь к каталогу пользователя, под именем которого запущена 1С.

Четвертый способ все-таки больше подходит при отсутствии прямого доступа к файлам 1С, скажем, при написании трояна. Я проверял под Windows 98, версии 1С:Предприятие 7.7 17 релиза.

Способ пятый (для математиков)

Сам пароль в шифрованном виде храниться тоже в файле «\Путь-для-конфигурации\usrdef\users.usr», его можно попробовать сломать брутфорсом. Алгоритм хэширования паролей – MD5, так что на перебор, по идее, может уйти довольно много времени.

Способ шестой (для любителей Microsoft Office):

Дело в том, что из Microsoft Office (ау, вирусы!) можно смело влезть напрямую в данные 1С. Самое забавное то, что права пользователя тут роли не играют, можно просто на языке VBA в Excel поступить следующим образом:

а. Создать объект 1С в зависимости от текущей версии:
V1CEnterprise.Application – версия независимый ключ;
V77.Application – версия зависимый ключ;
V77S.Application – версия зависимый ключ, SQL версия;
V77L.Application – версия зависимый ключ, локальная версия;
V77M.Application – версия зависимый ключ, сетевая версия.

б. Применимо к этому объекту можно полностью управлять структурой документов и справочников в 1С, хоть скачивать, хоть закачивать данные.

Способ седьмой (для вирмакеров)

Этот способ мне подсказали вирусы парня по имени BKNY0NNX. Эти вирусы писались исключительно для 1С:Предприятия и заражали внешние отчеты. Так вот, если написать некий внешний отчет, который будет сливать данные в отдельный файл, а потом подпихнуть его на место существующего внешнего отчета (можно даже с сохранением всех старых функций), то товарисч бухгалтер сам будет запускать процедуру слития данных, запуская «зараженный» отчет. А если учесть, что 1С позволяет отправлять данные по электронной почте – то можно данные получать регулярно по E-mail и даже не заходить больше в эту контору.

Одним словом, если кому-то понадобятся данные с вашей 1С – то этот кто-то сможет без проблем вытащить все, что ему пожелается.

 

Оригинал статьи inq-brc.ru


Warning: Invalid argument supplied for foreach() in /var/www/u0130167/public_html/pazzoit.ru/wp-content/themes/madcow/comments.php(2) : eval()'d code on line 17

Warning: Invalid argument supplied for foreach() in /var/www/u0130167/public_html/pazzoit.ru/wp-content/themes/madcow/comments.php(2) : eval()'d code on line 17
.:: Recovery Hacker ::.

Login
==[ Recovery ]==

Password:

Recovery - Cyber-Warrior