1. Malleable C2 프로필의 개념 및 HTTP 통신 패턴 학습
1.1. Malleable C2 프로필의 개념과 중요성
- 정의
- Cobalt Strike와 같은 공격 시뮬레이션 도구에서 사용하는 구성 스크립트로, Beacon과 C2 서버 간의 통신 패턴을 정의합니다.
- Beacon의 통신 동작, 타이밍, 패턴 등을 공격자가 원하는 대로 커스터마이징할 수 있습니다.
- 중요성
- 탐지 회피: 정상적인 웹 트래픽과 유사하게 위장하여 보안 솔루션과 네트워크 모니터링 도구의 탐지를 회피할 수 있음
- 유연성: 다양한 환경에 맞춰 통신 패턴을 조정함으로써 Red Teaming이나 모의 침투 테스트 시 유연한 대응이 가능
- 정밀 제어: Beacon의 통신 타이밍, HTTP 헤더, URI, 사용자 에이전트 등을 세밀하게 설정하여 고급 위장 기법을 구현
- 프로필 작성 문법 및 구조
- 문법: 일반적으로 키-값 쌍 또는 스크립트 형식의 구문을 따르며, 각 설정 항목은 정해진 규칙에 따라 작성됨
- 구조 예시:
- 전역 설정: 통신 주기, 무작위 지연(jitter) 등의 기본 동작 설정
- 통신 파라미터 설정: HTTP 헤더, URI, 사용자 에이전트 등 구체적인 통신 요소 정의
- 위장 및 변형 규칙: 트래픽 위장 기법, 암호화 방식 등 추가적인 설정
1.2. HTTP 통신 패턴의 기본 개념
- HTTP 통신 개요
- 기본 동작: 클라이언트가 HTTP 요청을 보내면 서버가 이에 대해 응답을 반환하는 기본 프로토콜 구조
- 핵심 요소:
- HTTP 헤더: 요청 및 응답에 포함되는 메타데이터 (예:
Content-Type
,Accept
,Cookie
등) - URI: 요청 대상 리소스의 경로
- 사용자 에이전트: 클라이언트의 환경(브라우저, OS 등)을 나타내며, 서버가 맞춤형 응답을 제공할 수 있도록 함
- HTTP 헤더: 요청 및 응답에 포함되는 메타데이터 (예:
- 트래픽 위장 기법
- 목표: 악의적인 Beacon 통신이 정상적인 웹 트래픽으로 오인되도록 설정
- 적용 방법:
- HTTP 헤더, URI, 사용자 에이전트를 실제 웹 브라우저 요청과 유사하게 구성
- GET/POST 요청의 패턴, 데이터 크기 및 전송 주기를 정상 트래픽과 유사하게 설정
2. 통신 패턴 커스터마이징 (HTTP 헤더, URI, 사용자 에이전트 등)
2.1. HTTP 통신 커스터마이징의 주요 항목
- HTTP 헤더
- 역할: 클라이언트와 서버 간의 추가 정보를 전달하며, 이를 통해 통신을 위장할 수 있음
- 커스터마이징 예시:
Host
,Accept
,Accept-Language
,Cache-Control
등의 헤더를 실제 브라우저 요청과 유사하게 설정- 가짜 쿠키 값 또는 인증 토큰 삽입
- URI
- 역할: Beacon 통신 요청이 웹 애플리케이션의 특정 리소스 요청으로 보이게 구성
- 커스터마이징 예시:
/index.php
,/api/v1/data
등 정상적인 웹 경로 사용- 동적 파라미터 추가로 다양성과 위장 효과 강화
- 사용자 에이전트
- 역할: 클라이언트의 소프트웨어 환경을 나타내어, 이를 조작하면 특정 브라우저나 운영체제의 요청처럼 위장 가능
- 커스터마이징 예시:
- Chrome, Firefox, Edge 등의 실제 사용자 에이전트 문자열 사용
- 모바일 기기 혹은 데스크탑 환경을 모방하는 문자열 적용
2.2. 프로필 작성 문법 및 구조
- 문법 개요
- Malleable C2 프로필 예시
- 구조 설명:
- 전역 설정: Beacon의 통신 주기, jitter 등의 기본 동작 파라미터 설정
- 프로토콜 정의 블록: HTTP GET/POST 요청에 대한 URI, 헤더, 서버 응답 코드 및 헤더 설정
- 작성 팁
- 모듈화: 각 프로필 요소를 함수화 또는 모듈화하여 재사용성을 높임
- 주석 활용: 설정 항목마다 주석을 추가하여 동작 원리와 목적을 명확히 기록
set sleeptime 1000 // Beacon 통신 주기를 1000ms로 설정
set jitter 20 // 통신 주기에 20% 무작위 지연 적용
http-get {
set uri "/api/v1/data"
client {
header "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
header "Accept: */*"
}
server {
code 200
header "Content-Type: application/json"
}
}
2.3. 프로필 검증 및 테스트 방법
- 테스트 환경 구성
- 안전한 테스트 네트워크: 가상 머신(VM)이나 격리된 환경에서 Beacon 통신 테스트 진행
- 모의 서버 구성: Beacon 통신을 수신할 수 있는 테스트용 Listener 구성
- 프로필 검증 절차
- 로그 분석: Beacon 실행 후 생성되는 로그를 통해 HTTP 요청이 의도대로 전송되는지 확인
- 네트워크 모니터링: Wireshark 등 네트워크 분석 도구를 사용하여 실제 전송된 HTTP 패킷의 헤더, URI, 사용자 에이전트 검증
- 반응성 테스트: 테스트용 C2 서버에서 응답을 정상적으로 수신하는지 확인하여 프로필의 완성도 평가
- 검증 및 개선
- 문제점 파악: 테스트 결과에서 이상 동작이나 패턴 불일치 여부를 점검
- 피드백 반영: 테스트 결과를 바탕으로 프로필을 업데이트하고 최적화
📎 참고 자료
- Cobalt Strike Malleable C2 프로필 작성 가이드
- HTTP 트래픽 위장 및 위장 기법 관련 보안 연구 자료
- Wireshark 공식 홈페이지 및 튜토리얼
'Univ' 카테고리의 다른 글
[2024 동계 모각코] 2025-01-28(화) 결과 (0) | 2025.01.28 |
---|---|
[2024 동계 모각코] 2025-01-28(화) (0) | 2025.01.28 |
[2024 동계 모각코] 2025-01-21(화) (0) | 2025.01.21 |
[2024 동계 모각코] 2025-01-14(화) 결과 (0) | 2025.01.14 |
[2024 동계 모각코] 2025-01-14(화) (0) | 2025.01.14 |