
KHAOS는 엔터프라이즈 네트워크에서 이미 신뢰하는 클라우드 서비스를 통해 에이전트 트래픽을 라우팅하는 현대적인 C2 프레임워크입니다.
에이전트는 C로 작성되었습니다. 간접 시스템 콜(indirect syscall)을 사용하고, 디스크의 새 복사본에서 ntdll을 언후킹하며, 바이트 패칭 대신 하드웨어 중단점을 통해 ETW와 AMSI를 패치하고, sleep 동안 스택을 난독화합니다. 모든 빌드는 문자열 인코딩 키와 자격 증명 XOR을 재생성하므로, 동일한 설정에서 컴파일된 두 바이너리는 정적 시그니처를 공유하지 않습니다.
네트워크 측면에는 5개의 채널이 있습니다: Microsoft Teams, GitHub Gist, DNS-over-HTTPS, HTTP/S, SMB named pipe. 이 중 적어도 하나는 작업 중인 환경에서 이미 정상 트래픽처럼 보일 것이라는 아이디어입니다.
사후 익스플로잇은 일반적인 기능을 포함합니다: 셸, execute-assembly (.NET CLR 인프로세스), BOF/COFF 로딩, 4가지 인젝션 기법, 토큰 도용 및 가장, LSASS 덤프 (직접 시스템 콜), Kerberoasting, AS-REP roasting, SOCKS5, 리버스 포트 포워드, WMI 측면 이동. 별도의 크립터/로더가 필요할 경우 무상태(stageless)를 위해 인메모리 PE 매핑을 처리합니다.
운영자 UI는 React 앱으로, 내장 페이로드 빌더, 실시간 네트워크 맵, 자격 증명 저장소 및 스크린샷 갤러리를 갖추고 있습니다. 모든 항목은 WebSocket을 통해 실시간으로 업데이트됩니다.

| 채널 | 전송 방식 | 혼합 대상 |
|---|---|---|
| Microsoft Teams | HTTPS *.office.com | O365 기업 트래픽 |
| GitHub Gist | REST api.github.com | 개발자 활동 |
| DNS-over-HTTPS | DoH 1.1.1.1 | 암호화된 DNS 쿼리 |
| HTTP/S | HTTPS | 일반 웹 트래픽 |
| SMB Named Pipe | SMB | 내부 측면 이동 |
트래픽은 ChaCha20-Poly1305로 암호화되며, 키 교환은 X25519를 사용하고, 에이전트별 세션별로 고유합니다.
| 범주 | 기능 |
|---|---|
| 실행 | 셸, execute-assembly (.NET CLR 인프로세스), BOF/COFF 로더, 스크린샷 |
| 인젝션 | 원격 스레드, 스레드 하이재킹, EarlyBird APC, 모듈 스톰프, 자체 인젝션 |
| 식별 | 토큰 도용 / 생성 / 되돌리기, getsystem (3가지 기법), UAC 우회 (ICMLuaUtil / fodhelper / sdclt) |
| 자격 증명 | LSASS 덤프 (커스텀 미니덤프), SeBackupPrivilege를 통한 SAM/SYSTEM 하이브, Kerberoast, AS-REP roast |
| 네트워크 | SOCKS5 프록시, 리버스 포트 포워드, SMB 피벗, WMI 측면 이동 |
| 지속성 | 레지스트리 실행 키, 예약 작업 (XML) |
에이전트 PE를 메모리에서 해독하고 반사적으로 매핑하는 로더입니다.
cd crypter
python build.py # bake agent + build loader
python build.py --stager-url https://... # with network stager
git clone https://github.com/28Zaaky/khaos-c2
cd khaos-c2
python3 -m venv venv && source venv/bin/activate
pip3 install -r server/requirements.txt
# install Node.js if missing
sudo apt update && sudo apt install nodejs npm -y
cd ui && npm install && npm run build && cd ..
# TLS cert
openssl req -x509 -newkey rsa:2048 -sha256 -days 365 -nodes \
-keyout server/cert.key -out server/cert.pem -subj "/CN=khaos-c2"
cp server/config.example.yaml server/config.yaml
# edit config.yaml: jwt_secret + http.beacon_url
python3 server/main.py
에이전트는 Windows에서 컴파일한 후 (아래 참조), 대상에 배포합니다.
MYSY2와 MinGW-w64가 필요합니다.
git clone https://github.com/28Zaaky/khaos-c2
cd khaos-c2
# MSYS2 셸 — 빌드 종속성 설치 (최초 1회)
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-mbedtls
# 서버
cd server
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
copy config.example.yaml config.yaml
python main.py
# UI (별도 터미널)
cd ui && npm install && npm run dev # → http://localhost:5173
# 에이전트
.\agent\rebuild_agent.ps1 # make config + make lean 실행, 먼저 실행 중인 에이전트 종료
# 또는: cd agent && make config && make standalone
기본 로그인: operator / changeme
Discord: https://discord.gg/qNeK6cvwSq
승인된 보안 테스트 전용입니다. 본 도구를 소유하지 않거나 명시적인 서면 테스트 허가를 받지 않은 시스템에 사용하는 것은 불법입니다.
제작: 28Zaaky
추신. claude는 코드 리뷰, GitHub 푸시, 코멘트에 사용됩니다. 완전히 AI가 생성한 프로젝트는 아니며, 제 연구에서 비롯되었습니다.