
Cobalt Strike의 Malleable C2 오픈 소스 구현
Cobalt Strike의 Malleable C2 오픈 소스 구현
OpenMalleableC2는 HTTP 변환을 위해 Cobalt Strike의 Malleable C2 프로파일 형식을 구현하는 프레임워크 독립적인 라이브러리입니다. 보안 연구원과 레드팀이 사용자 정의 도구 및 C2 프레임워크에서 쉽게 malleable C2 통신을 구현할 수 있도록 지원합니다.
이를 통해 Malleable C2 프로파일을 완전히 활용하여 HTTP를 통해 임의의 데이터를 투명하고 (가급적) 안정적인 방식으로 전송할 수 있습니다.
HTTP 트래픽 사용자 정의 기능을 다양한 수준으로 제공하는 많은 오픈 소스 C2 프레임워크가 있습니다. 그러나 Mythic, Havoc, Adaptix 등과 같이 더 발전된 프레임워크조차도 콜백 데이터를 그럴듯하게 무해한 HTTP 요청에 임베딩하는 측면에서 Cobalt Strike의 Malleable C2가 허용하는 HTTP 트래픽 사용자 정의의 깊이에 미치지 못합니다. 이 프로젝트의 목표는 오픈 소스 도구가 Malleable C2 시스템의 사용자 정의 깊이와 이에 의존하는 기존 리소스(예: 프로파일, 프로파일 생성기 도구 등) 모두를 활용할 수 있도록 하는 것입니다.
대부분 작동하지만 현재 안정성에 대해서는 보장하지 않습니다. 버그를 발견하면 신고해 주세요 :)
제공된 예제는 일반적인 Beacon 콜백을 보여주는 간단한 "핑퐁" 에이전트 및 서버입니다. 에이전트는 작업(taskings)을 위해 GET 콜백을 전송한 후, 작업 출력을 서버에 게시하기 위해 POST 콜백을 전송합니다.
이 예제에서 작업은 단순한 자리 표시자 무작위 문자열이며, 에이전트가 이를 검색하여 뒤집고 결과로 다시 게시합니다. 서버는 뒤집힌 문자열이 올바른지 확인하고 그에 따라 응답을 보냅니다.
핑퐁 예제 실행:
# Python 서버 시작
python Server\Python\examples\pingpong_server.py profiles\gmail.profile
# 또는 Go 서버 시작
cd Server\Go
go run .\cmd\pingpong-server ..\..\profiles\gmail.profile
# 에이전트 실행 (다른 터미널에서)
.\Client\C\examples\pingpong_agent.exe profiles\gmail.profile
C 클라이언트 예제 빌드:
cd Client\C\examples
build.bat
저장소 레이아웃:
Client\C\lib C 클라이언트 라이브러리
Client\C\examples C 핑퐁 에이전트 예제
Server\Python\lib Python 서버 라이브러리
Server\Python\examples Python 핑퐁 서버 예제
Server\Go\openmalleable Go 서버 라이브러리
Server\Go\cmd\pingpong-server Go 핑퐁 서버 예제
예제 출력:
pingpong_server.py:
