Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отлов внедрения 
:(
    Опции темы
Riply
Дата 16.12.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ASGDeveloper @  16.12.2007,  20:07 Найти цитируемый пост)
Но похоже одним из условий здесь является невмешательство в процесс "потерпевшего" приложения. Может есть еще какие варианты? 


Если твой "подопытный" написан грамотным троянописателем  smile , 
то при выгрузке он должен корректно возвращать обратно все,
 что напакостил в чужом АП.
В этом случае при его анлоаде ничего страшного не должно поизойти.

Как без "вмешательства" не знаю.
Может перед стартом инжектора залезать только в него, перехватывать NtQuerySystemInformation, и не давать ему внедряться во все процессы системы ?

Надо подумать.

PM MAIL   Вверх
Riply
Дата 16.12.2007, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ASGDeveloper @  16.12.2007,  20:07 Найти цитируемый пост)
Может есть еще какие варианты? 

Может я не так поняла ? Варианты чего ?
Если получения "настоящего" списка загруженных модулей, то нам никуда внедряться не надо.
Он же сам влез в нас. Прямо в себе и получаем нужное.  smile 

PM MAIL   Вверх
ASGDeveloper
Дата 16.12.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(Riply @  16.12.2007,  20:55 Найти цитируемый пост)
Он же сам влез в нас. Прямо в себе и получаем нужное.

Нет, ситуация такая. Есть приложение "жертва" в которое внедряю сторонний код. Моей проге нужно проверить не сделали чего с "жертвой" и не загрузила ли она кого лишнего.
PM MAIL   Вверх
Riply
Дата 16.12.2007, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ASGDeveloper @  16.12.2007,  21:25 Найти цитируемый пост)
Моей проге нужно проверить не сделали чего с "жертвой" и не загрузила ли она кого лишнего. 


И проделать это не влезая в жертву ? smile 
Жестковатые условия  smile 

Можно попробовать так:
Раз он влезает в жертву при помощи LoadLibrary, то в ней есть ее Handle.
Перебираем все открытые Handl`ы жертвы и смотрим их имена (объекты типа "FILE").
Находим имя внедряемой библиотеки - жертва хакнута.

     ?
PM MAIL   Вверх
ASGDeveloper
Дата 17.12.2007, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(Riply @  16.12.2007,  21:37 Найти цитируемый пост)
Находим имя внедряемой библиотеки - жертва хакнута

Нет такого хэндла. Не зря же анлокер не находит. Щас пытаюсь прицепиться к другому варианту. Модуль внедряемый инжектором содержит ряд специфичных строк (вроде Hello World), может тогда попробовать почитать память "жертвы" в поисках этих строк?
PM MAIL   Вверх
Riply
Дата 17.12.2007, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ASGDeveloper @  17.12.2007,  02:28 Найти цитируемый пост)
Нет такого хэндла. Не зря же анлокер не находит.


Handle`а может конечно и не быть, но дело мне кажется в другом.
Она прячет себя из списка загруженных модулей.
Когда это делаешь, то подправить таблицу открытых Handl-ов - это лишние
пять строчек кода smile 
Анлокер тоже хакнут. Вот и не видит.
Так что получай "нормальный" список хандлов, методом аналогичным получению 
"настоящего" списка модулей.

Цитата(ASGDeveloper @  17.12.2007,  02:28 Найти цитируемый пост)
может тогда попробовать почитать память "жертвы" в поисках этих строк? 


Imho некузявый способ smile 
PM MAIL   Вверх
ASGDeveloper
Дата 17.12.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(Riply @  17.12.2007,  11:48 Найти цитируемый пост)
Так что получай "нормальный" список хандлов

Вернулись к началу - как получиться нормальный список хэндлов? smile
PM MAIL   Вверх
Riply
Дата 17.12.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ASGDeveloper @  17.12.2007,  14:10 Найти цитируемый пост)
Вернулись к началу - как получиться нормальный список хэндлов


Точно так же как и "не хакнутый" список загруженных модулей. smile 
Там же не было привязки ни к библиотеке, ни к имени функции.

У Rouse_ на сайте есть пример получения списка всех открытых Handle`ов и их имен.
Чуть его подправить для работы только с одним процессом.

Далее:
Получаем "настоящие" адреса для всех необходимых функций и используем
их в переделанном Rouse_`ском примере, вместо перехваченных функций. smile 



PM MAIL   Вверх
ASGDeveloper
Дата 18.12.2007, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(Riply @  17.12.2007,  14:51 Найти цитируемый пост)
У Rouse_ на сайте есть пример получения списка всех открытых Handle`ов и их имен.

Не вижу. :(


PM MAIL   Вверх
Riply
Дата 18.12.2007, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Sorry.
Прикрепляю его.

P.S.
 Только этому коду "сто лет в обед" будет. smile

Добавлено через 4 минуты и 26 секунд
Да. Сейчас увидела: там что-то закоментировано.
Может это я. Не помню.
Но все-равно, под твою задачу его перделать надо, так что не страшно.
Принцип сохранился  smile 

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  EnumOpenFiles.rar 4,52 Kb
PM MAIL   Вверх
ASGDeveloper
Дата 18.12.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(Riply @  18.12.2007,  00:40 Найти цитируемый пост)
Но все-равно, под твою задачу его перделать надо, так что не страшно.

Нету там хэндла этой длл-ки. И файл похоже "жертвой" не открыт (оригинальная утиль его не видит). .похоже чем дальше продвигаемся, тем дальше уходим от решения.
PM MAIL   Вверх
Riply
Дата 18.12.2007, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ASGDeveloper @  18.12.2007,  19:39 Найти цитируемый пост)
Нету там хэндла этой длл-ки. 


И не должно было быть, если она внедряется во все процессы. smile 
В этом примере надо использовать функции, полученые не с помощью
GetProcAddress, а "настоящие". Технологией их получения ты владеешь.

Цитата(ASGDeveloper @  18.12.2007,  19:39 Найти цитируемый пост)
похоже чем дальше продвигаемся, тем дальше уходим от решения. 


IMHO
Т.к. мы знаем что идет внедрение во все процессы, то
самый лучший и простой вариант:
Получить в себе настоящие адреса ф-ий.
С их помощью, в себе же найти эту Dll-ку.
С их же помощью, перебрать все процессы и все модули в них (или Handl-ы).
И выдернуть ее за ушко да на солнышко  smile 

Т.е. "настоящие" адреса надо получать только в себе.

Я так и не поняла, чем этот вариант тебе не нравиться ?

PM MAIL   Вверх
ASGDeveloper
Дата 18.12.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(Riply @  18.12.2007,  21:17 Найти цитируемый пост)
И не должно было быть, если она внедряется во все процессы.

У меня есть почти сорец этого инжектора. Внедрение только в один процесс. И противодействия обнаружению там тоже не вижу. Пока единственный вариант, который я еще не пробовал, это внедрить не модуль (свой) целиком, а только поток, так по идее и сам процесс "жертвы" я почти не трогаю и в теории смогу получить реальные адреса перехватываемых функций.
PM MAIL   Вверх
Riply
Дата 18.12.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ASGDeveloper @  18.12.2007,  23:08 Найти цитируемый пост)
У меня есть почти сорец этого инжектора. Внедрение только в один процесс.


"Меня терзают смутные сомненья" (с) smile 
1. Ее никто не видит в списке загруженных модулей 
    (кстати посмотри-ка через Performance Counters. Мне бы было лень их тоже править smile )
2. Никто не находит ее Handle, тем не менее файл не уничтожить.
3. Ну и на закуску: как быть с тем, что нашли вы с идочкой в:
Цитата(ASGDeveloper @  16.12.2007,  16:51 Найти цитируемый пост)
Мы с идочкой выделили несколько основных процедур 


?

P.S.
 Сам инжектор может внедрять только в один, а дальше она сама со всем справиться.
 Вариантов миллион smile 

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.