GithubHelp home page GithubHelp logo

keithxiaoa / stratumitm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jabbany/stratumitm

0.0 1.0 0.0 48 KB

A MITM "forwarding proxy" for the Stratum mining protocol. For debugging use ONLY.

License: The Unlicense

JavaScript 100.00%

stratumitm's Introduction

StratuMITM

A forwarding proxy designed to MITM the Stratum Mining Protocol. This project is designed to help debug Stratum implementations and view the messages being sent.

How does it work?

StratuMITM is a run as a local Stratum bypass proxy. The idea is that instead of contacting a remote Stratum server, you can have (or force) your miner instance's to contact the local Stratum proxy instead. StratuMITM then allows you to modify (rewrite) and redirect traffic.

Why would I want it?

StratuMITM lets you redirect local Stratum messages to a remote server and allows you to "unpack" messages and "repack" them with different information such as mining credentials. This can coerce a program relying on instructions passed to it through Stratum to do other things (i.e. encourage a miner to mine for a different pool and/or a different account than it is configured to).

If you don't have access to the local server's miner configuration (i.e. which Stratum pool it connects to and configured user credentials) but you do have access to the local OS configuration or manage the local network, you may want to use StratuMITM to edit the mining settings "over the air". It's useful if you get "taxed" by your mining software - instead of submitting the mining tax / devfee, you get to use it at your own discretion.

While StratuMITM could be used nefariously (i.e. coercing a server behind a NAT you operate to produce results for you - aka stealing shares) we certainly don't recommend using it for that purpose. Never MITM connections from hosts you do not own.

For details on some specific use case samples, read the items in docs/cases/.

What about TLS?

Some details are in the docs, but the tl;dr is: If the client/miner does not do certificate pinning (it's not caught on much yet), then you can just as easily MITM the TLS connection. If it does, then this project will not help you.

Licensing

StratuMITM code is released to the public domain meaning there are no restrictions on its use. In cases where that is not possible, this code is licensed under the Unlicense. See License for details.

Note: Certain configurations of StratuMITM could be used for nefarious purposes. The authors offer no warranty and are not liable for any damages (see license for details).

Donate

You can donate to the project at the following addresses:

  • ZEC: t1eba1MCGKcViRTztUGqVUiuN2utQ71Sy1V
  • ETH: 0x663c603f20b883ccf86e56390fd0966f71c9fdc2
  • BTC: 1A2t2vAM9VZ4VbTp2i75e6j2DwoSaruyCh

Or by mining for these addresses on any of the popular pools.

Donations are completely voluntary and will support future development and resolving issues. This software does not contain any DevFees and is written in JavaScript so you can audit that it actually does not.

stratumitm's People

Contributors

jabbany avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.