Узнаем пароли пользователей 1С
Возможность тестировалась на платформе 1с версии 8.1.13.41 и 8.2.10.82 (думаю на 8.0 ситуация обстоит так же) на операционной системе Windows Server 2008 как 32 так и 64 битной под правами локального администратора в терминальной сессии. На самом деле и на операционных системах «постарее» можно узнать пароль, просто не так банально как на тестируемой ОС.
Для удачного теста необходимо, чтобы на терминальном сервере уже был хотя бы один пользователь удачно авторизировавшийся в информационной базе 1С (в режиме конфигуратора или предприятия).

Запустите диспетчер задач и нажмите на кнопку «Отображать процессы всех пользователей», далее в появившемся окне нажмите на кнопку «Продолжить». После выбираем пункт меню: «Вид» -> «Выбрать столбцы…» и в появившемся окне ставим галку напротив пункта «Командная строка» и нажимаем кнопку «Ок». Ищем глазами процесс 1cv8.exe и наблюдаем примерно такое:
Для меня стало откровением то, что запуская 1С без таких параметров командной строки как логин и пароль, текущий процесс запускает новый с авторизационными параметрами командной строки, а потом уже завершает себя.
Не буду делать акцент на том, что у многих смертных один и тот же пароль используется не только для доступа к ИБ 1С и к каким последствиям может привести факт владения паролем другой стороной. Хочу лишь отметить, что все потуги самой 1С использовать алгоритмы шифрования AES, Triple DES, протокол SSL для доступа к ИБ, хранение паролей пользователей в таблице базы данных в специальном формате перечеркиваются вышеприведенным способом авторизации.
UPD:
Перенес в блог «Информационная безопасность»
Работа с паролями пользователей в 1С
Для того чтобы программно задать пароль пользователя в 1С, нужно сначала получить нужного пользователя информационной базы. Для этого используется метод НайтиПоИмени() менеджера пользователей информационной базы.
Пользователь = «Иванов Иван Иванович» ;
ПользовательИБ = ПользователиИнформационнойБазы . НайтиПоИмени ( Пользователь ) ;
Установка нового пароля
Для установки нового пароля пользователя 1С, его нужно записать в свойство Пароль пользователя информационной базы. Это свойство недоступно для чтения, поэтому, записав туда пароль, прочитать его уже не удастся.
ПользовательИБ . Пароль = «q12345» ;
После установки пароля свойство ПарольУстановлен пользователя информационной базы примет значение Истина. Пароль начнет работать после перезапуска системы.
Установка требований к сложности пароля в 1С
Система 1С:Предприятие имеет встроенный механизм проверки сложности паролей пользователей. Функция включается через Конфигуратор, меню Администрирование — Параметры информационной базы — Проверка сложности паролей пользователей.
При включении этой функции пароль проверяется на соответствие следующим требованиям:
- Длина не менее 7 символов;
- Содержит не менее 3-х типов символов:
-
- заглавные буквы;
- строчные буквы;
- цифры;
- спец. символы.
- Не совпадает с именем пользователя;
- Не является последовательностью символов.
Можно включить эту функцию программно:
УстановитьПроверкуСложностиПаролейПользователей ( Истина ) ;
Для проверки вводимого пользователем пароля на соответствие этим требованиям попытаемся создать временного пользователя с заданным паролем. В функцию мы будем передавать сам новый пароль. Функция будет возвращать значение Истина, если пароль соответствует требованиям, и Ложь — если не соответствует.
Функция ПарольСоответствуетТребованиям ( Пароль )
//Убедимся, что проверка сложности включена
УстановитьПроверкуСложностиПаролейПользователей ( Истина ) ;//Создадим временного пользователя и установим его параметры
ВременныйПользовательИБ = ПользователиИнформационнойБазы . СоздатьПользователя ( ) ;
ВременныйПользовательИБ . АутентификацияСтандартная = Истина ;
ВременныйПользовательИБ . Имя = НСтр ( «ru = ‘Временный пользователь'» ) +
» (» + Строка ( Новый УникальныйИдентификатор ) + «)» ;//Установим временному пользователю требуемый пароль
ВременныйПользовательИБ . Пароль = Пароль ;//Попытаемся записать временного пользователя.
//Если появится ошибка, значит пароль не соответствует требованиям
ХорошийПароль = Истина ;//Удалим временного пользователя
ВременныйПользовательИБ . Удалить ( ) ;Как программно проверить пароль пользователя 1С
Как мы уже отмечали, свойство Пароль пользователя информационной базы недоступно для чтения, то есть мы не сможем при необходимости просто сравнить пароль, введенный пользователем, с паролем, который хранится в информационной базе.
Пароль из информационной базы мы можем получить только в хешированном виде через свойство СохраняемоеЗначениеПароля пользователя ИБ.
Для проверки соответствия введенного пароля паролю из информационной базы можно использовать следующую функцию. В нее мы передадим введенный пароль и имя пользователя. Функция вернет значение Истина, если пароль соответствует паролю информационной базы, и Ложь — если не соответствует.
Функция ПроверитьПароль ( Пользователь , Пароль )
//Получим пользователя ИБ
ПользовательИБ = ПользователиИнформационнойБазы . НайтиПоИмени ( Пользователь ) ;//Получим хешированное представление введенного пароля
ХешированиеДанных = Новый ХешированиеДанных ( ХешФункция . SHA1 ) ;
ХешированиеДанных . Добавить ( Пароль ) ;
ХешированныйНовыйПароль = Base64Строка ( ХешированиеДанных . ХешСумма ) ;
ХешированиеДанных = Новый ХешированиеДанных ( ХешФункция . SHA1 ) ;
ХешированиеДанных . Добавить ( ВРег ( Пароль ) ) ;
ХешированныйНовыйПароль = ХешированныйНовыйПароль + «,» + Base64Строка ( ХешированиеДанных . ХешСумма ) ;//Сравним полученный хешированный пароль и хешем пароля в информационной базе
Возврат ХешированныйНовыйПароль = ПользовательИБ . СохраняемоеЗначениеПароля ;1с как узнать пароль пользователя
Никак.
Только если спросить, выбить, подсмотреть.
Его можно подобрать — и под тем, что подобрал — зайти.
Но не факт, что Это тот пароль.Отсутствует физически.
А что не существует cracka?Когда пришел на новую работы, предыдущий прог мне паролей пользователей не оставил (всех не обежишь и не спросишь — их более 50). Мне посоветовали сделать так, чем я и воспользовался 🙂 — поменять все пароли, записать на бумажке и ждать звонков от пользоватлей и раздатть им новые пароли 🙂
2(5) И сразу завязались теплые дружеские отношения.
у меня где крякалка валялась, вскрывает и пароли конф и пароли юзверейврёте
можно по хэшу подобрать аналог
2(0) есть утилитка admin1c она хэш отлавливает на юзере и сама же брутфорсит..
правда сама долго считает мой селерон 2,4 считал 1час , а в инете есть бесплатные сервисы по ломанию(6) и не говори :), были конечно недовольные, но таких меньшиство. А коллектив хороший, зато сразу со всеми и познакомился.
2(8) Мы знаем. в админе желательно знать хотя бы длину пароля 🙂
. но проще спросить/поменятьВообще-то взлом паролей юзеров не есть очень неразрешимая задача 😉
Тем паче, учитывая кто есть эти юзеры :))Такое предложение:
— сделать обработку и запускать ее модально приНачалеРаботыСистемы .
— форму обработки сделать 1 в 1 как окно авторизации .
— потом, по введенному паролю, пробовать подключиться по оле к копии базы .
— если пароль правильный — сохранять его где-нибудь и в следующий раз обработку не запускать, а если не правильный статусвозврата(0) .
— сто пудей, что лохи-юзеры ничего не поймут .(12) Юзер отсутствует физически, читай (3)
(13) Кто понял жизнь, тот не спешит!
Куда он денется? Придет рано или позно, вляпается в (12) и будет наш .(14) Уволили — значит навсегда 🙂
(12) Ну вот еще. Так извращаться. Лучше установить шпион клавиатуры и по логам смотреть.
(7) вскрывает пароль на конфу или патчит 1С-ку? Если первое — намыль, пожалуйста.(15) А если уволили, то, во-первых, зачем под ним заходить? Чтобы задним числом всех собак на него повесить? Во-вторых, зачем нужен старый пороль — он же уже больше не понадобиться .
(12) Прикольно:))))))))), но сначала, увы, идет авторизация 1С, а потом ПриНачале работыСистемы() — заметят
(18) А вот это надо у (0) спросить
(18) Дык я и не спорю. «Умер Максим — ну и хрен с ним». Просто твой метод в 12 посте сложный. Согласись, шпион клавиатуры удобней будет. ActualSpy например.
«. придут к тебе и знания, за это вам ручается киножурнал «Хочу все знать»» (с)
(24) ага, еще и дба «подправить» незабудь. а для усерс.уср и работа с компаундом необязательна.
(17) именно вскрывает пароли, если не забуду, то завтра замылю, она у меня дома лежит(20) Не заметят . кто-то подумает, что ошибся при вводе пароля, кто-то просто не подумает «почему два раза?», а большинство — даже не обратят на это внимание — потому, что они боятся 1С .
(27) :))))
А если сделать безпарольный вход? Тогда вообще один раз будет появляться, а когда все пароли узнаны — обратно восстановить нормальный вход(28) а как ты его сделаешь? авторизация не появится если ты пользователей снесешь
(29,30) сделать копию базы, убить пользователей
— сделать обработку и запускать ее модально приНачалеРаботыСистемы .
— форму обработки сделать 1 в 1 как окно авторизации .
— потом, по введенному паролю, пробовать подключиться по оле к копии базы .
— если пароль правильный — сохранять его где-нибудь — сто пудей, что лохи-юзеры ничего не поймутТак это не беспарольный, а без авторизации .
(31) имхо это уже перебор:))Если ты пользователей убьешь, как ты узнаешь чей у кого пароль. Придется сложную фигню писать. Перебор каждого пароля к каждому пользователю. А не заколебет ли. Разве что зарядка для ума
(34) Сначала убить — потом восстановить
(33) Ну раз пошла такая пьянка+(32) В варианте (31) такой «ненормальный» запуск будет каждый раз, а в моем варианте если пользователь один раз в мою «авторизацию» введет правильный пароль, то больше он никогда «ненормальности» запуска не увидит. А если начнет пылить, то пусть попробует при тебе повторить то, что ему померещилось с мутных глаз .
(35) Если ты сначала убьешь юзеров, то получишь набор паролей, а если юзера не будет ты же не проверишь к какому юзеру какой пароль. А когда юзеров восстановишь, придется подбирать КАЖДЫЙ из полученных паролей к каждому пользователю и подходящую комбинаицию юзер+пароль из дальнейшего сопоставления исключать.
P.S. Уж не знаю, понятно ли я написал 🙂(37) Пользователи со всеми своими потрохами останутся в копии. Их оттуда можно потом просто скопировать, причем, не по одному, а сразу пачкой .
Только вчера столкнулся:
http://www.kuban.ru/forum_new/forum9/files/241710.html#F
(36) Намальный у Уха вариант.
(35) Ты сути непонял, там еще ОЛЕ присутствует.
(36) ну в принципе, да . один раз это ерунда. типа глюк:))
(41) Да незаметят пользователи, будет окно точ в точ как афторизация.(38) Наверно все таки меня не так поняли. Когда пользователь БЕЗ авторизации заходит в базу, как обработка узнает его «ИмяПользователя»?
(36) Почему каждый раз, обычно все пользователи один раз в день входят — на следующий день уже все ОК. Ну а если кто болел или даже позволил себе в отпуске быть в этот день — вытрясти пароль другими способами.
(40) Чего я не понял? Где ОЛЕ? А у меня не ОЛЕ?Все устал. Предлагаю новый способ. Сказать юзерам, что слетела база и пароли вместе с ней и раздать им на бумажках новые имена-пароли и сохранить эти пароли у себя :)))
А есть ли какой-нить кряк? Суть такая: началльник уехал, зайти в базу нужно под ним, если поменять ему пароль, то когда он приедет начнется головомойка.
(43) Имя, которое было выбрано в СЗ в обработке запомнить через СохранитьЗначение, привязавшись к ИмяКомпьютера(), а потом восстанавливать значение и ставить курсор на эту строку .
(46) ну, способ есть. $100
(48) 100$ Штрафа. =(((43) Можно предварительно составить соответсвие ИмяПользователя() — ИмяКомпьютера(). Можно при подключении по Оле пробовать зайти под всеми пользователями.
(44) Этт я ошибся (40)4(37)
(49) Нет, мне $100 и я расскажу способ(46) Зачем тебе кряк? Чукча! Тебе уже сто раз написали все .
Ты лучше скажи, что воруем-то? Я в доле?(47)(50) А нафих соответствие, в links.tmp все прописано, читай рекорды по 1024 байта.
(52) Давай не томи, выкладывай!наконецто афтор раскололся )))
1. сносишь users.usr в надежное место,
2. создаешь в конфиге юзера с такимже логином как у шефа,
3. зходишь под ним, пакостишь и выходишь,
4. возвращаеш users.usr взад (на родину),
5. оставь нам координаты шефа на всяк случай )))(57) этт не наш метод.
(50) Во-во. Придется пробовать каждый пароль применять к каждому юзеру
(56) 1. Копируешь users.usr .
2. Сносишь пароль юзера в конфиге.
Дальше по тексту .
(56) (61) Блин! Куда мои 100 енотов раскидываете.
(61) совершенству нет предела (с)(59)(59) Нет ты тупишь или притворяешься?
Читай внимательно у Уха. ОЛЕ.
Делаешь копию базы, сносишь нафих усерс.уср, удаляешь всех пользователей.
Пишешь МОДАЛЬНУЮ обработку с видом как у окна логининья. Там и список значений(Пользователи из скопированного усерс.уср) в обработке вводят парол, он записывается на диск, база по ОЛЕ подключается к скопированной если неподключиась обработка просит ввести снова парол(как в авторизации) если подключилась — закрываешь ОЛЕ и пускаешь работать. ФСЕ.
(Да все это в При НачалеРаботыСистемы)
P.S. А я бы сделал немного не так. там ведь МД5 значит достаточно скорей всего хэши сравнить того что в усерс.уср и того что ввели.(64) Друх, ты иди откуда пришел, пользуясь чюжими приблудами никогда несможешь ничего кроме как нажимать кнопку вкл/выкл.
Самое новое в «1С:Бухгалтерии 8»: восстановление пароля пользователя

Мы продолжаем серию «Самое новое в «1С:Бухгалтерии 8», в которой регулярно рассказываем об изменениях в новых версиях решения, о том, что в них появилось интересного, важного и полезного для бухгалтера.
В программе «1С:Бухгалтерия 8» начиная с версии 3.0.101 добавлена возможность восстановления пароля пользователя на вход в информационную базу. Функционал доступен только для коробочных версий.


Простой интерфейс: меню «Настройки — Другие настройки — Администрирование — Настройки пользователей и прав — Пользователи — Восстановление паролей».
Полный интерфейс: меню «Администрирование — Настройки пользователей и прав — Пользователи — Восстановление паролей».

Простой интерфейс: меню «Настройки — Другие настройки — Администрирование — Настройки пользователей и прав — Пользователи — Пользователи».
Полный интерфейс: меню «Администрирование — Настройки пользователей и прав — Пользователи — Пользователи».

Всю информацию серии можно найти по тэгу «самое новое в 1С:Бухгалтерии». Или просто следите за нашими новостями!