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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BlackBerryC2 — 암호화된 명령 및 제어(C2) 연구 프레임워크: 사이버 보안 교육, 레드 팀 실습, 그리고 보안 클라이언트-서버 통신 실험을 위한. | Kitploit
도구/GitHubGitHub/dereeqw/blackberryc2
Encryption/Decryption ToolsPayload GenerationIDS/IPS EvasionNetwork SecurityCryptographyPenetration TestingCommand and ControlLearning & EducationRed TeamingRemote Access Tool
GitHubdereeqw/blackberryc2

BlackBerryC2

31255개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

암호화된 명령 및 제어(C2) 연구 프레임워크: 사이버 보안 교육, 레드 팀 실습, 그리고 보안 클라이언트-서버 통신 실험을 위한.

저장소 보기

BlackBerryC2 2.0.0-beta

BlackBerryC2는 교육용, 보안 연구 및 통제된 실험실 환경 전용으로 설계된 암호화된 원격 관리 및 C2 프레임워크입니다. BlackBerryC2 데모

이 프로젝트는 외부 TLS 스택에 의존하지 않고 애플리케이션 계층 암호화, 세션 관리 및 안전한 클라이언트 통신을 갖춘 맞춤형 명령 및 제어 서버를 구축하는 방법을 보여줍니다.


⚠️ 중요 공지

이 프로젝트는 악성코드가 아니며 무단 접근을 위한 것이 아닙니다.

BlackBerryC2:

  • 자체적으로 전파되지 않음
  • 자동으로 취약점을 악용하지 않음
  • 지속성 메커니즘을 포함하지 않음
  • 안티바이러스 소프트웨어를 회피하려 시도하지 않음

소유하거나 명시적 테스트 권한이 있는 시스템 및 네트워크에서만 사용하세요.


Python 의존성:

root@kitploit:~
pip install cryptography prompt_toolkit zstandard

zstandard는 선택 사항이지만 1GB 이상 전송 시 권장됩니다.


주요 기능

  • 사용자 정의 TCP 기반 암호화 C2 서버 (v2.0)
  • ECDHE (secp256r1) 키 교환 — 일시적 또는 영구적
  • 세션당 AES-256-GCM 인증 암호화
  • 패킷당 HMAC-SHA256 인증 + 재전송 방지 시퀀스 번호
  • 다중 동시 클라이언트 세션
  • 탭 완성 지원 대화형 운영자 콘솔 (prompt_toolkit)
  • 암호화된 원격 명령 실행
  • zlib / Zstandard 압축을 통한 암호화된 파일 전송
  • 재귀적 디렉토리 업로드/다운로드 (get -r, put -r)
  • 백그라운드 전송 (-b 플래그) — 비차단, 취소 가능
  • 전송 재개 지원 (.partial + .resume 파일)
  • 클라이언트 페이로드 생성기 (generate-payload)
  • IP 차단: 영구 블록리스트 + 임시 자동 차단
  • 스캔/플러드 탐지: 연결 스캔, 배너 그래브, 핸드셰이크 실패, 하트비트 플러드
  • 선택적 HTTP(S)/TLS 프록시 지원 (BlackBerryHTTPs_TLSProxyGUI)
  • SPA (단일 패킷 인증) 및 포트 노킹 사전 인증
  • BerryTransfer 모드 — 전용 파일 전송 전용 서버 (셸 없음)
  • 암호화된 세션 로그 (AES-256-GCM + PBKDF2, 600k 반복)
  • 암호화된 서버 로그 및 셸 내 뷰어 (log 명령)
  • 시작 구성이 logs/last_start.json에 저장됨

암호화 설계

BlackBerryC2 v2.0은 다음과 같이 안전한 통신을 설정합니다:

  1. 클라이언트가 TCP로 연결; 서버가 서비스 배너 전송.
  2. 클라이언트가 REQUEST_PUBKEY 전송.
  3. 서버가 일시적 ECDHE 공개 키 (secp256r1) 전송.
  4. 클라이언트가 ECDHE 공개 키 + HMAC-SHA256 인증 태그 전송.
  5. 서버가 사전 공유 비밀 (HMAC_PRE_SHARED_SECRET)에 대해 HMAC을 확인.
  6. 양측이 공유 비밀에 대해 HKDF-SHA256을 통해 256비트 AES 세션 키 도출.
  7. 이후 모든 통신은 AES-256-GCM과 패킷당 HMAC-SHA256 및 재전송 방지 시퀀스 번호를 사용.

각 세션은 다음을 유지:

  • 고유한 AES-256 키 및 HMAC 키
  • 독립적인 논스 (메시지당 12바이트 랜덤)
  • 분리된 재전송 방지 추적기 (시퀀스 윈도우 ±100)
  • 플러드 보호 속도 제한기 (구성 가능한 명령/초)

모든 암호화 키는 런타임에 생성되며 재시작 시 재사용되지 않습니다 (--persistente 설정 시 제외).


서버 실행

root@kitploit:~
python3 BlackBerryC2_server.py

기본 구성:

  • 호스트: 0.0.0.0
  • 포트: 9949

명령줄 인수

예시:

root@kitploit:~
# 기본 시작 (로그 암호문 입력)
python3 BlackBerryC2_server.py

# 영구 ECDHE 키 + 상세
python3 BlackBerryC2_server.py -p -vv

# 사용자 정의 포트, HMAC 확인 없음
python3 BlackBerryC2_server.py -P 8080 --no-secure

# 사용자 정의 포트로 포트 노킹
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 9001,9002,9003

# BerryTransfer 모드 + 자동 승인
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm

# 서버 시작 없이 로그 보기/복호화
python3 BlackBerryC2_server.py --logs

운영자 콘솔 명령

서버 관리

프록시


세션 명령 (select <ID> 내부)

일반

파일 전송


BerryTransfer 모드

BerryTransfer는 scp에서 영감을 받은 전용 파일 전송 전용 서버 모드입니다. 활성화되면 서버는 모든 셸 액세스를 거부하고 BT:* 프로토콜 명령만 허용합니다.

시작:

root@kitploit:~
python3 BlackBerryC2_server.py --berrytransfer
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm  # GET에 대한 운영자 프롬프트 없음

BerryTransfer 셸 명령:

전송 로그는 logs/bt_transfer.jsonl에 기록됩니다 (선택적으로 AES-256-GCM 암호화).


SPA / 포트 노킹

--spa가 활성화되면 클라이언트는 TCP 연결이 수락되기 전에 UDP를 통해 인증해야 합니다.

SPA 모드 (기본값): 클라이언트가 SPA_UDP_PORT에 32바이트 HMAC-SHA256 토큰을 전송합니다.

root@kitploit:~
token = HMAC-SHA256(HMAC_SECRET, "{ip}:{time_window_30s}")

노크 모드: 클라이언트가 제한 시간 내에 순서대로 UDP 포트 시퀀스를 노크합니다.

root@kitploit:~
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 7001,7002,7003 --knock-timeout 10

인증된 IP는 --spa-ttl초 동안 유효합니다 (기본값 60).


보안 기능


로깅

내장 뷰어로 로그 보기:

root@kitploit:~
BlackBerry> log

또는 독립 실행 (서버 없음):

root@kitploit:~
python3 BlackBerryC2_server.py --logs

의도된 사용

이 프로젝트는 오직 다음 용도로만 사용됩니다:

  • 교육 시연
  • 보안 연구
  • 통제된 실험실 환경
  • 승인된 침투 테스트

허가 없이 시스템에 대한 무단 사용은 엄격히 금지됩니다.


라이선스

전체 라이선스 세부 사항은 LICENSE 파일을 참조하십시오.


면책 조항

이 소프트웨어는 "있는 그대로" 제공되며, 어떠한 종류의 보증도 없습니다. 저자는 이 소프트웨어의 오용 또는 이로 인한 손해에 대해 책임을 지지 않습니다.

도구 다운로드
플래그설명
-p / --persistenteecdhe-cert/의 영구 ECDHE 키 사용 (암호문 입력)
-v디버그 로깅
-vv상세 (완화된) 로깅
-H <호스트>수신 호스트 (기본값: 0.0.0.0)
-P <포트>수신 포트 (기본값: 9949)
--no-secureHMAC 확인 없이 모든 ECDHE 클라이언트 허용
--hmac <비밀>사용자 정의 HMAC 사전 공유 비밀 (16진수 또는 문자열)
--log-passphrase <암호>서버 로그를 AES-256-GCM으로 암호화 (PBKDF2 600k iter)
--logs대화형 로그 뷰어 — 서버 시작 안 함
--spaSPA/포트 노킹 사전 인증 활성화
--spa-mode <spa|knock>spa = 단일 UDP 토큰, knock = 포트 시퀀스
--spa-port <포트>SPA 수신기용 UDP 포트 (기본값: 7331)
--knock-seq <포트들>노크 모드용 포트 시퀀스 (기본값: 7001,7002,7003)
--knock-timeout <초>노크 시퀀스 완료 시간 제한 (기본값: 10)
--spa-ttl <초>인증된 IP가 유효한 시간 (기본값: 60)
--berrytransferBerryTransfer 모드: 파일 전송 전용, 셸 없음
--transfer-root <디렉토리>BerryTransfer 루트 디렉토리 (기본값: ./berry_transfers)
--auto-confirmBerryTransfer에서 모든 GET 요청 자동 승인 (연산자 프롬프트 없음)
명령설명
list활성 세션 목록 (통계 및 호스트명 포함)
select <ID>클라이언트 세션과 상호 작용
all <cmd>연결된 모든 클라이언트에 명령 전송
report전체 서버 상태 보고서 (가동 시간, 세션, 전송)
set host <HOST>수신 호스트 변경 (서버 재바인드)
set port <PORT>수신 포트 변경 (서버 재바인드)
sVbanner "<텍스트>"서비스 배너 변경
generate-payload클라이언트 페이로드 생성
fingerprintECDHE 서버 키 지문 표시 (SHA-256)
ecdhe-keys현재 ECDHE 키 쌍 출력 (PEM)
kill <id|ip>세션을 ID 또는 IP로 종료
block <IP>IP를 영구 차단
unblock <IP>IP 차단 해제 (영구 + 임시)
blocklist차단된 IP 표시 (영구 및 임시)
log대화형 로그 뷰어 (암호화된 로그 지원)
report상태 요약: 가동 시간, 세션, 전송
banner시작 배너 다시 표시
clean서버 로그 파일 삭제
vDEBUG 로깅 전환
vvVERBOSE 로깅 전환
cd <디렉토리>서버 로컬 작업 디렉토리 변경
E <명령>os.system을 통해 로컬에서 명령 실행
<모든 명령>서버에서 로컬로 실행
exit서버 중지 및 종료
명령설명
proxyTLS/HTTP 프록시 데몬 시작 (자동 모드)
proxy --mode <모드>모드: auto, tls, http, https, both, all
proxy --stats프록시 통계 표시
proxy gui프록시 GUI 실행 (별도 프로세스)
stop-proxy프록시 데몬 중지
stop-proxy-gui프록시 GUI 중지
proxy-help전체 프록시 도움말
명령설명
help세션 도움말 표시
exit메인 셸로 돌아가기
!<명령>서버에서 로컬로 명령 실행
<명령>원격 클라이언트에서 명령 실행
cmd1 && cmd2체인: cmd1 성공 시에만 cmd2 실행
cmd1 || cmd2체인: cmd1 실패 시에만 cmd2 실행
cmd1 ; cmd2체인: 항상 cmd2 실행
명령설명
get <파일>클라이언트에서 파일 다운로드
get <디렉토리> -r재귀적 디렉토리 다운로드
get <파일> -b백그라운드 다운로드 (비차단)
get <디렉토리> -r -b재귀적 백그라운드 다운로드
put <파일>클라이언트에 파일 업로드
put <파일> -exc업로드 후 메모리에서 실행 (스크립트)
put <디렉토리> -r재귀적 디렉토리 업로드
put <파일> -b백그라운드 업로드
transfers모든 활성 및 완료된 전송 목록
stop <ID>백그라운드 전송 취소 (예: stop T1)
resume <로컬_파일>중단된 다운로드 재개
screenshot클라이언트 화면 캡처
명령설명
confirm <ID>보류 중인 GET 요청 승인
deny <ID>보류 중인 GET 요청 거부
pending승인 대기 중인 GET 요청 목록
auto [on|off]자동 승인 전환/설정
clients활성 BerryTransfer 세션 표시
ls [디렉토리]전송 루트의 파일 목록
tree [디렉토리]전송 루트의 파일 트리
find <이름>전송 루트에서 파일 검색
rm <파일>전송 루트에서 파일 삭제 (확인 포함)
log [N]마지막 N개 전송 로그 항목 표시 (기본값 30)
cd <디렉토리>로컬 작업 디렉토리 변경
pwd현재 로컬 디렉토리 표시
!<명령>로컬 시스템 명령 실행
exitBerryTransfer 서버 중지
기능세부 사항
키 교환ECDHE secp256r1 일시적 또는 영구적
세션 암호화AES-256-GCM, 메시지당 12바이트 랜덤 논스
클라이언트 인증핸드셰이크 중 공유 비밀에 대한 HMAC-SHA256
메시지 무결성패킷당 HMAC-SHA256 (seq + 논스 + 암호문 포함)
재전송 방지세션당 시퀀스 번호 윈도우 추적기
다운그레이드 방지최소 AES 키 크기 적용 (256비트)
하트비트 속도 제한최소 3초 간격; 위반 추적
명령 플러드 방지속도 제한기; 임계값 초과 시 자동 연결 해제
스캔 탐지연결 스캔, 배너 그래브, 핸드셰이크 실패 카운터
IP 관리영구 블록리스트 + 임시 차단 (자동 + 수동)
로그 암호화AES-256-GCM + PBKDF2-HMAC-SHA256 (600k 반복)
응답 지터타이밍 공격에 저항하기 위한 10–50ms 랜덤 지터
사전 인증TCP 수락 전 SPA 토큰 또는 포트 노킹
로그 파일내용
logs/BlackBerryC2_Server.log평문 순환 서버 로그 (INFO+)
logs/BlackBerryC2_enc.log암호화된 서버 로그 (--log-passphrase 설정 시)
logs/sessions.jsonl세션 이벤트: 연결, 연결 해제, 바이트
logs/bt_transfer.jsonlBerryTransfer 파일 전송 로그
logs/last_start.json시작 구성 스냅샷 (호스트, 포트, 토큰, pid)