powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Достать из .exe логин/пароль к базе
36 сообщений из 36, показаны все 2 страниц
Достать из .exe логин/пароль к базе
    #39107908
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программа для работы с базой, написана на C#. В наличии только exe-файл, без конфига, строка подключения хранится прямо в исходнике. Как достать логин/пароль, которые использует программа для работы с базой?

Задач на самом деле две:

1) Как достать логин/пароль?
Если это может помочь, доп. информация - у злоумышленника есть обновляемый excel файл со строкой подключения в чистом виде, но с учеткой попроще, т.е. он изначально знает все параметры подключения, кроме админской учетки.

2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник)
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39107949
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoКак достать логин/пароль, которые использует программа для работы с базой?
Поймать момент авторизации на сервере БД. Сниффингом, например...
Извлечь из тела исполняемого файла пару логин-пароль в общем случае невозможно.

ConejoМожно ли как-то этому противостоять?
Внутри файла - формировать логин и пароль кодом, а не задавать как литерал. Плюс обычные мероприятия против трассировки кода.
Снаружи файла противостоять "отлову" логина и пароля практически нереально - разве только что средствами приложения устанавливать шифрованное соединение с сервером БД.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39107964
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Спасибо большое за ответ. Внутри кода - да, реально прогнать через шифратор, в другой программе так и делаем. Но при соединении с базой - неужели пароль передается в чистом, не зашифрованном виде? Вот это да!
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108012
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Conejoпри соединении с базой - неужели пароль передается в чистом, не зашифрованном виде? Вот это да!
Если канал обмена не шифрован - конечно, в открытом. Вот не входит в функции сервера БД шифрование обмена с клиентом. Даже если сервер искаропки такое умеет - всё равно этим занимается отдельно встраиваемая подсистема.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108014
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoВнутри кода - да, реально прогнать через шифратор, в другой программе так и делаем.
Я имел в виду не шифрование, а программное формирование и сборку - это проще и нестандартнее. Особенно если строки кода формирования логина и пароля раскиданы между строками кода инициализации приложения - в такой каше сложнее понять, что, как и где формируется.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108040
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
идею программной сборки я поняла правильно, про шифрование - это уже моя следующая мысль, сделать как в параллельном проекте.

В общем, резюмируя вышесказанное, вывод - бороться очень тяжело, легче предупредить народ, что при обнаружении несанкционированных манипуляций с базой - расстрел без суда и следствия.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108058
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Conejo , а Вы, простите, в этой каше кто? разработчик? распространитель? интегратор? сетевой админ? админ задачи? пользователь?
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108087
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoЕсть программа для работы с базой, написана на C#. В наличии только exe-файл, без конфига, строка подключения хранится прямо в исходнике. Как достать логин/пароль, которые использует программа для работы с базой?

Задач на самом деле две:

1) Как достать логин/пароль?
Если это может помочь, доп. информация - у злоумышленника есть обновляемый excel файл со строкой подключения в чистом виде, но с учеткой попроще, т.е. он изначально знает все параметры подключения, кроме админской учетки.

2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник)

Насчет противостояния сниффингу.
1. Сервер с клиентом, используя протокол Диффи - Хелмана, формируют ключи шифрования для зашифрования пароля (и всего трафика).
2. Либо, например, используя один из известных алгоритмов ассимметричного шифрования с открытым ключом, сервер посылает клиенту открытый ключ. Клиент шифрует пароль открытым ключом и отправляет результат серверу. Для расшифрования используется другой, секретный ключ, который остался на сервере.
...
Однако, все это можно взломать, зная и имитируя протокол обмена данных: вместо сервера подставляется сервер-имитатор, который в итоге получит пароль в открытом виде.
...
Противостояние имитации сервера: электронная подпись. Например: клиент генерирует случайный блок данных и отправляет на сервер. Сервер формирует электронную подпись, которую возвращает клиенту. Клиент, проверив электронную подпись, убеждается, что общается с подлинным сервером.
...
Однако это можно взломать, дизассемблировав приложение клиента. Противостояние дизассемблированию: вынести участок кода, выполняющий проверку ЭЦП, а также хранящий и шифрующий пароль, в защищенный объект: например, в электронный ключ защиты типа USB Guardant Sign/USB Guardant Code (и т.п.).
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108093
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
из предложенных ответов ближе всего "админ задачи".
Но изначально я администратор базы данных, в которой это безобразие творится.
Наши умные операторы решили ускорить ввод, заливая данные напрямую в базу, в обход специальной программы. Это повлекло большие проблемы, не хотелось бы повторения.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108102
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZeroMQ, спасибо
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108139
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати просмотрела exe через F4 - логина/пароля в чистом виде там нет, видимо С# его прячет. А вот Delphi константы хранит в чистом виде, поэтому и пришлось шифровать в другом проекте.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108208
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoНаши умные операторы решили ускорить ввод, заливая данные напрямую в базу, в обход специальной программы.
Это проблема, которая должна решаться в административном порядке.
Когда один идиот оплатит работы по восстановлению БД, все сразу зарекутся работать в обход штатного софта.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108229
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
ConejoКстати просмотрела exe через F4 - логина/пароля в чистом виде там нет, видимо С# его прячет. А вот Delphi константы хранит в чистом виде, поэтому и пришлось шифровать в другом проекте. попробуй каким-нибудь ресурс эксплорером посмотреть что в ресурсах
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108243
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Conejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник)

Так если база-то у вас, поменяйте пароль, и всё...
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108272
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivConejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник)

Так если база-то у вас, поменяйте пароль, и всё...
Так они его в прогу зашили. Прога тоже встанет.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108275
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108285
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Conejo,

сервер то какой ?
MSSQL?
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108312
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TЕсли прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей.
Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа))

Изопропил сервер то какой ?
MSSQL?
он самый
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108402
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoИзопропилсервер то какой ?
MSSQL?
он самый
в login триггере можно посмотеть что творится app_name() и т д


Conejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник)
уволить архитектора
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108422
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoКстати просмотрела exe через F4 - логина/пароля в чистом виде там нет, видимо С# его прячет. А вот Delphi константы хранит в чистом виде, поэтому и пришлось шифровать в другом проекте.
Есть простые, многократно описанные способы, как обойти.
Разу уж вам приспичило хранить ключ в приложении, возьмите случайную последовательность, равную длине ключа.
При разработке приложения выполните("ручками") операцию побитного XOR ключа с этой случайной последовательностью, её и храните в виде константы А в приложении.
Кроме того, отдельно в приложении храните и саму упомянутую случайную последовательность в виде константы Б.
А при выполнении приложения выполните повторный А XOR Б, и получите свой секретный ключ.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108426
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoDima TЕсли прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей.
Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа))

Изопропил сервер то какой ?
MSSQL?
он самый

MS SQL Server всегда шифрует сетевые пакеты, связанные с входом в систему.
То есть, в данном случае, по сети пароль в открытом виде не передается.

Если объяснять примитивно, то установлении соединения сервер передает клиенту открытый ключ шифрования, клиент "внимательно изучает этот ключ", и если он его устраивает, шифрует пароль полученным ключом. Ну а затем зашифрованный пароль передается серверу. Так как шифрование асимметричное, то для расшифровать пароль может только сам сервер, ибо ключ для расшифровывания есть только у него.

Сниффер ничего не перехватит, то есть.

https://msdn.microsoft.com/ru-ru/library/ms131691.aspx
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108463
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoDima TЕсли прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей.
Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа))
Тут уже проблема с архитектурой базы. Поле ID оператора как минимум должно быть внешним ключом и not null. Тогда при всем желании его не оставить незаполненным. Другой вопрос можно ли писать туда первое попавшееся значение ID. Это можно на уровне триггеров проверять. База должна в себе содержать всю бизнес логику. Нет гарантии что кто-то случайно или специально пришлет "delete from Table". Например прога сглючит и не допишет "where ..."

Я советую нанять грамотного DBA чтобы навести в базе порядок с безопасностью. Пока посерьезнее проблем не приключилось.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108756
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoНаши умные операторы решили ускорить ввод, заливая данные напрямую в базу, в обход специальной программы. Это повлекло большие проблемы, не хотелось бы повторения.А как они зашли на сервер? Они действительно рылись в exe-файле, или есть какой-то известный всем логин с паролем?
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108762
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если база MSSQL и авторизация там BASIC, то проще не пытаться найти пароль в программе, а снифером снять дамп, найти пароль в куче и расшифровать его, там шифрование XOR 0xA0 для всех символов и усё, тупое как топор, на калькуляторе можно расшифровать :) как то была необходимость подобная автору, решилась часа за 1,5 таким способом
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108814
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TMasterZivпропущено...


Так если база-то у вас, поменяйте пароль, и всё...
Так они его в прогу зашили. Прога тоже встанет.


я думал, это и была цель ТС.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39108999
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Conejo]
Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа))
Надо валидацию данных на уровне базы делать, чтобы не могли неправильные данные туда попасть
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39110891
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Conejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник)
Есть куча методов этому противостоять, среди которых один правильный: грамотно выдавать права. Так, чтобы злоумышленник, после бессонных ночей вытащивший логин-пароль, не смог бы сделать ничего, чего он не может сделать в интерфейсе программы без ковыряний со снифферами и дизассемблерами.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39112701
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZeroMQСниффер ничего не перехватит, то есть.

Отличная новость, спасибо!
Тут уже проблема с архитектурой базы. Поле ID оператора как минимум должно быть внешним ключом и not null. Тогда при всем желании его не оставить незаполненным. Другой вопрос можно ли писать туда первое попавшееся значение ID. Это можно на уровне триггеров проверять. База должна в себе содержать всю бизнес логику. Нет гарантии что кто-то случайно или специально пришлет "delete from Table". Например прога сглючит и не допишет "where ..."

Это не поможет в нашем случае. Запись может редактироваться больше 1-го раза, и ID оператора в этом случае уже не пусто, оно и останется тем же, а запись будет поправлена...
я думал, это и была цель ТС.

неа. Мы очень хотим продолжать сотрудничество с операторами, и с этими в том числе, но мы совсем не хотим, чтобы какие-то изменения в базе происходили в обход логики, которая зашита в программу. От этого много чего зависит...
А как они зашли на сервер? Они действительно рылись в exe-файле, или есть какой-то известный всем логин с паролем?

Рассказываю. Мы вчера это выяснили. Любая или почти любая программа написанная на с# (и наша не исключение) легко и непринужденно декомпилируется бесплатно распространяемой JetBrains dotPeek. Нажимаем кнопку и видим исходник с паролем в чистом виде!
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39112742
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoМы вчера это выяснили. Любая или почти любая программа написанная на с# (и наша не исключение) легко и непринужденно декомпилируется бесплатно распространяемой JetBrains dotPeek
Если не секрет, сколько лет вы работаете с .NET?
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39112801
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoМы очень хотим продолжать сотрудничество с операторами, и с этими в том числе, но мы совсем не хотим, чтобы какие-то изменения в базе происходили в обход логики, которая зашита в программу. От этого много чего зависит...
Тогда надо дать операторам удобный инструмент. Не от хорошей жизни они вашу прогу поломали. Как понимаю оператор сделал какую-то автоматизацию своей работы и т.к. прога не дала ни каких возможностей эту автоматизацию применить - пришлось избавится от проги.
ИМХУ тут надо не пароль глубже прятать, а выяснить реальные потребности оператора и доработать прогу под эти потребности.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39112944
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazileЕсли не секрет, сколько лет вы работаете с .NET?
Да не секрет - лично я вообще не работаю. Программы на C# писал начинающий программист-студент, который работал у нас полгода, сейчас их поддерживает системный администратор.
bazileТогда надо дать операторам удобный инструмент. Не от хорошей жизни они вашу прогу поломали. Как понимаю оператор сделал какую-то автоматизацию своей работы и т.к. прога не дала ни каких возможностей эту автоматизацию применить - пришлось избавится от проги.
ИМХУ тут надо не пароль глубже прятать, а выяснить реальные потребности оператора и доработать прогу под эти потребности.

Удобство работы с операторами обсуждается.
Имея пароль, можно не только свою работу делать, а много чего другого. В частности, если догадаться как, можно повлиять на расчет своей зарплаты (она сдельная). Конечно, мы это выясним достаточно быстро, но вот зачем нам лишняя работа и лишние проблемы? Наверно все-таки лучше повысить безопасность.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39113009
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConejoИмея пароль, можно не только свою работу делать, а много чего другого.
Значит, пару лет назад надо было уволить архитектора (если он был) либо нанять архитектора (если его не было).
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39113073
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerConejoИмея пароль, можно не только свою работу делать, а много чего другого.
Значит, пару лет назад надо было уволить архитектора (если он был) либо нанять архитектора (если его не было).о чём вы вообще...
ConejoПрограммы на C# писал начинающий программист-студент, который работал у нас полгода, сейчас их поддерживает системный администратор.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39113098
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirо чём вы вообще...
ConejoПрограммы на C# писал начинающий программист-студент,
Этому студенту кто-то ставил задачу, ревьюил код и принимал работу. Вот ему и надо.... привести служебное положение в соответствие квалификации.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39113163
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Conejo1) Как достать логин/пароль?
Если это может помочь, доп. информация - у злоумышленника есть обновляемый excel файл со строкой подключения в чистом виде, но с учеткой попроще, т.е. он изначально знает все параметры подключения, кроме админской учетки.


Анализ кода и отладка в том или ином виде. Конкретный приемы можно поискать в поисковиках. ("Взлом <технология>")


2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник)
[/quot]

1) Сделать взлом более сложным с помощью различных приемов (обфускация, динамическая генерация кода, приёмы защиты от отладки)

2) Сделать взлом принципиально невозможным - просто перенести на свой сервер бизнес логику и предоставлять услугу по предоставлению софта

3) Сделать взлом нерентабельным - дать людям то, что они хотят дешевле (в долгосрочной перспективе) чем взлом.
...
Рейтинг: 0 / 0
Достать из .exe логин/пароль к базе
    #39113269
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarertanglirо чём вы вообще...
пропущено...

Этому студенту кто-то ставил задачу, ревьюил код и принимал работу. Вот ему и надо.... привести служебное положение в соответствие квалификации.
Злые вы)))
На данный момент - закрыли программу обфускатором, нарушителю выделили отдельную учетку с усиленным контролем. Надеюсь, пока хватит...
Всем спасибо!!!
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Достать из .exe логин/пароль к базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]