Apache License 2.0

项目介绍

craciuncezar/browser-cryptominer 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 Apache License 2.0 许可证,目前获得 89 个 Star、37 次 Fork。

仓库全名
craciuncezar/browser-cryptominer
开源许可证
Apache License 2.0
Star 数
89
Fork 数
37
未关闭 Issue
13

README 摘要

Browser cryptominer Browser monero crypto miner client implementation using wasm and web workers DISCLAIMER: The demo app below will perform hash computations in order to mine cryptocurrency on my behalf, but the script is throttled so that it does not affect your device. There is no virus, and the script is ephemeral; once you leave the page, it stops working. This repository should only be used for educational…

完整内容见 GitHub 原始 README 或本页 。

常见问题

browser-cryptominer 用什么语言开发?

主要使用 JavaScript 编写,采用 Apache License 2.0 许可证,目前有 89 个 Star。

browser-cryptominer 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 browser-cryptominer 的源码?

可以直接克隆仓库:git clone https://github.com/craciuncezar/browser-cryptominer.git,默认分支为 master;安装与运行步骤见仓库 README。

browser-cryptominer 最近还在维护吗?

仓库最近一次更新为 2023年4月30日,当前有 13 个未关闭 Issue;Star 数为 89,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

🪙 Web crypto miner client implemented using wasm and web workers. Use the CPU of the website visitors to mine monero.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
168
价值分
64
活跃状态
活跃

语言占比

CSS
HTML
JavaScript
TypeScript

贡献者

README

Browser cryptominer

Browser monero crypto miner client implementation using wasm and web workers

DISCLAIMER: The demo app below will perform hash computations in order to mine cryptocurrency on my behalf, but the script is throttled so that it does not affect your device. There is no virus, and the script is ephemeral; once you leave the page, it stops working. This repository should only be used for educational purposes.

Live demo here

coin

About

This project was one of several demonstrations I gave for my cybersecurity dissertation paper, “Browser-based fileless malware: cryptojacking and botnets.” What you’re looking at is a web-based crypto miner implementation.

The web client is using a wasm compiled version of cryptonight, the hashing algorithm used by monero. The reason for using this algorithm is that it is designed to rely on CPU power rather than GPU power, making it more efficient on the web. The hashing algorithm was compiled to wasm from C using emscripten and can be found in the /public directory; cn.js is a js wrapper around the binary file cn.wasm which contains the hashing function.

In order to not block the main/ui thread this app is using web workers, in theory this app should span a number of web workers equal to the number of logical processors available to run threads on the user’s computer. Each web worker then is comunicating with the main thread that keeps a web socket connection to a monero mining pool (moneroocean). The connection to the mining pool is beeing proxied through a light node server, the reason behind this is to avoid detection from ad blockers or antiviruses which can block server requests to the wss://webminer.moneroocean.stream/ address.

The script files are obfuscated on the build process, this can be done on a cron job as well, this can assure that antiviruses can’t banlist the file hash. There are also many ways of distributing this sort of malicious scripts one way beeing through an Iframe ad.

DISCLAIMER 2: This is a proof of concept, please don’t use this for malicious purposes. There are obviously point of failures for this web app, such as the address to the proxy server that can be banned, there is also more performant ways of mining crypto on the web if thats what you are going for.

Learn more

I shared more on this topic at this page with a simple demonstration on how you can hide the malicious script behind an iframe.

Other cool resource on the same topic:

评论

暂无评论