
🔒 Cloudflare Tunnel 통합을 갖춘 현대적인 C2 플랫폼 | WinRM 및 SSH 원격 관리 | 실시간 터미널 및 원격 데스크톱 | FastAPI 및 React로 구축
ZeroPulse는 안전한 원격 관리 및 모니터링을 위해 설계된 종합적인 C2(Command & Control) 플랫폼입니다. Cloudflare Tunnel 기술을 활용하여 인프라를 공용 인터넷에 노출하지 않으면서도 안전하고 암호화된 연결을 제공합니다.
⚠️ 개발 상태: 이 프로젝트는 현재 활발히 개발 중입니다. 이 버전은 데모/알파 릴리스이며 일부 기능은 다음과 같을 수 있습니다:
- 불안정하거나 호환성을 깨뜨리는 변경이 있을 수 있음
- 불완전하거나 일부만 구현되었을 수 있음
- 빈번한 업데이트가 이루어지는 활발한 개발 중 상태
이 소프트웨어는 테스트 및 평가 목적으로만 사용할 것을 권장합니다. 프로덕션 환경에서는 안정적인 릴리스를 기다리거나 본인의 책임 하에 사용하십시오.
ZeroPulse 대시보드 - 모든 터널 및 시스템 상태 개요
터널 관리
원격 명령 실행
원격 데스크톱
세션 및 보안
DNS 관리
로컬 셸 접근
모듈 제어 시스템
.nvmrc 참조)gem install evil-winrm)sudo apt update sudo apt install -y python3 python3-pip python3-venv git curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash source ~/.bashrc nvm install 20.19.0 nvm use 20.19.0
sudo snap install ruby --classic gem install evil-winrm
python3 --version # Should be 3.8+ node --version # Should be 20.19.0+ or 22.12.0+ npm --version
## 🚀 설치
<div align="center">
<img src="https://assets.kitploit.com/production/public/readmes/7371/63f8299d6bb31aaa64c5e271f4e78bcb3ea94ef8ae7a2f1e2e3b6205552fb8b2.png" alt="설치 설정" />
<p><em>설치 과정 - 새 시스템에 ZeroPulse 설정</em></p>
</div>
### 1. 저장소 복제```bash
git clone https://github.com/yourusername/zeropulse.git
cd zeropulse
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
### 3. 프론트엔드 설정```bash
cd frontend
# Check Node.js version (should be 20.19.0+ or 22.12.0+)
node --version
# If using nvm, switch to required version
nvm use # Automatically uses version from .nvmrc
# Install dependencies
npm install
# Build frontend
npm run build
cd ..
프로젝트 루트에 .env 파일을 생성합니다:```bash
cat > .env << EOF
ADMIN_USERNAME=admin ADMIN_PASSWORD=your-secure-password-here JWT_SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))") JWT_ALGORITHM=HS256 JWT_EXPIRATION_HOURS=24
CLOUDFLARE_API_TOKEN=your-cloudflare-api-token-here CLOUDFLARE_ACCOUNT_ID=your-cloudflare-account-id-here CLOUDFLARE_DOMAIN=your-domain.com
WINRM_USERNAME=WinRMUser WINRM_PASSWORD=your-secure-password-here
SSH_KEY_PATH=/path/to/ssh/key SSH_USERNAME=ssh_user
C2_SERVER_HOST=0.0.0.0 C2_SERVER_PORT=8000 ENVIRONMENT=production
DATABASE_PATH=data/database.db EOF
chmod 600 .env
### 5. 서버 시작```bash
# Ensure virtual environment is active
source venv/bin/activate
# Start the server
python3 run_server.py
The server will be accessible at http://localhost:8000
Cloudflare API 토큰에는 다음 권한이 필요합니다:
Zone:Read, DNS:EditCloudflare Tunnel:Edit
터널 목록 - 상태, 상태 표시기, 빠른 작업과 함께 모든 터널 표시
터널 경로 구성 - 인그레스 규칙 및 DNS 레코드 구성
명령 실행 인터페이스 - WinRM 및 SSH를 통해 원격 Windows 시스템에서 명령 실행
명령 기록 - 상세 정보와 함께 실행된 모든 명령의 포괄적인 보기
명령 기록 기능은 모든 명령 실행에 대한 완전한 감사 추적을 제공합니다:
포괄적인 로깅
고급 필터링
상세 보기
기록 관리
모듈 제어판 - 모든 시스템 모듈 및 기능을 관리하기 위한 중앙 집중식 인터페이스
모듈 제어판은 다양한 시스템 모듈에 액세스하고 관리하기 위한 통합 인터페이스를 제공합니다:
설정 모달 - 중앙 집중식 구성 및 관리 인터페이스
설정 모달은 여러 탭을 통해 포괄적인 시스템 구성 및 관리를 제공합니다:
원격 시스템에서 실행할 수 있는 PowerShell 모듈을 관리합니다:
모듈 기능:
템플릿 엔진을 사용하면 사용자 입력 변수로 동적 PowerShell 모듈을 만들 수 있습니다. 변수는 _{...}_ 구문으로 정의되며 실행 전에 사용자가 제공한 값으로 대체됩니다.
1. 단순 텍스트 입력```powershell ping {ip,192.168.1.1}
- **형식**: `_{name,placeholder}_`
- **용도**: 플레이스홀더가 있는 텍스트 입력 필드
- **예시**: `ping _{target_ip,192.168.1.1}_` → 사용자가 IP 주소를 입력합니다
**2. 드롭다운 목록**```powershell
ping _{ip,list,(192.168.1.1,192.168.1.2,10.0.0.1)}_
_{name,list,(option1,option2,option3)}_3. 라디오 버튼```powershell netstat -an | findstr {port,radio,(80,443,8080)}
- **형식**: `_{name,radio,(option1,option2,option3)}_`
- **용도**: 단일 선택을 위한 라디오 버튼 그룹
- **예시**: 사용자가 라디오 버튼을 통해 포트 번호를 선택합니다.
**4. 체크박스**```powershell
if (_{enable,check,(true,false),Enabled,Disabled}_) { Write-Host "Enabled" }
_{name,check,(true_value,false_value),true_label,false_label}_모듈 생성
_{variable}_ 구문 사용변수 추출
사용자 입력
변수 치환
실행
PowerShell 스크립트:```powershell
$target = "{target_ip,192.168.1.1}" $port = "{port,radio,(80,443,8080)}" $scan_type = "{scan_type,list,(ping,tcp,udp)}" $verbose = "{verbose,check,(true,false),Yes,No}"
if ($scan_type -eq "ping") { ping -n 4 $target } elseif ($scan_type -eq "tcp") { Test-NetConnection -ComputerName $target -Port $port } else { Write-Host "UDP scan for $target on port $port" }
if ($verbose -eq "true") { Write-Host "Scan completed with verbose output" }
**생성된 양식:**
- **target_ip**: 텍스트 입력 (placeholder: 192.168.1.1)
- **port**: 라디오 버튼 (80, 443, 8080)
- **scan_type**: 드롭다운 (ping, tcp, udp)
- **verbose**: 체크박스 (Yes/No)
##### 모범 사례
- **설명이 포함된 이름 사용**: 변수 이름은 명확하고 설명적이어야 합니다.
- **플레이스홀더 제공**: 텍스트 입력에 항상 유용한 플레이스홀더를 포함하세요.
- **옵션 제한**: 드롭다운/라디오 옵션을 관리 가능한 수준으로 유지하세요 (5-10개 항목).
- **입력 검증**: PowerShell 스크립트에서 입력 검증을 고려하세요.
- **변수 문서화**: 변수의 목적을 설명하는 주석을 추가하세요.
##### 고급 사용법
**중첩 변수:**```powershell
$command = "ping _{ip}_ -n _{count,4}_"
Invoke-Expression $command
조건부 논리:```powershell if ({enable_feature,check,(true,false),Yes,No} -eq "true") { # Feature code }
**여러 변수:**```powershell
$server = "_{server_name,localhost}_"
$port = "_{port,list,(80,443,8080,8443)}_"
$protocol = "_{protocol,radio,(http,https)}_"
$url = "$protocol://$server`:$port"
종속성 관리 - 시스템 종속성 및 요구 사항 관리
시스템 종속성 및 요구 사항 관리:
지원되는 종속성:
시스템 로그 - 시스템 로그를 실시간으로 확인 및 모니터링
포괄적인 로깅을 통한 시스템 활동 모니터링:
로그 레벨:
API 토큰 관리 - 세분화된 권한으로 API 토큰 생성 및 관리
활성 세션 관리 - 활성 사용자 세션 확인 및 관리
활성 사용자 세션 확인 및 관리:
활성 세션 관리 - 활성 사용자 세션 확인 및 관리
모든 터널에 대한 라우트 구성:
에이전트 스크립트 편집기 - Windows 배포용 PowerShell 에이전트 스크립트 생성, 편집 및 사용자 지정
에이전트는 ZeroPulse를 통한 원격 관리를 위해 Windows 시스템 설정을 자동화하는 PowerShell 스크립트입니다. WinRM을 구성하고, Cloudflare 터널을 생성하며, 보안 연결을 설정합니다.
API 토큰 관리 - 세분화된 권한으로 API 토큰 생성 및 관리
서버가 실행 중이면 대화형 API 문서에 접근할 수 있습니다:
http://localhost:8000/docshttp://localhost:8000/redoc모든 API 엔드포인트(/api/auth/* 제외)는 인증이 필요합니다:```bash
curl -H "Authorization: Bearer YOUR_JWT_TOKEN"
http://localhost:8000/api/tunnels
### 프로덕션 배포
프로덕션 배포를 위한 단계:
1. `.env` 파일에서 `ENVIRONMENT=production` 설정
2. SSL과 함께 리버스 프록시(nginx/traefik) 사용
3. 방화벽 규칙 구성
4. 로그 로테이션 설정
5. 자동 재시작을 위해 systemd 서비스 사용
<h2 id="contact">📧 연락처</h2>
<p >
<a href="https://t.me/amajax"><img title="Telegram" src="https://img.shields.io/badge/Telegram-black?style=for-the-badge&logo=Telegram"></a>
<a href="https://www.youtube.com/channel/UC0-QcOXgzRgSfcE3zerwu9w/?sub_confirmation=1"><img title="Youtube" src="https://img.shields.io/badge/Youtube-red?style=for-the-badge&logo=Youtube"></a>
<a href="https://www.instagram.com/jxroot"><img title="Instagram" src="https://img.shields.io/badge/Instagram-white?style=for-the-badge&logo=Instagram"></a>
## ⚠️ 법적 및 윤리적 고지
🚨 이 도구는 교육 및 공인된 보안 테스트 목적으로만 개발되었습니다.
🔬 이 도구는 사이버 보안 전문가, 연구자, 애호가가 실험실 또는 통제된 환경에서 포스트 익스플로잇, 레드 팀 운영, 탐지 기법을 이해하는 데 도움을 주기 위해 제작되었습니다.
❌ 명시적 허가 없이 이 도구를 어떤 시스템이나 네트워크에서도 사용하지 마십시오. 무단 사용은 불법적이고 비윤리적일 수 있습니다.
🛡 저자는 이 프로젝트로 인한 오용이나 손해에 대해 책임을 지지 않습니다.
---
> 항상 책임감 있게 해킹하세요. 💻🔐
---
<div align="center">
</div>
| 레이어 | 기술 | 용도 |
|---|
| 프론트엔드 | React 19, Redux Toolkit, React Router, TailwindCSS, xterm.js | 사용자 인터페이스 |
| 백엔드 | FastAPI, Uvicorn | API 서버 |
| 데이터베이스 | SQLite (with optimized queries and indexes) | 데이터 저장 |
| 인증 | JWT, python-jose | 토큰 기반 인증 |
| 원격 실행 | pywinrm, paramiko, evil-winrm | WinRM 및 SSH 통합 |
| 터미널 | xterm.js, WebSocket | 대화형 터미널 |
| 외부 API | requests, cloudflare | 서비스 통합 |
| 프로세스 관리 | subprocess, asyncio, threading | 백그라운드 작업 |
| 변수 | 설명 | 기본값 |
|---|
ADMIN_USERNAME | 관리자 사용자 이름 | admin |
ADMIN_PASSWORD | 관리자 비밀번호 | - |
JWT_SECRET_KEY | JWT 서명 키 | - |
JWT_EXPIRATION_HOURS | 토큰 만료 시간 | 24 |
CLOUDFLARE_API_TOKEN | Cloudflare API 토큰 | - |
CLOUDFLARE_ACCOUNT_ID | Cloudflare 계정 ID | - |
CLOUDFLARE_DOMAIN | 사용자 도메인 | - |
WINRM_USERNAME | WinRM 사용자 이름 | WinRMUser |
WINRM_PASSWORD | WinRM 비밀번호 | - |
SSH_KEY_PATH | SSH 개인 키 경로 | - |
SSH_USERNAME | SSH 사용자 이름 | - |
C2_SERVER_HOST | 서버 호스트 | 0.0.0.0 |
C2_SERVER_PORT | 서버 포트 | 8000 |
ENVIRONMENT | 환경 모드 | development |
DATABASE_PATH | 데이터베이스 파일 경로 | data/database.db |