아웃오브밴드 발견을 위한 익스플로잇 서버. 타깃을 자신이 소유한 도메인으로 향하게 하세요. 되돌아오는 모든 HTTP 요청과 모든 이메일이 당신이 통제하는 대시보드에 기록되며, 그 대가로 당신이 선택한 응답을 받게 됩니다.
BEAR-C2는 러시아, 중국, 북한, 이란 APT 그룹에서 영감을 받은 실제 세계의 TTP를 기반으로 구축된 적대자 시뮬레이션 및 에뮬레이션 프레임워크입니다. 다양한 교전 시나리오를 위한 유연한 환경을 제공하며, APT Attack Simulation Repository의 관련 시뮬레이션 연구를 바탕으로 레드 팀 운영 및 적대자 에뮬레이션을 위한 현실적인 기반을 제공합니다. 방어 회피 기술과 다양한 암호화 옵션을 지원하여 실제 침입 시나리오를 정확하게 재현합니다.

[!CAUTION] 이 프로젝트는 교육 및 연구 목적으로만 사용되며, 무단으로 사용할 경우 법적 책임이 발생할 수 있음을 반드시 유의하시기 바랍니다.
git clone https://github.com/S3N4T0R-0X0/BEAR-C2.git && cd BEAR-C2
chmod +x requirements.sh && ./requirements.sh
./BEAR-C2
## 🧠 적대자 시뮬레이션의 과제:
**APT 기법**을 정확하게 재현하려면 현대 침입에 사용되는 `연결 프로토콜, 암호화 방식, 유출 기법, C2 채널/프로필을 모방할 수 있는 유연한 환경`이 필요합니다. 그러나 이러한 수준의 정밀도를 달성하는 것은 항상 과제였습니다.
<img width="1366" height="732" alt="main " src="https://assets.kitploit.com/production/public/readmes/54775/8af4474bf61f52114745ec8403b4ea6d01d26a57f85913f1f01b4bba559a1eb7/59654a7b465df184554d5c31ee49293c1f5d9da71a1e6ef81aa0a2fa5b88b8ea-display-v1.webp" />
운영자가 특정 **유출 프로필**과 함께 특정 **암호화 체계**를 테스트해야 할 때마다, 공격 시나리오에 맞는 별도의 **C2 스크립트**를 `구축해야 합니다.` 예를 들어, 한 시뮬레이션에서는 **OneDrive 유출**과 함께 **AES 암호화**가 필요할 수 있고, 다른 시뮬레이션에서는 실제 공격에서 관찰된 기법을 반영하기 위해 **Dropbox 유출**과 결합된 **다른 암호화 방식**이 필요할 수 있습니다. 이러한 유연성 부족은 프로세스를 비효율적이고 시간 소모적으로 만듭니다.
<img width="1359" height="680" alt="Screenshot From 2026-09-01 05-54-48" src="https://assets.kitploit.com/production/public/readmes/54775/c106129e53832b08e6575610090337721e4e5892eade10bee395fae638326cc2/299229b4ffae9286d368a6e9243c4528d469f5395f166d9b67fa0020beaf5d8a-display-v1.webp" />
이것이 **BEAR C2**가 개발된 이유로, 새로운 리스너를 통해 완전한 사용자 정의가 가능한 **적대자 시뮬레이션**을 제공하여 `연결 프로토콜, 암호화, 유출` 및 자동화된 로딩 기법을 원활하게 구성할 수 있습니다. 이를 통해 모든 시나리오에 대해 사용자 정의 스크립트를 구축할 필요 없이 시뮬레이션이 실제 **APT 침입**을 정확하게 반영할 수 있습니다.
## Reaper Node 페이로드 샘플
Reaper Node는 사전 생성된 페이로드가 필요하지 않은 환경에서 사용자 정의 가능한 템플릿으로 사용할 수 있는 C++ 페이로드 샘플 `/Stagers-Loaders/Reaper Node Samples/`을 제공합니다. 샘플에는 해당 Reaper Node 인스턴스와의 통신을 설정하는 데 필요한 핵심 구성 필드가 포함되어 있습니다.
페이로드를 컴파일하기 전에 Reaper Node 구성과 일치하도록 필요한 연결 및 전송 매개변수를 구성해야 합니다.
### 페이로드 구성
페이로드 구성은 다음 매개변수에 대한 입력 필드를 제공해야 합니다:
* **Authentication ID**
구성된 Reaper Node 인스턴스와 페이로드를 연결하는 데 사용되는 식별자입니다.
* **Server Host**
Reaper Node 엔드포인트의 IP 주소 또는 호스트 이름입니다.
* **Server Port**
선택한 통신 프로토콜에 대해 Reaper Node가 노출하는 네트워크 포트입니다.
* **Encryption Key**
선택한 전송이 암호화를 사용할 때 필요합니다. 값은 Reaper Node에서 사용하는 암호화 구성과 일치해야 합니다. 암호화가 비활성화된 경우 이 필드는 필요하지 않습니다.
* **User-Agent**
초기 HTTP/HTTPS 통신을 설정할 때 사용되는 HTTP 클라이언트 식별 값입니다. 페이로드는 해당 Reaper Node 구성에서 지원하는 User-Agent를 사용해야 합니다.
User-Agent는 서로 다른 Reaper Node 구성에서 동일할 필요가 없습니다. 페이로드는 결과 구성이 서버 측 전송 설정과 호환되는 한, 선택한 Reaper Node 프로필에서 지원되는 것으로 정의된 모든 User-Agent를 사용할 수 있습니다.
### 구성 예시
다음 예시는 인증, 서버 주소 지정, 암호화 및 User-Agent 매개변수를 포함한 샘플 HTTPS 전송 구성을 보여줍니다:```cpp
const string AUTH_ID = "YOUR_AUTH_ID";
const string SERVER_HOST = "YOUR_SERVER_HOST";
const int SERVER_PORT = YOUR_SERVER_PORT;
const string KEY = "YOUR_ENCRYPTION_KEY";
const string DEFAULT_USER_AGENT = "YOUR_USER_AGENT";
bool VERIFY_SSL = true;
이 구성은 암호화가 활성화된 HTTPS 전송을 나타냅니다. 위에 표시된 값은 자리 표시자이며 해당 Reaper Node 구성에 정의된 매개변수로 대체해야 합니다.
C++ 샘플은 사용자 정의를 위한 시작점을 제공하기 위한 것입니다. 사용자는 테스트 중인 Reaper Node 프로필에 따라 구성 및 전송 관련 매개변수를 수정한 다음, 권한이 부여된 시뮬레이션 환경에 맞게 사용자 정의된 페이로드를 컴파일할 수 있습니다.
Listeners Table은 모든 활성 및 구성된 C2 리스너에 대한 중앙 집중식 개요를 제공합니다. 리스너 이름, 주소, 네트워크 프로토콜, 암호화 방식, 유출 프로필 및 현재 상태(Active 또는 Stopped/Disconnected)와 같은 필수 세부 정보를 표시합니다. 이 인터페이스에서 운영자는 리스너를 쉽게 시작, 중지, 이름 변경 또는 제거할 수 있습니다. 또한 비콘 통신 관리를 위한 암호화 키와 인증 ID에 빠르게 접근할 수 있습니다. 이 테이블은 C2 인프라를 조정하고 모니터링하기 위한 명령 허브 역할을 합니다.

이 버전은 중앙 집중식 리스너 관리, 실시간 세션 추적, 사용자 정의 가능한 통신 프로필, 통합 유출 워크플로 및 효율적인 교전 관리를 위한 유연한 운영자 제어를 통해 적대자 시뮬레이션 작업을 간소화하는 완전한 GUI를 갖추고 있습니다.
⚠️ 참고: 이 프로젝트는 활발히 개발 중입니다. 기능이 지속적으로 추가되고 개선됩니다.
| 기능 | 설명 |
|---|---|
| 다중 프로토콜 리스너 | DoH, HTTPS, HTTP, QUIC, Reverse TCP |
| 리스너별 암호화 | AES, XOR, RC4, DES, ChaCha20, RSA |
| 유출 프로필 | Google Drive, OneDrive, Dropbox |
| 통합 C2 채널 | 통합 Telegram, Discord C2 통신 채널 |
| 프록시 지원 | SOCKS4, SOCKS4a 및 SOCKS5 프록시 및 리디렉터 지원 |
| 동적 도메인 생성 알고리즘 | 복원력 있는 인프라 시뮬레이션을 위한 DGA 지원 |
| JA3S 핑거프린팅 | 트래픽 시뮬레이션 및 네트워크 프로필 튜닝을 위한 사용자 정의 가능한 JA3S 핑거프린트 |
| Malleable C2 프로필 | 유연한 네트워크 트래픽 시뮬레이션을 위한 커뮤니티 Malleable C2 프로필 지원 |
| 스테이저 및 로더 | APT 적대자 시뮬레이션을 위해 설계된 자동화된 스테이저 및 로더 기법 |
| 통합 도구 | 내장 스크립트 난독화기, 피싱 툴킷 및 파일 호스팅 |
| TLS 인증서 생성 | 신뢰할 수 있는 공급업체를 모방한 자체 서명 TLS 인증서 |
| HTTP 사용자 정의 | 클라이언트 및 서버 통신 모두를 위한 Base64 URL 인코딩 및 사용자 정의 HTTP 헤더 |
| 실시간 세션 관리자 | 실시간 상태 추적, 세션 모니터링 및 실시간 업데이트 기능 |
| 사용자 정의 이름 지정 및 URI 경로 | 운영 유연성을 위한 사용자 정의 캠페인 이름 및 구성 가능한 URI 경로 |
| 재연결 및 타임아웃 제어 | 세션별 구성 가능한 재연결 지연 및 조정 가능한 타임아웃 임계값 |
| 인증 식별자 | 보안 강화를 위한 내장 만료 제어 기능이 있는 고유 인증 토큰 |
| 세션 강화 유틸리티 | 활성 세션을 위한 기록 정리기, 세션 제한기 및 인증 타임아웃 관리 |
Google Drive, OneDrive, Dropbox와 같이 지원되는 클라우드 스토리지 공급자에 대한 세션별 유출 설정을 구성합니다. 유출 프로필 인터페이스를 통해 API 액세스 토큰과 대상 폴더 경로를 정의할 수 있으므로 각 세션에 대한 데이터 수집 워크플로를 사용자 정의할 수 있습니다. 각 세션은 자체 유출 프로필을 사용할 수 있으므로 작업에 따라 수집된 데이터를 다른 클라우드 스토리지 공급자나 대상으로 쉽게 라우팅할 수 있습니다.

Telegram 통신 계층은 Telegram 봇을 C2 서버와 페이로드 사이의 중개자로 사용합니다. C2 서버는 구성된 API ID, API Hash 및 전화번호를 사용하여 Telegram 계정에 인증한 다음, 해당 계정을 통해 이전에 생성된 Telegram 봇에 연결합니다

봇의 Bot Token은 페이로드에 내장되어 페이로드가 Telegram API를 통해 봇과 통신할 수 있게 합니다. 명령은 C2 서버에서 봇으로 전송되고, 봇은 이를 페이로드로 전달하며, 페이로드는 수신된 작업을 실행하고 동일한 통신 경로를 통해 결과를 반환합니다. 이는 Telegram을 통신 계층으로 사용하는 양방향 명령 및 제어 채널을 생성합니다.

Telegram에서 @BotFather를 열고 /newbot을 사용하여 새 봇을 생성합니다.
/newbot 전송bot으로 끝나는 고유한 사용자 이름 제공
Bot Token은 Telegram 에이전트가 Telegram Bot API로 인증하는 데 필요합니다.
공식 Telegram API 개발 포털을 열고 새 애플리케이션을 생성합니다.
다음 자격 증명을 생성합니다: https://my.telegram.org/apps
API IDAPI Hash
이러한 자격 증명은 BEAR-C2가 봇 통신을 관리하는 데 사용되는 Telegram 계정을 인증하는 데 사용됩니다.
Telegram Agent.cpp를 열고 Telegram 통신 설정을 구성합니다.
BotFather에서 생성된 Bot Token은 페이로드를 컴파일하기 전에 /Stagers-Loaders/C2 Channel Agent Samples/Telegram Agent.cpp에 배치해야 합니다.

구성 흐름은 다음과 같습니다:
BotFather → Bot Token → payload.cpp → Compile
API ID와 API Hash는 BEAR-C2 Telegram 통합에서 사용되며, Bot Token은 Telegram 페이로드에 구성되어 구성된 Telegram 봇과 통신할 수 있게 합니다.
이 단계는 전통적인 명령 및 제어 통신 채널을 Discord Gateway API를 사용하는 Discord 기반 통신 계층으로 대체합니다. 전용 서버, 고정 IP 주소 또는 사용자 정의 도메인에 의존하는 대신, 운영자는 비공개 Discord 채널을 통해 시뮬레이션된 임플란트와 통신합니다.

Discord 통신 계층은 동일한 Discord 채널을 통해 연결된 두 개의 Discord 봇을 사용합니다. 하나의 봇은 C2 서버에 연결되고, 두 번째 봇은 페이로드에 할당됩니다. 두 봇은 공유 Discord 채널을 통해 통신하여 Discord를 통해 C2 서버와 페이로드 간의 작업 및 통신을 가능하게 합니다.
Discord는 봇이 다른 봇과 직접 통신하는 것을 허용하지 않으므로, 공유 채널을 사용하여 양측 간의 통신 경로를 제공합니다.

Discord 에이전트는 Discord Gateway 및 API를 페이로드와 BEAR-C2 간의 통신 계층으로 사용합니다. 설정에는 Discord 봇 애플리케이션, 전용 텍스트 채널, 필요한 봇 권한 및 C++ 에이전트 샘플에 구성된 해당 값이 필요합니다.
공식 "Discord Developer Portal"(https://discord.com/developers/applications)을 열고 시뮬레이션에 필요한 Discord 봇 애플리케이션을 생성합니다.
Discord C2 채널은 두 개의 봇 ID를 사용합니다:
각 애플리케이션에 대해 Bot 설정을 열고 필요한 Bot Token을 생성합니다.

Discord Developer Portal의 Bot 구성을 열고 Message Content Intent를 활성화합니다.
봇은 또한 시뮬레이션에 사용되는 Discord 텍스트 채널에 필요한 권한을 가져야 하며, 여기에는 다음이 포함됩니다:
이러한 권한을 통해 봇은 구성된 채널의 메시지에 접근하고 동일한 통신 경로를 통해 메시지를 보낼 수 있습니다. Discord는 API를 통해 메시지 내용을 수신해야 하는 애플리케이션에 Message Content Intent를 요구합니다.

Discord 에이전트를 위한 전용 비공개 텍스트 채널을 생성하고 두 봇 애플리케이션을 채널에 추가합니다.
Discord Developer Portal에서 구성된 것과 동일한 권한이 채널의 봇 애플리케이션에도 활성화되어 있는지 확인합니다.
Discord Developer Mode를 활성화한 상태에서 Channel ID를 복사합니다. Discord는 Developer Mode가 활성화된 경우 Copy Channel ID 옵션을 통해 Channel ID를 제공합니다.

동일한 Channel ID가 C2 구성과 Discord 에이전트에서 사용되어 양측이 동일한 Discord 채널을 통해 통신합니다.
다음 위치에 있는 Discord 에이전트 샘플을 엽니다:
"Stagers-Loaders/C2 Channel Agent Samples/Discord Agent.cpp"
샘플은 Discord Bot Token, Channel ID 및 Bot User ID에 대한 구성 필드를 제공합니다:

자리 표시자를 페이로드 봇 및 전용 Discord 채널에 속하는 값으로 대체합니다.
"BOT_USER_ID"는 페이로드에서 사용하는 Bot 계정을 식별합니다. Discord User ID는 Developer Mode를 활성화한 후 복사할 수 있습니다.
BEAR-C2 내부의 Discord Channel 구성에서 해당 C2 Bot Token, Channel ID 및 Listener Name을 제공합니다.

C2 봇과 페이로드 봇은 동일한 Discord 채널을 통신 경로로 사용하며, 각 측은 자체 Bot Token을 사용하여 인증합니다.
Discord 구성과 페이로드 샘플이 완료되면 권한이 부여된 적대자 시뮬레이션 환경에서 사용할 C++ 에이전트를 컴파일합니다.
⚠️ 참고: C2 채널 제한 사항
C2 채널은 C2 서버와 비콘 간의 통신 계층으로 타사 메시징 플랫폼을 사용할 때 데이터 전송 및 비콘 식별과 관련된 제한 사항을 도입합니다
● 데이터 전송 제한 사항
Telegram과 Discord는 봇 API를 통해 교환되는 개별 메시지에 최대 문자 수 제한을 부과합니다. BEAR C2에서 C2 채널은 C2 서버와 비콘 간의 전송 계층 역할을 하므로, 이 제한은 비콘 페이로드 자체의 크기가 아니라 채널을 통해 전송되는 데이터에 적용됩니다. C2 서버에서 비콘으로 전송되는 데이터와 비콘에서 C2 서버로 반환되는 데이터는 전송 전에 Base64로 인코딩될 수 있습니다. Base64는 전송되는 표현의 크기를 증가시키므로, 단일 메시지로 전송할 수 있는 원본 데이터의 양은 플랫폼 문자 제한보다 적습니다.
[ Telegram ] 메시지당 최대 4096자, C2 데이터 전송을 위해 4000자 구성

[ Discord ] 메시지당 최대 2000자, C2 데이터 전송을 위해 1400자 구성

구성된 제한은 C2 메시지 구조와 인코딩 오버헤드에 충분한 여유를 제공하기 위해 의도적으로 플랫폼 제한보다 낮게 유지됩니다. 데이터가 구성된 제한을 초과하면 인코딩된 데이터를 여러 메시지로 분할하고 수신 측에서 재구성해야 합니다.
● 비콘 식별 및 응답 귀속
C2 채널은 또한 여러 비콘이 동일한 Telegram 봇 또는 Discord 채널을 공유할 때 제한 사항을 도입합니다. 동일한 봇 또는 채널을 통해 통신하는 모든 비콘은 동일한 통신 경로를 사용하므로, C2 서버는 본질적으로 각 비콘을 독립적인 통신 세션으로 표현할 수 없습니다. 예를 들어, 다섯 개의 비콘이 동일한 Telegram 봇 또는 Discord 채널을 통해 통신하는 경우, 이들은 다섯 개의 독립적으로 식별 가능한 비콘이 아니라 단일 C2 통신 경로로 나타납니다.
동일한 제한이 명령 응답에도 영향을 미칩니다. 명령이 동일한 봇 또는 채널을 통해 여러 비콘에 배포되면, 결과 응답은 동일한 통신 경로를 통해 반환됩니다. 추가적인 비콘 식별 메커니즘이 없으면 C2 서버는 특정 응답을 생성한 비콘을 안정적으로 판별할 수 없습니다.
직접적인 해결책은 Telegram에서 각 비콘에 전용 봇을 할당하거나, Discord에서 각 비콘에 격리된 채널 또는 봇 구성을 할당하는 것입니다. 이는 비콘과 통신 경로 간의 일대일 매핑을 생성하여 개별 비콘과 그 응답을 구별할 수 있게 합니다. 단점은 비콘 수가 증가함에 따라 인프라 및 관리 오버헤드가 증가한다는 것입니다.
이러한 제한 사항은 메시징 플랫폼을 C2 전송 채널로 사용하는 것에 특정하며 비콘 페이로드 자체와는 무관합니다.
● 실질적 영향
메시지 크기 제한은 한 번에 전송할 수 있는 데이터의 양을 줄여 명령을 보내고 출력을 수신하는 데 필요한 시간을 증가시킬 수 있습니다
공유 Telegram 봇 또는 Discord 채널을 사용하면 여러 비콘이 C2 테이블에서 단일 비콘으로 나타나며, 명령은 해당 봇 또는 채널을 사용하는 모든 비콘에 전달되고 응답은 특정 비콘에 안정적으로 귀속될 수 없습니다.
권한이 부여된 적대자 시뮬레이션 훈련 중 피싱 시나리오를 구성하고 관리하기 위한 전용 인터페이스를 통해 스피어 피싱 캠페인을 시뮬레이션합니다. 이 모듈은 피해자 제출 제한, 구성 가능한 피싱 매개변수 및 세션 관리와 같은 캠페인 제어 기능을 제공하여 운영자가 캠페인 동작을 제어하고 시뮬레이션된 피싱 시나리오에 대한 사용자 상호 작용을 평가할 수 있게 합니다. 이는 통제된 피싱 평가를 지원하도록 설계되었으며 운영자에게 캠페인 실행에 대한 더 큰 가시성과 제어를 제공합니다.

구성 가능한 서버 설정과 자동화된 파일 전달 기능을 갖춘 전용 호스트 파일 인터페이스를 통해 파일을 호스팅하고 배포합니다. 호스팅된 파일은 접근 시 사용자 상호 작용이나 수동 다운로드 프롬프트 없이 자동으로 로드됩니다. 이 인터페이스는 통제된 적대자 시뮬레이션 및 권한이 부여된 보안 테스트 워크플로를 위한 중앙 집중식 파일 호스팅 및 전달 관리를 제공합니다.
스크립트 난독화기는 여러 구성 가능한 난독화 계층을 갖춘 PS1, BAT, HTML, VBS, JS 및 PY 페이로드를 지원하는 포괄적인 난독화 엔진을 제공합니다. 여기에는 변수 및 함수 이름 변경, 문자열 암호화, 정크 코드 삽입, 다중 계층 난독화, 안티 디버깅 기법 및 XOR 기반 페이로드 암호화가 포함됩니다. 이러한 기능은 분석 복잡성을 증가시키고 스크립트 가독성을 감소시키며 리버스 엔지니어링을 상당히 어렵게 만드는 동시에 페이로드가 정적 분석을 더 잘 견딜 수 있도록 돕습니다.
BEAR-C2가 개발 과정 전반에 걸쳐 시뮬레이션한 APT 그룹의 전체 목록
| [**Labyrinth Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Labyrinth%20Chollima) [**Velvet Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Velvet%20Chollima) [**Famous Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Famous%20Chollima) [**Stardust Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Stardust%20Chollima) [**Ricochet Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Ricochet%20Chollima) [**Silent Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Silent%20Chollima) |
|
Helix Kitten |