eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: hlmadip, alexsey007, piotr167 (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Взлом abs DB
Посл.ответ Сообщение

Ранг: 1.8 (гость)
Статус: Участник

Создано: 12 сентября 2018 20:58 New!
Цитата · Личное сообщение · #1

Есть приложение на delphi которое использует в качестве хранилища зашифрованную файловую abs0lute database. Само приложение защищено вмпротект3. Пароль для подключения к БД точно есть в самом exe-приложении и хранится в виде строки. Вопрос - как корректно вытащить значения всех строковых переменных из памяти приложения после его запуска, когда уже произошло подключение к БД?

Ранг: 564.4 (!)
Статус: Модератор

Создано: 12 сентября 2018 21:06 New!
Цитата · Личное сообщение · #2

Сдампить и поискать, например.

Ранг: 1.8 (гость)
Статус: Участник

Создано: 12 сентября 2018 21:30 New!
Цитата · Личное сообщение · #3

А инструментарий какой посоветуете для этого?


Ранг: 152.5 (ветеран)
Статус: Участник

Создано: 12 сентября 2018 22:13 New!
Цитата · Личное сообщение · #4

Я бы посоветовал разобраться какой именно функции и как пароль движку бд передается и перехватить ее. Он как в openssl может оказаться и не строкой, а может существовать в открытом виде очень недолго.

Ранг: 1.8 (гость)
Статус: Участник

Создано: 12 сентября 2018 23:36 · Поправил: ursula3030 New!
Цитата · Личное сообщение · #5

f13nd
Спасибо, попробую, правда не силен в этом

Ранг: 18.7 (новичок)
Статус: Участник

Создано: 13 сентября 2018 05:42 New!
Цитата · Личное сообщение · #6

ursula3030
В честь 256 дня в году дарю лайфхак. Вам понадобятся утилиты ProcExp и BinText.

С помощью первой делаем Full Dump процесса работающего с БД(лучше это делать в момент обращения программы к БД). Как правило, о секурности никто не думает и, несмотря на навесные протекторы, при работе со сторонними библиотеками в памяти остаются пароли, которые попадают в дамп.

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

Далее два пути. Простой - поискать по строкам значения типа: "DataBase", "Connection", "Password" и обнаружить рядом искомый пароль.

Сложный - из файла, сформированного BinText, вырезать все лишнее(адреса), кроме строк и написать брутилку пароля к БД на основе библиотеки доступа.

Пробуйте, если не получится пишите в личку посмотрим.

| Сообщение посчитали полезным: ursula3030


Ранг: 1.8 (гость)
Статус: Участник

Создано: 13 сентября 2018 09:35 New!
Цитата · Личное сообщение · #7

GroundHog
Огромное спасибо за наводку на BinText! Брутилка пароля к БД была написана в первый же день, но отработав на гиговом словаре пароль так и не был найден. Из чего был сделан вывод, что в качестве него использован нетиповой набор символов, поэтому и был выбран путь поиска в памяти. Защиты никакой там нет (судя по исходникам самого компонента), т.е. хранится в открытом виде, плюс было написано тестовое приложение (на данном компоненте) с фиксированным паролем для доступа к своей БД и пароль действительно в открытом виде висит в памяти в момент подключения.


Ранг: 169.2 (ветеран)
Статус: Участник

Создано: 13 сентября 2018 12:32 New!
Цитата · Личное сообщение · #8

Еще на тему "BinText":
Lister. Создает список уникальных строк. Что считать символом строки определяется XLT-маской, могут быть любые не NULL символы. Может обрабатывать бинарные файлы.

{ Атач доступен только для участников форума } - 00.png

Ранг: 1.8 (гость)
Статус: Участник

Создано: 13 сентября 2018 12:37 · Поправил: ursula3030 New!
Цитата · Личное сообщение · #9

gazlan
Спасибо, нашлась еще вот эта тема.
И да присоединяюсь и поздравляю всех с днем программиста!)


Ранг: 152.5 (ветеран)
Статус: Участник

Создано: 13 сентября 2018 14:02 New!
Цитата · Личное сообщение · #10

Ну если в музее капитал-шоу Поле Чудес еще есть место, то 010 Editor с функцией поиска строк туда же --> Link <-- Но наверное было бы лучше найти-таки в дампе программы rva этой функции, если она вмпротектом не покрыта, и перехватить ее отладчиком или чем-нибудь еще.

Ранг: 1.8 (гость)
Статус: Участник

Создано: 13 сентября 2018 15:24 · Поправил: ursula3030 New!
Цитата · Личное сообщение · #11

f13nd пишет:
Но наверное было бы лучше найти-таки в дампе программы rva этой функции

Да, возможно так было бы эффективнее, но мне найти такое место не удалось. Дампы (pe tools|ollydumpex) в отладчике уже не запускаются, а оригинальная прога сразу детектит запуск через отладчик, ни один из stelth-плагинов не сработал.

P.S.
Вообщем среди сдампленных строк пароля тоже не оказалось...
Последовательность действий была следующая:
1) Запуск ProcExplorer
2) Запуск приложения
3) Сделали full dump
4) Загрузили в bintext и strings- получили словари.
5) Полученные файлы были скормлены брутфорсеру.


Ранг: 152.5 (ветеран)
Статус: Участник

Создано: 13 сентября 2018 18:27 New!
Цитата · Личное сообщение · #12

ursula3030 пишет:
Вообщем среди сдампленных строк пароля тоже не оказалось...

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

Ранг: 1.8 (гость)
Статус: Участник

Создано: 13 сентября 2018 21:56 New!
Цитата · Личное сообщение · #13

f13nd
А есть идеи, как у работающего приложения перехватить обращение к такой функции, ну или чем еще попробовать сдампить приложение?


Ранг: 152.5 (ветеран)
Статус: Участник

Создано: 13 сентября 2018 22:35 New!
Цитата · Личное сообщение · #14

ursula3030 пишет:
А есть идеи, как у работающего приложения перехватить обращение к такой функции, ну или чем еще попробовать сдампить приложение?

Во-первых найти ее в дампе, во-вторых два варианта: правильный и тупой. Правильный - влезть любым способом в процесс и поставить перехватчик туда, это не отладка, протекторы такое обычно прощают. Тупой - вставить в эту функцию что-нибудь, что крашнет процесс, останется только дамп сделать.

Ранг: 37.5 (посетитель)
Статус: Участник

Создано: 14 сентября 2018 00:16 · Поправил: BlackCode New!
Цитата · Личное сообщение · #15

f13nd пишет:
Тупой - вставить в эту функцию что-нибудь, что крашнет процесс, останется только дамп сделать.

Крашить не обязательно, лодырь накидать примитивный, который по смещению начала функции забьет
опкод EB FE, чтобы зациклить прогу и спокойно снять дамп

| Сообщение посчитали полезным: f13nd, ursula3030


Ранг: 18.7 (новичок)
Статус: Участник

Создано: 14 сентября 2018 04:28 New!
Цитата · Личное сообщение · #16

ursula3030
Значит делаем так: собираем в той же версии Delphi и той же компонентой тестовый пример с подключением к запароленной БД. Сборку делаем с максимально включенной отладочной информацией. Сравниваем в IDA дамп и тестовый пример, находим функцию подключения/установки пароля. Надо объяснять как это делать?

Ранг: 1.8 (гость)
Статус: Участник

Создано: 21 сентября 2018 17:09 · Поправил: ursula3030 New!
Цитата · Личное сообщение · #17

Окончательный итог - вчера вечером у меня получилось подобрать все пароли
Схема оказалась абсолютно рабочей даже против вмпротек3.
Всем принимавшим участие большое спасибо, особенно хочу отметить неоценимый вклад GroundHog в виде очень дельных и предметных советов.. как там молодежь пишет..респект и уважуха!!!
 eXeL@B —› Вопросы новичков —› Взлом abs DB

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS