• XSS.stack #1 – первый литературный журнал от юзеров форума

Каков Алгоритм Injecta в Browser?

Пожалуйста, обратите внимание, что пользователь заблокирован
как проводятся инжекты в тело ответа внутри браузера.
Хукают функции, которые отвечают за чтение ответа внутри браузера, в перехваченной фуннкции вызывают оригинальную, дописывают, что нужно в результирующий буффер и возвращают управление.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Смотря какой инжект. Есть веб инжект, там вроде расширением добавляется js код. А обычный (формграббер) это когда подгружается:
1. chrome - chrome.dll
2. ie - wininet.dll
3. ff - nss3.dll, nspr4.dll
и оттуда вроде функции вызываются или хук ставится (но хз как они хукаются). Я сам нуб и было бы круто, если тут динозавры оставили инструкцию примерную как это делается.
Я понимаю например SetWindowsHook - где первый параметр это тип хука, а второй вроде указатель на функцию, туда передаются аргументы и т.д.
Вот возьмем wininet.dll ie граббер.
Вроде мы должны загрузить LoadLibrary и вызвать из него функции. Ну в общем хз. Можете объяснить простым языком как это делается.
Хукают функции, которые отвечают за чтение ответа внутри браузера, в перехваченной фуннкции вызывают оригинальную, дописывают, что нужно в результирующий буффер и возвращают управление.
Маленько догоняю, но не вижу полной картины
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я понимаю например SetWindowsHook - где первый параметр это тип хука, а второй вроде указатель на функцию, туда передаются аргументы и т.д.
Это перехватчик системных событий, к перехвату функций он не относится.

Вот возьмем wininet.dll ie граббер.
Вроде мы должны загрузить LoadLibrary и вызвать из него функции.
Твой код находится внутри IE (как он туда попал это другой вопрос). Wininet уже подгружен в процесс IE, увеличивать ему счетчик загрузок вызовом LoadLibrary не имеет смысла. Получаешь его базовый адрес с помощью GetModuleHandle, находишь там нужную функцию и перехватываешь ее. В частности сплайсингом - в начало функции записываешь безусловный переход на свою функцию. У сплайсинга есть ряд проблем (потокобезопасность там, если на месте сплайсинга был условный или безусловный переход и тд), его сложно сделать нормально, но обычно никто этим и не запаривается.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Твой код находится внутри IE (как он туда попал это другой вопрос). Wininet уже подгружен в процесс IE, увеличивать ему счетчик загрузок вызовом LoadLibrary не имеет смысла. Получаешь его базовый адрес с помощью GetModuleHandle, находишь там нужную функцию и перехватываешь ее. В частности сплайсингом - в начало функции записываешь безусловный переход на свою функцию. У сплайсинга есть ряд проблем (потокобезопасность там, если на месте сплайсинга был условный или безусловный переход и тд), его сложно сделать нормально, но обычно никто этим и не запаривается.
Теперь картина светлее.
Твой код находится внутри IE (как он туда попал это другой вопрос).
Насколько я понимаю - это инжект кода в процесс
В частности сплайсингом - в начало функции записываешь безусловный переход на свою функцию. У сплайсинга есть ряд проблем (потокобезопасность там, если на месте сплайсинга был условный или безусловный переход и тд), его сложно сделать нормально, но обычно никто этим и не запаривается.
Со сплайсингом более менее знаком. Но хз, нужно сорцы посмотреть поизучать.
На просторах дарка формграббер почти не продается и вообще редко видишь туториалы на эту тему.
P.s. лайк от меня (ограничения)
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Насколько я понимаю - это инжект кода в процесс
Да, так или иначе тебе нужно будет свои обработчики перехваченных функций размещать в другом процессе. Проще проинжектить DLL или шелл-код и уже с его помощью проводить перехваты нужных функций.
 
Последний раз когда интересовался оставлял себе такие ссылочки:

Вообще по этой теме очень мало инфы в интернетах.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Гляньте в TinyNuke код формграббера. IE нормально граббится, chromе, ff последних версий нет. Нужно обновлять.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Гляньте в TinyNuke код формграббера. IE нормально граббится, chromе, ff последних версий нет. Нужно обновлять.
++ сорец глаз режет, ну да ладно.
Ребята залейте на анонофайл или оставьте линк, если есть паблик сорцы формграбберов (не только я буду очень благодарен)
Так же советую глянуть аверский обзор бота тихая ночь, там чуток по другому реализовано.
Помню когда-то на экспе подымалась тема формграббера, и там сам автор говорил, что применял другую технику, которая отличается на рынке
 
Пожалуйста, обратите внимание, что пользователь заблокирован
там сам автор говорил, что применял другую технику, которая отличается на рынке
Я канеш не особо шарю во всяких блекушных штуках, но мне так то кроме перехвата функций ничего особо в голову не приходит. Что имеется ввиду конкретно?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я канеш не особо шарю во всяких блекушных штуках, но мне так то кроме перехвата функций ничего особо в голову не приходит. Что имеется ввиду конкретно?
да вродь тот же самый сплайсинг, прост подругому реализовано что ле. Но это была не его идея изначально, а идея какого-то другого чела. Лучше посмотри аверский обзор (пункт где инжекты)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
API calls commonly hooked for web injections are listed below:

HttpSendRequestA
HttpSendRequestW
HttpSendRequestExA
HttpSendRequestExW
HttpEndRequestA
HttpEndRequestW
HttpQueryInfoA
InternetReadFile
InternetReadFileExA
InternetWriteFile
InternetQueryOptionA
InternetQueryOptionW
PR_Write(FF)
PR_Read(FF)

For Nss3.DLL--
ffhook dll project (old gribodemon ffhook.dll file)

PR_Write
PR_SetSocketOption
PR_SetError
PR_Read
PR_Poll
PR_OpenTCPSocket
PR_GetSocketOption
PR_GetError
PR_Close


Firefox: PR_Read and PR_Write functions within nspr4.dll
Chrome: ssl_read and ssl_write functions within chrome.dll
Internet Explorer: functions within wininet.dll

But nowadays,these techniques are used:
Like Jeff's said, Zloader is good example for this.

1-Fake certificate for browsers(install a cert on victim browser with injecting certutil.exe and msiexec.exe )
And I.E and Chrome > crypt32.dll
Firefox > with injecting certutil tool
(include libssl.dll btw)
 
Последнее редактирование:
Основная проблема это то, что в хромиум браузерах ф-ии SSL_Write/SSL_Read являються не экспортируемыми...
Приходиться в .text искать по сигнатурке
Это прям очень очень очень хайлевельное овервью того как я это раньше делал, найти и хукнуть - это самое меньшее из зол.
Дальше только интереснее - т.к данные не плейн-текстом передаються приходиться хендлить spdy/hpack/http2.0/компрессию....

Если просто чтобы сделать и забыть - можешь украсть куски сорсов из уже готовых ботов.
Но, такой вариант ?

Если надо могу найти сигнатуры для последней версии хрома/оперы/эджа на хромиуме если надо ?‍♀️

З. Ы. Варик как сделано в ZLoader-e хороший - стильно, модно, молодёжно, свежо.
Но я х3 как оно в плане поддержки в долгосрочной перспективе (читай SDLC). Даже из описания понятно что задача не тривиальная с точки зрения поддержки этого всего гуано в будущем. По сравнению с классическим варантом поставил хук и там же начал реквест/респонс обрабатывать. Просто и тупо, никакой мозгоебли. Собственно таким вариантом я и решил задачу по веб-инжам.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Основная проблема это то, что в хромиум браузерах ф-ии SSL_Write/SSL_Read являються не экспортируемыми...
Приходиться в .text искать по сигнатурке
Это прям очень очень очень хайлевельное овервью того как я это раньше делал, найти и хукнуть - это самое меньшее из зол.
Дальше только интереснее - т.к данные не плейн-текстом передаються приходиться хендлить hpack/http2.0/компрессию....

Если просто чтобы сделать и забыть - можешь украсть куски сорсов из уже готовых ботов.
Но, такой вариант ?

Если надо могу найти сигнатуры для последней версии хрома/оперы/эджа на хромиуме если надо ?‍♀️

З. Ы. Варик как сделано в ZLoader-e хороший - стильно, модно, молодёжно, свежо.
Но я х3 как оно в плане поддержки в долгосрочной перспективе (читай SDLC). Даже из описания понятно что задача не тривиальная с точки зрения поддержки этого всего гуано в будущем. По сравнению с классическим варантом поставил хук и там же начал реквест/респонс обрабатывать. Просто и тупо, никакой мозгоебли. Собственно таким вариантом я и решил задачу по веб-инжам.
я хз. Из вариантов только как ты сказал веб инжект. Детектится, палится жестко. Ебля с сертификатами. Постоянная поддержка. Хз, было бы время, написал бы из интереса. А что думаете об эффективности формграббера? Да, согласен, cc + cvv. Но фрод даст о себе знать. Лучше резидент стиллер, который чекает новое поступление данных и отправляет на гейт.
 
Из вариантов только как ты сказал веб инжект.

веб-инжект - это уже сам инжект твоего скрипта в буфер респонса твоего реквеста.

Детектится, палится жестко.

Если ты протащишь на целевую систему свой лоадер, который в последствии подгрузит кор-компонент твоего бота (который скорее всего будет запущен от трастового процесса винды), который в свою очередь подгрузит модуль веб-инжей и заинжектиться в браузер. По большой части тебе стоит заботиться о рантайм детектах на первичном компоненте - лоадере.

Ебля с сертификатами.
О какой ебле речь. Генерить серт openssl умеет, дальше установить certutil-ом, офк если идешь по пути SilentNight.

Постоянная поддержка
Как что-то плохое...

Хз, было бы время, написал бы из интереса.
Это не та задача которую ты напишешь за месяц-другой. Особенно без понимания как это работает под капотом.

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



Если ты протащишь на целевую систему свой лоадер, который в последствии подгрузит кор-компонент твоего бота (который скорее всего будет запущен от трастового процесса винды), который в свою очередь подгрузит модуль веб-инжей и заинжектиться в браузер. По большой части тебе стоит заботиться о рантайм детектах на первичном компоненте - лоадере.


О какой ебле речь. Генерить серт openssl умеет, дальше установить certutil-ом, офк если идешь по пути SilentNight.


Как что-то плохое...


Это не та задача которую ты напишешь за месяц-другой. Особенно без понимания как это работает под капотом.


Нет. Это как сравнивать палец с задницей - веб-инжы дают тебе невероятную флексабильность в том что ты можешь и хочешь получить с бота.
Отчасти правда. Прост сейчас нету времени писать формграббер. + нужно разбиратся. А пока у меня не хватает знаний, сил и времени.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх