Как сделать стиллер

Обновлено: 07.07.2024

Стиллер (Stealer) — вредоносная программа, созданная для кражи паролей и
куков из браузеров жертвы.

Установка и эксплуатация
Обновляем пакеты и устанавливаем git с помощью команд:
apt-get update && apt-get upgrade

apt-get install git

Переходим в репозиторий Ngrok, делаем скрипт исполняемым и запускаем его:
cd termux-ngrok

chmod +x termux-ngrok.sh

Дожидаемся окончания процесса установки.

После установки вводим команду:
ngrok tcp 4444

Теперь открываем второй терминал/сессию и устанавливаем python2:
pkg install git python2

Скачиваем любую картинку из интернета и копируем в репозиторий инструмента.
Открываем репозиторий инструмента командой:
cd WordSteal

И создаем вредоносную картинку:
python2 main.py 127.0.0.1

Созданный вредоносный файл отправляем нашей жертве и ждем открытие. После
открытия вредонос украдет все пароли и отправит вам.

Стилер для Chrome и Firefox на C++

Вы наверное знаете о том, что такое стилеры паролей. Их задача — вытащить из операционной системы важные данные, такие как пароли. В сегодняшней статье я расскажу, как хакеры создают стиллер паролей для браузеров Chrome и Firefox.

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

Итак, браузеры, в основе которых лежит Google Chrome или Mozilla Firefox, хранят логины и пароли пользователей в зашифрованном виде в базе SQLite. Эта СУБД компактна и распространяется бесплатно по свободной лицензии. Так же, как и рассматриваемые нами браузеры: весь их код открыт и хорошо документирован, что, несомненно, поможет нам в создании стиллера.

В примере модуля стилинга, который я приведу в статье, будет активно использоваться CRT и другие сторонние библиотеки и зависимости, типа sqlite.h. Если вам нужен компактный код без зависимостей, придется его немного переработать, избавившись от некоторых функций и настроив компилятор должным образом.

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

Стиллер для Chrome

Начнем с браузера Google Chrome. Для начала давайте получим файл, где хранятся учетные записи и пароли пользователей. В Windows он лежит по такому адресу:

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

Давайте напишем функцию, которая получает путь к базе паролей Chrome. В качестве аргумента ей будет передаваться массив символов с результатом ее работы (то есть массив будет содержать путь к файлу паролей Chrome).

Пишем стилер паролей для Chrome и Firefox на C++. Для самых маленьких

Совсем недавно мы уже рассматривали простейшие примеры написания кейлогера и RAT на C++. Но это только начало. И сегодня мы рассмотрим написание стиллера на этом замечательном языке програмирования.

Браузеры, в основе которых лежит Google Chrome или Mozilla Firefox, хранят логины и пароли пользователей в зашифрованном виде в базе SQLite. Эта СУБД компактна и распространяется бесплатно по свободной лицензии. Так же, как и рассматриваемые нами браузеры: весь их код открыт и хорошо документирован, что, несомненно, поможет нам в создании стиллера.

В примере модуля стилинга, который я приведу в статье, будет активно использоваться CRT и другие сторонние библиотеки и зависимости, типа sqlite.h. Если вам нужен компактный код без зависимостей, придется его немного переработать, избавившись от некоторых функций и настроив компилятор должным образом.

Что скажет антивирус?

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

Стиллер для Chrome

Сразу хочу заметить, что описанный метод подходит лишь для предидущих версий Chrome. В актульных версиях используется шифрование aes256 для данных (пароли, значения куки, кредитки и т.д.). Поэтому можете воспринимать этот материал больше для общепознавательных целей.

Начнем с браузера Google Chrome. Для начала давайте получим файл, где хранятся учетные записи и пароли пользователей. В Windows он лежит по такому адресу:

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

Давайте напишем функцию, которая получает путь к базе паролей Chrome. В качестве аргумента ей будет передаваться массив символов с результатом ее работы (то есть массив будет содержать путь к файлу паролей Chrome):

Давай, вкратце поясню, что здесь происходит. Мы сразу пишем эту функцию, подразумевая будущее расширение. Один из ее аргументов — поле browser_family, оно будет сигнализировать о семействе браузеров, базу данных которых мы получаем (то есть браузеры на основе Chrome или Firefox).

Если условие browser_family = 0 выполняется, то получаем базу паролей браузера на основе Chrome, если browser_family = 1 — Firefox. Идентификатор CHROME_DB_PATH указывает на базу паролей Chrome. После этого мы получаем путь к базе при помощи функции SHGetFolderPath, передавая ей в качестве аргумента CSIDL значение CSIDL_LOCAL_APPDATA, которое означает:

Функция SHGetFolderPath уже устарела, и в Microsoft рекомендуют использовать вместо нее SHGetKnownFolderPath. Проблема кроется в том, что поддержка этой функции начинается с Windows Vista, поэтому я применил ее более старый аналог для сохранения обратной совместимости. Вот ее прототип:

После этого функция lstrcat совмещает результат работы SHGetFolderPath с идентификатором CHROME_DB_PATH.

База паролей получена, теперь приступаем к работе с ней. Как я уже говорил, это база данных SQLite, работать с ней удобно через SQLite API, которые подключаются с заголовочным файлом sqlite3.h. Давайте скопируем файл базы данных, чтобы не занимать его и не мешать работе браузера:

Теперь подключаемся к базе командой sqlite3_open_v2. Её прототип:

Первый аргумент — наша база данных; информация о подключении возвращается во второй аргумент, дальше идут флаги открытия, а четвертый аргумент определяет интерфейс операционной системы, который должен использовать это подключение к базе данных, в нашем случае он не нужен. Если эта функция отработает корректно, возвращается значение SQLITE_OK, в противном случае возвращается код ошибки:

Обратите внимание: при некорректной отработке функции нам все равно необходимо самостоятельно закрыть подключение к базе и удалить ее копию.

Теперь начинаем непосредственно обрабатывать данные в базе. Для этого воспользуемся функцией sqlite3_exec():

Эта функция имеет такой прототип:

Первый аргумент — наша база паролей, второй — это команда SQL, которая вытаскивает URL файла, логин, пароль и имя пользователя, третий аргумент — это функция обратного вызова, которая и будет расшифровывать пароли, четвертый — передается в нашу функцию обратного вызова, ну а пятый аргумент сообщает об ошибке.

Давайте остановимся подробнее на callback-функции, которая расшифровывает пароли. Она будет использоваться к каждой строке из выборки нашего запроса SELECT. Ее прототип — int (*callback)(void*,int,char**,char**), но все аргументы нам не понадобятся, хотя объявлены они должны быть. Саму функцию назовем crack_chrome_db, начинаем писать и объявлять нужные переменные:

В этом цикле формируем BLOB (то есть большой массив двоичных данных). Далее выделяем память, читаем блоб и инициализируем поля DATA_BLOB:

После этого выделяем память и заполняем массив passwds расшифрованными данными:

Стиллер для Firefox

Переходим к Firefox. Тут всё будет немного посложнее. Для начала давайте получим путь до базы данных паролей Firefox. Помните, в нашей универсальной функции get_browser_path мы передавали параметр browser_family? В случае Chrome он был равен нулю, а для Firefox установим 1:

В самом конце переменная db_loc, которую мы передавали в качестве аргумента в нашу функцию, содержит полный путь до файла logins.json, а функция возвращает 1, сигнализируя о том, что она отработала корректно.

Теперь получим хендл файла паролей и выделим память под данные. Для получения хендла используем функцию CreateFile, как советует MSDN:

Все готово, но в случае с Firefox все не будет так просто, как с Chrome, — мы не сможем просто получить нужные данные обычным запросом SELECT, да и шифрование не ограничивается одной-единственной функцией WinAPI.

Network Security Services (NSS)

Браузер Firefox активно использует функции Network Security Services для реализации шифрования своей базы паролей. Эти функции находятся в динамической библиотеке, которая лежит по адресу:

Все интересующие функции придется получать из этой DLL. Сделать это можно стандартным образом, при помощи LoadLibrary\GetProcAdress. Код однообразный и большой, поэтому я просто приведу список функций, которые нам понадобятся:

  • NSS_Init;
  • PL_Base64Decode;
  • PK11SDR_Decrypt;
  • PK11_Authenticate;
  • PK11_GetInternalKeySlot;
  • PK11_FreeSlot.

Это функции инициализации механизма NSS и расшифровки данных. Давайте напишем функцию расшифровки, она небольшая. Я добавлю комментарии, чтобы все было понятно:

Теперь осталось парсить файл logins.json и применять нашу функцию расшифровки. Для краткости кода я буду использовать регулярные выражения и их возможности в C++ 11:

Защита от стиллера паролей

Мы разобрались, как хранятся пароли в разных браузерах, и узнали, что нужно делать, чтобы их извлечь. Можно ли защититься от подобных методов восстановления сохраненных паролей? Да, конечно. Если установить в браузере мастер-пароль, то он выступит в качестве криптографической соли для расшифровки базы данных паролей. Без её знания восстановить данные будет невозможно.

Ну как? Немного разобрался? Оставайся с нами и ты узнаешь больше!

Админ сайта. Публикует интересные статьи с других ресурсов, либо их переводы. Если есть настроение, бывает, что пишет и что-то своё.

Vadim.dll

Известный

Портировал исходник стиллера с 0.3.7 на R2/R3 ( Работает на 0.3.7R1, 0.3.7R2, 0.3.7R3). Делал чисто для опыта и потому что очень давно хотел. Убрал много чего лишнего.

Отправляет данные по протоколу UDP
Простой сервер-приёмник на python


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

Вложения

DarkP1xel

Деньги - это наш враг.

Vadim.dll

Известный

Зато на один обход будет меньше, тем более что метод обхода очень простой, наверняка уже кто-то юзает

index

Активный

Зато на один обход будет меньше, тем более что метод обхода очень простой, наверняка уже кто-то юзает

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

Можно ли сгенерировать ссылку или сделать свой сайт при переходе на который ты получал сохранённые пароли браузеров и куки файлы либо же стилер паролей на Андроиде просто при переходе на ссылку и больше нечего

Pernat1y

Можно ли сгенерировать ссылку или сделать свой сайт при переходе на который ты получал сохранённые пароли браузеров и куки файлы либо же стилер паролей на Андроиде просто при переходе на ссылку и больше нечего

Вкратце: Нельзя
А так можно использовать эксплоиты для браузера или его плагинов, пробить таким образом жертву, но это работает далеко не всегда и стоит денег.

ЗЫ. Ты же понимаешь, что если бы такое было возможно, то *твои* пароли давно уже уплыли бы в сеть?

Вкратце: Нельзя
А так можно использовать эксплоит для браузера или его плагинов, пробить таким образом жертву, но это работает далеко не всегда и стоит денег.

А разве нельзя создать скрипт что бы пользователь сам отдал все данные ?
Ну оформить сайт так что бы пользователь нажал сам кнопку. А скрипт уже сам всё и сделает?

Pernat1y

А разве нельзя создать скрипт что бы пользователь сам отдал все данные ?
Ну оформить сайт так что бы пользователь нажал сам кнопку. А скрипт уже сам всё и сделает?

Или просто сделать сайт,заставить пользователя зарегатся на сайте и будет шанс что он введёт данные которые использует везде. А на стороне сервера не шифровать пароли

bogdan333

Member

Pernat1y

Можно. Но тебе отправятся только данные из заполненных на сайте форм. Ничего другого (кроме инфы о браузере) ты не достанешь.

bogdan333

Member

Можно. Но тебе отправятся только данные из заполненных на сайте форм. Ничего другого (кроме инфы о браузере) ты не достанешь.


А если приложение одно вирус стилер паролей чтобы все приложения на телефоне крал так его можно будет как то закриптовать чтобы не палился системой и вообще можно такой вирус сделать?

Pernat1y

А если приложение одно вирус стилер паролей чтобы все приложения на телефоне крал так его можно будет как то закриптовать чтобы не палился системой и вообще можно такой вирус сделать?

bogdan333

Member

Shoko

New member

Можно, и скажу более, такие решения давно есть. (SpyNot, Zeus, и т.д.) Проблема их в том, что все это давно уже палится и не актуально.
Есть конечно приватные продукты на черном рынке, но ценник их измеряется в тысячи долларов ( за аренду на месяц)
Но даже если ты готов выложить такие деньги, и даже если у тебя уже в голове созрел план монетизации такого рода занятий, не стоит забывать о том, что тебе еще понадобится трафик. Покупать у продавцов - такой себе вариант. До тебя там уже прошлись не однократно.
Самому распространять ? - да это вариант. Только на сегодняшний день никто твое APK из стороннего сайта качать не будет, а разместиться в плеймаркете дело не простое.
Подведем итог :
Технически это возможно .
Чтоб реализовать самому понадобится очень высокий скилл в программировании, а в частности в вирусологии.
Заказать у исполнителя ? - Такого еще надо найти. После того как нашел, нет никаких гарантий что ты не станешь его распространителем. Ты будешь (каким-то образом) распространять, а он снимать деньги.
Не говорю уже про скам (мошенничество), где с тебя возьмут деньги за исполнение, и пропадут навсегда.
Ладно после череды ошибок, ты все же нашел такого исполнителя. Стоить это будет, как минимум (по моим данным ), 15-20к$

Теперь на счет распространения через ссылку.
Это называется эксплоитом. Ты можешь купить связку эксплоитов на черном рынке, но работать они будут только с браузером IE (internet explorer).
А им очень мало кто пользуется. Самый популярный браузер это хром, а за его уязвимости сам Google платит от 1 000 000$ - следовательно если такой и существует, то на черном рынке он будет стоить дороже вдвойне.

Данный пост не является руководством или технической литературой для занятия данным родом.
Эта информация поможет вам понять, что вас собираются кинуть на деньги, когда где-нибудь вам предложат такой арсенал за 100-1000$ (зависит от наглости мошенников) . Ведь после того как кинут вас - вы пойдете кидать других, чтоб хотя бы отбить потерянное.

Развивайся сам и зарабатывай правильными знаниями.

Kondit

bogdan333

Member

Это скрипт надо написать? Если да, то где инфу найти как все это сделать

Можно, и скажу более, такие решения давно есть. (SpyNot, Zeus, и т.д.) Проблема их в том, что все это давно уже палится и не актуально.
Есть конечно приватные продукты на черном рынке, но ценник их измеряется в тысячи долларов ( за аренду на месяц)
Но даже если ты готов выложить такие деньги, и даже если у тебя уже в голове созрел план монетизации такого рода занятий, не стоит забывать о том, что тебе еще понадобится трафик. Покупать у продавцов - такой себе вариант. До тебя там уже прошлись не однократно.
Самому распространять ? - да это вариант. Только на сегодняшний день никто твое APK из стороннего сайта качать не будет, а разместиться в плеймаркете дело не простое.
Подведем итог :
Технически это возможно .
Чтоб реализовать самому понадобится очень высокий скилл в программировании, а в частности в вирусологии.
Заказать у исполнителя ? - Такого еще надо найти. После того как нашел, нет никаких гарантий что ты не станешь его распространителем. Ты будешь (каким-то образом) распространять, а он снимать деньги.
Не говорю уже про скам (мошенничество), где с тебя возьмут деньги за исполнение, и пропадут навсегда.
Ладно после череды ошибок, ты все же нашел такого исполнителя. Стоить это будет, как минимум (по моим данным ), 15-20к$

Теперь на счет распространения через ссылку.
Это называется эксплоитом. Ты можешь купить связку эксплоитов на черном рынке, но работать они будут только с браузером IE (internet explorer).
А им очень мало кто пользуется. Самый популярный браузер это хром, а за его уязвимости сам Google платит от 1 000 000$ - следовательно если такой и существует, то на черном рынке он будет стоить дороже вдвойне.

Данный пост не является руководством или технической литературой для занятия данным родом.
Эта информация поможет вам понять, что вас собираются кинуть на деньги, когда где-нибудь вам предложат такой арсенал за 100-1000$ (зависит от наглости мошенников) . Ведь после того как кинут вас - вы пойдете кидать других, чтоб хотя бы отбить потерянное.

Читайте также: