Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jabbany/stratumitm
A MITM "forwarding proxy" for the Stratum mining protocol. For debugging use ONLY.
https://github.com/jabbany/stratumitm
forwarding-proxy mining stratum
Last synced: about 2 months ago
JSON representation
A MITM "forwarding proxy" for the Stratum mining protocol. For debugging use ONLY.
- Host: GitHub
- URL: https://github.com/jabbany/stratumitm
- Owner: jabbany
- License: unlicense
- Created: 2018-02-08T05:43:24.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-17T22:24:06.000Z (almost 7 years ago)
- Last Synced: 2024-10-31T23:23:22.443Z (2 months ago)
- Topics: forwarding-proxy, mining, stratum
- Language: JavaScript
- Homepage:
- Size: 46.9 KB
- Stars: 32
- Watchers: 8
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 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/](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](LICENSE.md) 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: 1A2t2vAM9VZ4VbTp2i75e6j2DwoSaruyChOr 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.