Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/xyplex3/redteamcoin
ExploitationCryptographyPenetration TestingCommand and ControlRed TeamingPayload Development
GitHubxyplex3/redteamcoin

RedTeamCoin

암호화폐 채굴 작업을 위한 Red Team Coin.

저장소 보기
2525개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

RedTeamCoin

RedTeamCoin Logo

License Pre-Commit Security Scanning Release Test & Build Verification Windows Miner Test


RedTeamCoin은 블록체인 기반 암호화폐 채굴 풀 구현체로, 승인된 보안 테스트 및 레드 팀 운영을 위해 설계되었습니다. Go로 구축되었으며 Java 클라이언트를 지원하여 실제 환경의 크립토마이닝 공격을 시뮬레이션함으로써 조직이 탐지 역량을 평가하고 위협 행위자의 채굴 작업으로 인한 잠재적 피해를 정량화할 수 있도록 돕습니다.

이 도구를 통해 보안 팀은 기업 시스템에서 크립토마이닝 공격 시나리오를 안전하고 합법적으로 시연하고, 포괄적인 영향 보고서를 생성하며, 보안 통제를 검증할 수 있습니다. 모든 작업은 격리된 비공개 블록체인을 사용하는 통제된 환경에서 이루어집니다.

목차

  • 개요
  • 기능
  • 빠른 시작
  • 작동 방식
  • 사용법
    • 서버 실행
    • 마이너 실행
    • 원격 서버 연결
  • GPU 마이닝
  • 설정
  • API 참조
  • 아키텍처
  • 개발
  • 기여
  • 문제 해결
  • 문서
  • 라이선스
  • 감사의 말

개요

RedTeamCoin을 사용하는 이유는?

  • 크립토재킹 공격의 실제 영향을 시연
  • 보안 모니터링 및 탐지 시스템 테스트 및 검증
  • 경영진 보고를 위한 정량화된 피해 평가 생성
  • 공개 블록체인에 연결하지 않고 채굴 작업 안전하게 시뮬레이션

시스템 구성 요소:

  • 마이닝 풀 서버 - 블록체인 관리 및 작업 분배 조정
  • 클라이언트 마이너 - CPU/GPU 채굴 클라이언트 (Go 및 Java 구현)
  • 웹 대시보드 - 실시간 모니터링, 제어 및 통계
  • 분석 도구 - 포괄적인 피해 평가 보고서 생성

기능

  • 블록체인 구현: 난이도 조절이 가능한 자체 작업 증명 블록체인
  • 마이닝 풀 서버: gRPC를 통해 여러 마이너와 작업 분배 관리
  • 클라이언트 마이너: IP 주소 및 호스트명 로깅을 포함한 자동화된 채굴 클라이언트 (Go 및 Java)
  • Java 독립형 마이너: 그래픽 인터페이스가 포함된 데스크톱 마이너
  • Java gRPC 클라이언트: 서버 및 자동화를 위한 헤드리스 gRPC 클라이언트
  • 서버 측 마이너 제어: 원격으로 마이너 일시 중지, 재개, CPU 사용량 제한 및 삭제
  • CPU 사용량 제한: 마이너 CPU 사용량을 0-100%로 제한하여 리소스 관리
  • GPU 마이닝 지원: GPU 가속 채굴을 위한 CUDA 및 OpenCL 지원
  • 하이브리드 마이닝: 최대 성능을 위한 동시 CPU 및 GPU 마이닝
  • 웹 대시보드: 마이너, 통계, 블록체인 실시간 모니터링 및 제어 버튼
  • REST API 인증: API 엔드포인트를 위한 안전한 토큰 기반 인증
  • 클라이언트 gRPC TLS 암호화: 안전한 클라이언트-서버 gRPC 연결을 위한 선택적 TLS 암호화
  • 이중 IP 추적: 클라이언트가 보고한 IP와 서버가 감지한 IP 모두 기록
  • CPU 및 GPU 통계: 포괄적인 리소스 사용량 추적 및 보고
  • 프로토콜 버퍼: protobuf/gRPC를 사용한 효율적인 클라이언트-서버 통신
  • 자동 종료: 서버에서 제거되면 마이너가 자동으로 종료 및 자체 삭제

빠른 시작

5분 이내에 RedTeamCoin을 실행해 보세요:

사전 요구사항

  • Go 1.21 이상
  • 프로토콜 버퍼 컴파일러 (protoc)

Ubuntu/Debian:```bash sudo apt update sudo apt install -y golang-go protobuf-compiler

root@kitploit:~
**macOS:**```bash
brew install go protobuf

Windows:

  • Go를 https://golang.org/dl/에서 설치합니다.
  • protoc를 https://github.com/protocolbuffers/protobuf/releases에서 설치합니다.

설치```bash

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

root@kitploit:~
### Verification

빌드가 성공적으로 완료되었는지 확인하십시오:```bash
ls -lh bin/
# Expected output: server and client binaries (1-5 MB each)

./bin/server --help
# Expected output: Usage information for the server

첫 번째 마이닝 풀 실행하기

1. 서버 시작:```bash make run-server

root@kitploit:~
다음과 같은 출력이 표시되어야 합니다:```text
RedTeamCoin Mining Pool Server
Authentication Token: abc123def456...
Dashboard URL: http://localhost:8080?token=abc123def456...
gRPC server listening on port 50051

2. 채굴기 시작 (새 터미널에서):```bash make run-client

root@kitploit:~
채굴 활동이 보여야 합니다:```text
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. 대시보드 보기:

1단계의 URL을 브라우저에서 열거나 다음으로 이동하세요:```text http://localhost:8080?token=YOUR_AUTH_TOKEN_HERE

root@kitploit:~
활성 채굴기, 해시 레이트, 채굴된 블록을 포함한 실시간 통계를 볼 수 있습니다.

**참고:** 서버는 모든 네트워크 인터페이스에서 수신 대기합니다 - `localhost`를
원격 접속을 위해 서버의 IP로 바꾸십시오.

## 작동 방식

채굴 풀은 작업 증명 합의 메커니즘을 사용하여 작동합니다:

1. 서버가 제네시스 블록으로 블록체인 초기화
2. 채굴기들이 gRPC를 통해 연결하고 IP/호스트네임으로 등록
3. 서버가 작업 할당(블록 템플릿) 분배
4. 채굴기들이 SHA-256 해시를 계산하여 유효한 논스(nonce) 찾기
5. 난이도 목표가 충족되면 채굴기들이 솔루션 제출
6. 서버가 블록을 검증하고 블록체인에 추가
7. 대시보드가 실시간 통계 및 채굴기 활동 표시

각 블록은 특정 개수의 선행 0을 가진 해시를 찾아야 합니다
(설정 가능한 난이도). 채굴기들은 블록당 50 RTC를 받습니다.

### 데이터 흐름```text
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 (기본값):```bash ./bin/server

root@kitploit:~
- gRPC 서버: 포트 **50051**
- 웹 대시보드: **http://localhost:8080**

**HTTPS/TLS (권장):**```bash
# Generate certificates (one time)
./generate_certs.sh

# Start with TLS
RTC_SERVER_TLS_ENABLED=true ./bin/server
  • gRPC 서버: 포트 50051
  • 웹 대시보드: https://localhost:8443
  • HTTP 리디렉션: http://localhost:8080

참고 #1: HTTPS의 경우, 브라우저는 자체 서명 인증서에 대한 보안 경고를 표시합니다. "고급" → "localhost로 이동"을 클릭하세요.

참고 #2: 웹 대시보드와 gRPC 서버는 서버의 모든 인터페이스에서 실행되며 localhost 대신 사용할 수 있습니다.

마이너 실행

Go 클라이언트 (네이티브 바이너리)

기본 사용법:```bash ./bin/client

root@kitploit:~
**다중 마이너 실행:**
추가 터미널을 열고 각각에서 `./bin/client`를 실행하세요.

#### Java 마이너

RedTeamCoin은 두 가지 Java 마이너 구현체를 제공합니다:

##### Java gRPC 클라이언트 (Headless)

서버 및 자동화를 위한 프로덕션 준비 완료 gRPC 클라이언트입니다.

**전제 조건:**

- Java 11 이상
- Maven (빌드 전용)

**Makefile을 사용하여 빌드:**```bash
make build-java-client

또는 수동으로 빌드하세요:```bash cd java-client mvn clean package

root@kitploit:~
**실행:**```bash
# Connect to localhost
java -jar bin/redteamcoin-miner-client.jar

# Connect to remote server
java -jar bin/redteamcoin-miner-client.jar -server 192.168.1.100:50051

Features:

  • gRPC 프로토콜 (Go 클라이언트와 일치)
  • 헤드리스 작동 (GUI 없음)
  • 서버 제어 (일시중지/재개/조절)
  • 자동 재연결
  • 서버 명령에 의한 자체 삭제
Java 독립 실행형 채굴기 (GUI)

그래픽 인터페이스를 갖춘 데스크톱 채굴기.

사전 요구 사항:

  • Java 21 이상
  • Maven (빌드 전용)

Makefile을 사용한 빌드:```bash make build-java-standalone

root@kitploit:~
**또는 수동으로 빌드:**```bash
cd java-standalone
mvn clean package

실행:```bash

GUI mode (default)

java -jar bin/redteamcoin-miner-standalone.jar

CLI mode

java -jar bin/redteamcoin-miner-standalone.jar --pool localhost:50051

root@kitploit:~
**기능:**

- 데스크톱 GUI 인터페이스
- 시각적 통계 표시
- 간단한 JSON/소켓 프로토콜
- 애플리케이션에 내장

##### 모든 Java Miners 빌드```bash
make build-java-all

Java Miners의 장점:

  • 단일 JAR 파일로 배포가 쉽습니다
  • 크로스 플랫폼 (Windows, Linux, macOS)
  • 대상 시스템에서 컴파일이 필요 없음
  • Java Runtime (JRE)만 있으면 됩니다

전체 Java gRPC 클라이언트 문서는 java-client/README.md를 참조하세요.

원격 서버에 연결하기

기본적으로 클라이언트는 localhost:50051에 연결됩니다. 원격 서버에 연결하려면:

명령줄 플래그 사용 (권장):```bash ./bin/client -server 192.168.1.100:50051 ./bin/client -s mining-pool.example.com:50051

root@kitploit:~
**환경 변수 사용:**```bash
export RTC_CLIENT_SERVER_ADDRESS=192.168.1.100:50051
./bin/client

Priority: 명령줄 플래그 > 환경 변수 > 기본값 (localhost:50051)

GPU 채굴

RedTeamCoin은 NVIDIA (CUDA) 및 AMD/Intel (OpenCL) GPU를 위한 GPU 가속 채굴을 지원합니다. GPU 채굴은 CPU 채굴보다 100-400배 빠르며 에너지 효율이 훨씬 높습니다.

GPU 설치

NVIDIA CUDA:```bash sudo apt install cuda-toolkit make build-cuda

root@kitploit:~
**AMD/Intel OpenCL:**```bash
sudo apt install ocl-icd-opencl-dev
make build-opencl

자동 감지:```bash make build-gpu # Automatically detects and builds for available GPU

root@kitploit:~
### GPU 사용```bash
# Auto-detect GPU (default)
./bin/client

# Force CPU only
RTC_CLIENT_MINING_GPU_ENABLED=false ./bin/client

# Hybrid mode (CPU + GPU)
RTC_CLIENT_MINING_HYBRID_MODE=true ./bin/client

# GPU with remote server
./bin/client -server mining-pool.example.com:50051

성능 비교

참고: GPU 채굴은 CPU 채굴보다 에너지 효율이 100-150배 더 높습니다.```bash

Test GPU detection

./bin/client 2>&1 | grep -i "gpu|cuda|opencl"

Force CPU mining (verify fallback works)

RTC_CLIENT_MINING_GPU_ENABLED=false ./bin/client

Force GPU mining (if available)

RTC_CLIENT_MINING_GPU_ENABLED=true ./bin/client

Test hybrid CPU+GPU mode

RTC_CLIENT_MINING_HYBRID_MODE=true ./bin/client

root@kitploit:~
See [docs/GPU_MINING.md](https://github.com/xyplex3/redteamcoin/blob/HEAD/docs/GPU_MINING.md) for complete GPU mining guide.

## 구성

RedTeamCoin은 유연한 구성 관리를 위해 [Viper](https://github.com/spf13/viper)를 사용합니다. 설정은 환경 변수, YAML 구성 파일 또는 명령줄 플래그를 통해 지정할 수 있으며, 우선순위는 다음과 같습니다:

**명령줄 플래그** > **환경 변수** > **구성 파일** > **기본값**

### 설정

**구성 파일 초기화:**```bash
# Initialize both server and client configs
make init-config

# Or initialize individually
make init-server-config  # Creates server-config.yaml
make init-client-config  # Creates client-config.yaml

이 작업은 예제 YAML 파일을 작업 디렉토리로 복사하여 편집할 수 있습니다. 또한 설정 파일을 ~/.rtc/ 또는 /etc/rtc/에 배치할 수 있습니다.

환경 변수로 재정의하기:```bash

Environment variables take precedence over config files

export RTC_SERVER_MINING_DIFFICULTY=8 export RTC_CLIENT_SERVER_ADDRESS=pool.example.com:50051 ./bin/server

root@kitploit:~
### 환경 변수

모든 환경 변수는 접두사를 사용합니다: 서버는 `RTC_SERVER_`, 클라이언트는 `RTC_CLIENT_`.

**서버 구성:**

| 변수                                | 설명                   | 기본값            |
| --------------------------------------- | ----------------------------- | ------------------ |
| `RTC_SERVER_NETWORK_GRPC_PORT`          | gRPC 서버 포트              | `50051`            |
| `RTC_SERVER_NETWORK_API_PORT`           | HTTPS API 포트                | `8443`             |
| `RTC_SERVER_NETWORK_HTTP_PORT`          | HTTP 웹 인터페이스 포트       | `8080`             |
| `RTC_SERVER_MINING_DIFFICULTY`          | 채굴 난이도 (1-64)      | `6`                |
| `RTC_SERVER_MINING_BLOCK_REWARD`        | 블록 보상 (코인)         | `50`               |
| `RTC_SERVER_TLS_ENABLED`                | HTTPS/TLS 활성화              | `false`            |
| `RTC_SERVER_TLS_CERT_FILE`              | TLS 인증서 경로          | `certs/server.crt` |
| `RTC_SERVER_TLS_KEY_FILE`               | TLS 개인 키 경로          | `certs/server.key` |
| `RTC_SERVER_API_READ_TIMEOUT`           | API 읽기 제한 시간              | `15s`              |
| `RTC_SERVER_API_WRITE_TIMEOUT`          | API 쓰기 제한 시간             | `15s`              |
| `RTC_SERVER_API_IDLE_TIMEOUT`           | API 유휴 제한 시간              | `60s`              |
| `RTC_SERVER_LOGGING_UPDATE_INTERVAL`    | 통계 업데이트 간격         | `30s`              |
| `RTC_SERVER_LOGGING_FILE_PATH`          | 로그 파일 경로                 | `pool_log.json`    |
| `RTC_AUTH_TOKEN` *(레거시)*             | 사용자 정의 인증 토큰   | 자동 생성     |

**클라이언트 구성:**

| 변수                                          | 설명                         | 기본값           |
| ------------------------------------------------- | ----------------------------------- | ----------------- |
| `RTC_CLIENT_SERVER_ADDRESS`                       | 풀 서버 주소 (호스트:포트)     | `localhost:50051` |
| `RTC_CLIENT_SERVER_TLS_ENABLED`                   | gRPC 연결에 TLS 활성화      | `false`           |
| `RTC_CLIENT_SERVER_TLS_INSECURE_SKIP_VERIFY`      | 인증서 검증 건너뛰기       | `true`            |
| `RTC_CLIENT_SERVER_TLS_CA_CERT_FILE`              | CA 인증서 파일 경로         | `""`              |
| `RTC_CLIENT_MINING_GPU_ENABLED`                   | GPU 채굴 활성화                   | `true`            |
| `RTC_CLIENT_MINING_HYBRID_MODE`                   | CPU+GPU 동시 채굴 활성화  | `false`           |
| `RTC_CLIENT_MINING_AUTO_DELETE`                   | 종료 시 자동 삭제             | `true`            |
| `RTC_CLIENT_GPU_NONCE_RANGE`                      | GPU 배치당 논스 범위           | `500000000`       |
| `RTC_CLIENT_GPU_CPU_START_NONCE`                  | CPU 시작 논스 (GPU 중복 방지) | `5000000000`      |
| `RTC_CLIENT_NETWORK_HEARTBEAT_INTERVAL`           | 상태 업데이트 간격              | `30s`             |
| `RTC_CLIENT_NETWORK_RETRY_INTERVAL`               | 연결 재시도 지연              | `10s`             |
| `RTC_CLIENT_NETWORK_MAX_RETRY_TIME`               | 최대 재시도 시간                  | `5m`              |
| `RTC_CLIENT_BEHAVIOR_WORKER_UPDATE_INTERVAL`      | 작업자 진행 보고 간격     | `100000`          |
| `POOL_SERVER` *(레거시)*                          | 원격 서버 주소               | `localhost:50051` |
| `GPU_MINING` *(레거시)*                           | GPU 채굴 활성화/비활성화           | 자동 감지       |
| `HYBRID_MINING` *(레거시)*                        | CPU+GPU 채굴 활성화               | `false`           |

### 구성 파일 예제

**서버 구성** (`server-config.yaml`):```yaml
network:
  grpc_port: 50051
  api_port: 8443
  http_port: 8080
mining:
  difficulty: 8
  block_reward: 100
tls:
  enabled: true
  cert_file: /etc/rtc/certs/server.crt
  key_file: /etc/rtc/certs/server.key
logging:
  update_interval: 30s
  file_path: /var/log/rtc/pool.json

클라이언트 설정 (client-config.yaml):```yaml server: address: pool.example.com:50051 tls: enabled: false insecure_skip_verify: true ca_cert_file: "" mining: gpu_enabled: true hybrid_mode: false auto_delete: true gpu: nonce_range: 1000000000 cpu_start_nonce: 5000000000 network: heartbeat_interval: 30s retry_interval: 10s max_retry_time: 5m

root@kitploit:~
### 인증

모든 API 엔드포인트 (대시보드 홈페이지 제외)는 Bearer 토큰 인증이 필요합니다.

**자동 생성된 토큰:**
서버는 시작 시 보안 토큰을 생성하여 콘솔에 표시합니다.

**사용자 지정 토큰:**```bash
export RTC_AUTH_TOKEN="your-secret-token"
./bin/server

성능

예상 채굴 시간은 CPU 성능과 운에 따라 다릅니다:

  • Difficulty 4: ~1-10초/블록 (단일 CPU)
  • Difficulty 5: ~10-60초/블록
  • Difficulty 6: ~1-10분/블록

HTTPS 구성```bash

Generate certificates

./generate_certs.sh

Start with HTTPS using new config system

export RTC_SERVER_TLS_ENABLED=true export RTC_AUTH_TOKEN="my-secure-token" ./bin/server

Custom certificates

export RTC_SERVER_TLS_CERT_FILE="/path/to/cert.pem" export RTC_SERVER_TLS_KEY_FILE="/path/to/key.pem" ./bin/server

root@kitploit:~
See [docs/TLS_SETUP.md](https://github.com/xyplex3/redteamcoin/blob/HEAD/docs/TLS_SETUP.md)를 참조하여 TLS 설정에 대한 자세한 내용을 확인하세요.

## API 참조

### REST API 엔드포인트

**공개 엔드포인트:**

- `GET /` - 웹 대시보드 (HTML)
- `GET /blocks` - 모든 블록 페이지 보기 (HTML)

**인증된 엔드포인트:**

- `GET /api/stats` - 풀 통계 (JSON)
- `GET /api/miners` - 모든 채굴자 목록 (JSON)
- `GET /api/blockchain` - 전체 블록체인 (JSON)
- `GET /api/blocks/{index}` - 특정 블록 세부 정보 (JSON)
- `GET /api/validate` - 블록체인 무결성 검증 (JSON)
- `GET /api/cpu` - CPU 및 GPU 사용량 통계 (JSON)
- `POST /api/miner/pause` - 특정 채굴자의 채굴 일시 중지
- `POST /api/miner/resume` - 특정 채굴자의 채굴 재개
- `POST /api/miner/delete` - 채굴자 삭제 (자동 종료 및 자체 삭제)
- `POST /api/miner/throttle` - CPU 제한 비율 설정 (0-100%)

### 인증 예제

**cURL:**```bash
# Get stats
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8080/api/stats

# Get miners
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8080/api/miners

# Pause a miner
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"miner_id":"miner-hostname-1234567890"}' \
  http://localhost:8080/api/miner/pause

# Set CPU throttle to 50%
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"miner_id":"miner-hostname-1234567890","throttle_percent":50}' \
  http://localhost:8080/api/miner/throttle

# HTTPS (with self-signed cert)
curl -k -H "Authorization: Bearer YOUR_TOKEN" https://localhost:8443/api/stats

JavaScript:```javascript const token = "YOUR_TOKEN_HERE"; const headers = { Authorization: Bearer ${token} };

fetch("http://localhost:8080/api/stats", { headers }) .then((r) => r.json()) .then((data) => console.log(data));

root@kitploit:~
**Python:**```python
import requests

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('http://localhost:8080/api/stats', headers=headers)
print(response.json())

gRPC 서비스```protobuf

service MiningPool { rpc RegisterMiner(MinerInfo) returns (RegistrationResponse); rpc GetWork(WorkRequest) returns (WorkResponse); rpc SubmitWork(WorkSubmission) returns (SubmissionResponse); rpc Heartbeat(MinerStatus) returns (HeartbeatResponse); rpc StopMining(MinerInfo) returns (StopResponse); }

root@kitploit:~
## 아키텍처

### 기술 스택

- **언어**: Go 1.21+
- **RPC 프레임워크**: gRPC with Protocol Buffers
- **웹 서버**: Go net/http 표준 라이브러리
- **의존성**: google.golang.org/protobuf, google.golang.org/grpc

## 개발

### 빌드 명령어```bash
make proto                # Generate protobuf code
make build                # Build server and client (CPU only)
make build-gpu            # Build with GPU support (auto-detect)
make build-cuda           # Build with NVIDIA CUDA
make build-opencl         # Build with AMD/Intel OpenCL
make build-windows        # Cross-compile for Windows
make build-all-platforms  # Cross-compile for all platforms
make clean                # Remove build artifacts
make deps                 # Download dependencies
make init                 # Full initialization

테스트

RedTeamCoin은 서버 및 클라이언트 구성 요소에 대한 포괄적인 단위 테스트를 포함하고 있습니다.

모든 테스트 실행:```bash make test # Run all tests (server + client)

root@kitploit:~
**특정 테스트 스위트 실행:**```bash
# Server tests
cd server && go test -v

# Client tests
cd client && go test -v -short

# With coverage
cd server && go test -cover
cd client && go test -cover

테스트 커버리지:

  • 서버: 76개 테스트, 66.3% 커버리지

    • blockchain_test.go: 15개 테스트 - 블록체인 검증, 해시 계산, 동시 접근
    • pool_test.go: 26개 테스트 - 마이너 관리, 작업 분배, 통계
    • grpc_server_test.go: 17개 테스트 - gRPC 엔드포인트, 마이너 제어, 하트비트
    • api_test.go: 18개 테스트 - REST API, 인증, 마이너 작업
  • 클라이언트: 41개 테스트, 16.2% 커버리지

    • main_test.go: 24개 테스트 - 마이닝 로직, 해시 계산, 상태 관리
    • gpu_test.go: 18개 테스트 - GPU 감지, 장치 관리, 통계

총계: 117개의 단위 테스트가 핵심 기능을 커버합니다.

테스트된 내용:

  • 블록체인 검증 및 무결성
  • 블록 마이닝 및 작업 증명
  • 마이닝 풀 작업 분배
  • 마이너 등록 및 관리
  • 서버 측 마이너 제어 (일시 중지/재개/삭제/조절)
  • gRPC 통신 프로토콜
  • REST API 엔드포인트 및 인증
  • GPU 장치 감지 및 초기화
  • 해시레이트 계산 및 통계
  • 동시 작업 및 스레드 안전성
  • 오류 처리 및 엣지 케이스

CI/CD 테스트:

모든 테스트는 다음에서 자동으로 실행됩니다:

  • 풀 리퀘스트
  • 메인 브랜치로의 커밋
  • 릴리스 빌드

CI 구성은 .github/workflows/build-verification.yaml을 참조하세요.

크로스 컴파일

Windows (CPU 전용):```bash make build-windows

root@kitploit:~
`bin/client.exe` 생성

**OpenCL을 지원하는 Windows (GPU 지원):**```bash
# Requires MinGW-w64 and Windows OpenCL SDK
make build-windows-opencl

Creates bin/client-windows-opencl.exe

See docs/WINDOWS_BUILD.md for complete Windows build instructions including:

  • 네이티브 Windows 빌드 (GPU 지원)
  • Linux에서 크로스 컴파일 설정
  • 인증 토큰 구성
  • 문제 해결 가이드

다중 플랫폼:```bash make build-all-platforms

root@kitploit:~
Creates:

- `client-linux-amd64` - Linux 64비트
- `client-linux-arm64` - Linux ARM64
- `client-windows-amd64.exe` - Windows 64비트
- `client-darwin-amd64` - macOS Intel
- `client-darwin-arm64` - macOS Apple Silicon

**참고:** `build-windows-opencl`을 사용하지 않는 한, 크로스 컴파일된 바이너리는 CPU 전용입니다(CGO 비활성화).

### 분석 도구

채굴 영향 분석을 위한 피해 평가 보고서를 생성합니다:```bash
make build-tools
./bin/generate_report -log pool_log.json

보고서에는 다음이 포함됩니다:

  • 리소스 소비 분석
  • 성능 영향 평가
  • 인프라 피해
  • 보안 영향
  • 재정적 영향 요약
  • 시스템별 분석
  • 복구 권장 사항

비용 가정:

매개변수기본값

보고서 변환:```bash

PDF

pandoc Report_Miner_Activity_from_to.md -o report.pdf

HTML

pandoc Report_Miner_Activity_from_to.md -o report.html

DOCX

pandoc Report_Miner_Activity_from_to.md -o report.docx

root@kitploit:~
**사용 사례:**

- 사후 분석
- 경영진 브리핑
- 재무적 정당화
- 규정 준수 문서화
- 보험 청구
- 법적 증거

전체 문서는 [tools/README.md](https://github.com/xyplex3/redteamcoin/blob/HEAD/tools/README.md)를 참조하세요.

## 문제 해결

### 원격 연결 문제

**연결 테스트:**```bash
# Test connection
ping <server_ip>
nc -zv <server_ip> 50051

# Check server (on server side)
lsof -i :50051
ss -an | grep 50051

Common issues:

  • 서버 주소와 포트 확인
  • 서버가 실행 중인지 확인
  • 방화벽 규칙 확인 (클라이언트 및 서버)
  • 네트워크 연결 확인
  • 포트 50051이 수신 중인지 확인

GPU 채굴 문제

일반적인 문제

빌드 실패:

  • Go 1.21+ 설치 확인
  • make deps 실행하여 종속성 설치
  • make install-tools 실행하여 protoc 도구 설치

연결 거부됨:

  • 서버가 실행 중인지 확인
  • 포트 사용 중 아님 확인: lsof -i :50051
  • 방화벽 설정 확인

인증 오류:

  • 토큰이 서버 출력과 일치하는지 확인
  • Authorization: Bearer TOKEN 헤더 형식 확인
  • 토큰이 URL 또는 헤더에 포함되어 있는지 확인

문서

사용자 가이드

  • docs/GPU_MINING.md - CUDA 및 OpenCL을 사용한 GPU 채굴
  • docs/WINDOWS_BUILD.md - Windows 빌드 가이드 (네이티브 및 크로스 컴파일)
  • docs/TLS_SETUP.md - HTTPS/TLS 구성
  • java-client/README.md - Java gRPC 클라이언트 (헤드리스 마이너)
  • tools/README.md - 분석 도구 및 피해 보고서

기술 참조

  • docs/WORKFLOWS.md - CI/CD 워크플로우 및 개발 프로세스

예제

  • docs/examples/ - 샘플 보고서 및 사용 예제

기여하기

기여를 환영합니다! 시작하는 방법은 다음과 같습니다:

  1. 저장소 포크
  2. 기능 브랜치 생성: git checkout -b feature/amazing-feature
  3. 변경 사항을 적용하고 테스트 추가
  4. 테스트 스위트 실행: make test
  5. 변경 사항 커밋: git commit -m 'Add amazing feature'
  6. 브랜치로 푸시: git push origin feature/amazing-feature
  7. Pull Request 열기

개발 설정```bash

Clone your fork

git clone https://github.com/YOUR_USERNAME/RedTeamCoin.git cd RedTeamCoin

Install dependencies

make install-tools make deps

Run tests

make test

Build and test locally

make build make run-server # Terminal 1 make run-client # Terminal 2

root@kitploit:~
### 코드 가이드라인

- Go 표준 포맷팅(`gofmt`)을 따를 것
- 새로운 기능에 대한 단위 테스트를 추가할 것
- 사용자에게 영향을 미치는 변경사항에 대한 문서를 업데이트할 것
- PR 제출 전 모든 CI 검사가 통과하는지 확인할 것

## 보안 주의사항

이 프로젝트는 승인된 보안 테스트 및 레드 팀 운영을 위한 **데모/교육용 프로젝트**입니다. 다음 용도로 사용됩니다:

- 승인된 침투 테스트 작업
- 보안 제어 검증
- 탐지 기능 평가
- 교육 및 훈련 목적

이 도구는 실제 암호화폐로 사용하기 위한 것이 아니며, 프로덕션 시스템에 필요한 많은 기능(암호화 서명, 지갑, 트랜잭션 검증, 네트워크 합의 등)이 부족합니다.

**소유하고 있거나 테스트 권한이 있는 시스템에서만 명시적 승인을 받고 사용하십시오.**

## 라이선스

이 프로젝트는 GNU General Public License v3.0에 따라 라이선스가 부여됩니다. 자세한 내용은 [LICENSE](https://github.com/xyplex3/redteamcoin/blob/HEAD/LICENSE) 파일을 참조하세요.

## 감사의 말

**제작자:**

- Peter Greko ([@Xyplex02](https://github.com/Xyplex02))
- Luciano Krigun ([@klucho](https://github.com/klucho))
- Jayson Grace ([@l50](https://github.com/l50))
도구 다운로드
ConfigurationHash RateSpeedupEfficiency (MH/W)
CPU (1 core)~2 MH/sBaseline~0.02
CPU (8 cores)~16 MH/s8x~0.02
GPU (RTX 3080)~500 MH/s250x~2.0
GPU (RTX 3090)~600 MH/s300x~2.5
GPU (AMD MI250)~800 MH/s400x~3.0
Hybrid (CPU+GPU)~620 MH/s310x~2.0
비고
CPU 전력150W최대 부하
GPU 전력250W최대 부하
전기 요금$0.12/kWh지역에 따라 조정
수명 단축20-40%지속적인 채굴로 인한
ProblemSolution
"cannot find -lcuda"export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
"nvcc not found"sudo apt install cuda-toolkit
"No OpenCL device"sudo apt install ocl-icd-opencl-dev
GPU 느림export RTC_CLIENT_MINING_GPU_ENABLED=true
CGo 빌드 오류sudo apt install build-essential