
Red Team Coin for crypto-mining operations.
RedTeamCoin is a blockchain-based cryptocurrency mining pool implementation designed for authorized security testing and red team operations. Built in Go with Java client support, it simulates real-world cryptomining attacks to help organizations assess their detection capabilities and quantify potential damage from threat actor mining operations.
This tool enables security teams to safely and legally demonstrate cryptomining attack scenarios on corporate systems, generate comprehensive impact reports, and validate security controls—all within a controlled environment using an isolated, non-public blockchain.
Why use RedTeamCoin?
System Components:
Get RedTeamCoin running in under 5 minutes:
Ubuntu/Debian:
sudo apt update
sudo apt install -y golang-go protobuf-compiler
macOS:
brew install go protobuf
Windows:
# Clone the repository
git clone https://github.com/xyplex3/RedTeamCoin.git
cd RedTeamCoin
# Install dependencies
make install-tools
make deps
# Build server and client
make build
Verify the build completed successfully:
ls -lh bin/
# Expected output: server and client binaries (1-5 MB each)
./bin/server --help
# Expected output: Usage information for the server
1. Start the server:
make run-server
You should see output like:
RedTeamCoin Mining Pool Server
Authentication Token: abc123def456...
Dashboard URL: http://localhost:8080?token=abc123def456...
gRPC server listening on port 50051
2. Start a miner (in a new terminal):
make run-client
You should see mining activity:
Connected to mining pool at localhost:50051
Registered as miner: miner-hostname-1234567890
Mining block #1... Hash rate: 2.5 MH/s
Block found! Nonce: 98765, Hash: 000000ab1cd...
3. View the dashboard:
Open the URL from step 1 in your browser, or navigate to:
http://localhost:8080?token=YOUR_AUTH_TOKEN_HERE
You'll see real-time statistics including active miners, hash rates, and mined blocks.
Note: The server listens on all network interfaces - replace localhost
with your server's IP for remote access.
The mining pool operates using a proof-of-work consensus mechanism:
Each block requires finding a hash with a specific number of leading zeros (configurable difficulty). Miners receive 50 RTC per block mined.
Client Miner Server
| |
|--RegisterMiner(IP,Hostname)->|
|<--RegistrationResponse-------|
|--GetWork()------------------>|
|<--WorkResponse(Block)--------|
| [Mining: compute hashes] |
|--SubmitWork(nonce,hash)----->|
| | [Validate proof-of-work
| | and add block to chain]
|<--SubmissionResponse---------|
|--Heartbeat(stats)----------->|
|<--HeartbeatResponse----------|
HTTP (Default):
./bin/server
HTTPS/TLS (Recommended):
# Generate certificates (one time)
./generate_certs.sh
# Start with TLS
RTC_SERVER_TLS_ENABLED=true ./bin/server