Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
C2concealer — Cobalt Strike를 위한 무작위화되고 린트 검증된 C2 유연한 프로파일을 생성하며, HTTP/S, DNS, SMB 및 SSH 비콘 구성을 자동화하고 사용자 정의 가능한 IOC 무작위화를 제공합니다. | Kitploit
도구/GitHubGitHub/redsiege/c2concealer
Penetration Testing FrameworksPayload GenerationCommand and ControlRed Teaming
GitHubredsiege/c2concealer

C2concealer

Cobalt Strike를 위한 무작위화되고 린트 검증된 C2 유연한 프로파일을 생성하며, HTTP/S, DNS, SMB 및 SSH 비콘 구성을 자동화하고 사용자 정의 가능한 IOC 무작위화를 제공합니다.

저장소 보기
1.1k172396개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

C2concealer

C2concealer는 Cobalt Strike에서 사용할 무작위 C2 변형 프로필을 생성하는 명령줄 도구입니다.

설치

git clone https://github.com/RedSiege/C2concealer.git
cd C2concealer
python3 -m venv .venv
source .venv/bin/activate
pip3 install -e .

Docker 설치

Docker 지침을 참조하세요.

사용 예시

Usage:
	$ C2concealer --hostname google.com --variant 3

Flags:
	
	(optional)
	--hostname 
		HTTP 클라이언트 및 서버 측 설정에 사용되는 호스트 이름입니다. 기본값은 None입니다.
	--variant 
		생성할 HTTP 클라이언트/서버 변형의 수를 정의하는 정수입니다.
		1에서 5 사이를 권장합니다. 최대 10.

콘솔 출력 예시

root@kali:~# C2concealer --variant 1 --hostname google.com
[i] 시스템에서 c2lint 도구(Cobalt Strike의 일부)를 검색 중입니다. 10~20초 정도 소요될 수 있습니다.
[i] /opt/cobaltstrike/c2lint 디렉터리에서 c2lint를 찾았습니다.

SSL 옵션을 선택하세요:
1. 자체 서명 SSL 인증서(몇 가지 세부 정보만 입력)
2. LetsEncrypt SSL 인증서(관련 도메인의 임시 A 레코드를 이 머신으로 가리켜야 함)
3. 기존 키스토어
4. SSL 없음

[?] 옵션 [1/2/3/4]:

팁: 항상 SSL 인증서를 사용하세요. 가급적이면 LetsEncrypt 또는 유사한 기관의 인증서를 권장합니다. 팁: HTTP 변형을 사용하면 서로 다른 비콘에서 HTTP 트래픽에 대해 다른 IOC를 선택할 수 있습니다. 최소 1 이상의 값을 권장합니다.

작동 방식

Cobalt Strike 문서를 꼼꼼히 살펴보고 각 프로필 속성에 적합한 값의 범위를 정의했습니다. 때로는 해당 데이터가 단순히 특정 범위 내의 무작위 정수일 수도 있고, Python 딕셔너리에서 무작위 값을 선택해야 하는 경우도 있습니다. 어쨌든, 도구 생성을 시작할 때 유효한 프로필을 만드는 데이터를 정의하는 것부터 시작했습니다.

그런 다음 각 malleable 프로필 섹션(또는 블록)을 별도의 .py 파일로 나누었습니다. 각 파일에는 각 속성에 대해 무작위 적절한 값을 선택한 다음 해당 프로필 블록에 대한 형식화된 문자열을 출력하는 로직이 포함되어 있습니다. 모든 프로필 블록을 연결하고, 몇 가지 간단한 일관성 검사를 수행한 다음, Cobalt Strike 린터(c2lint)를 통해 프로필을 실행합니다. 출력되는 프로필은 사용자의 업무에 작동해야 합니다. 캠페인을 실행하기 전에 항상 프로필(프로세스 인젝션 및 스포닝 포함)을 테스트할 것을 권장합니다.

코드를 살펴보려면 다음 두 파일부터 시작하는 것이 좋습니다: /C2concealer/main.py 및 /C2concealer/profile.py. 주석을 검토한 후 /C2concealer/components 폴더에 있는 개별 프로필 블록 생성기를 확인하세요.

도구 커스터마이징

이것은 매우 중요합니다. 이는 오픈 소스 도구입니다. 벤더는 이 도구가 생성하는 프로필에 대한 서명을 쉽게 작성할 수 있습니다. 이 도구를 실행하는 것은 Cobalt Strike malleable 프로필을 구축하기 위한 훌륭한 시작점을 제공하지만, 생성된 프로필을 채우는 데 사용되는 데이터를 커스터마이징하려면 다음 영역을 자세히 살펴보는 것이 좋습니다:

/C2concealer/data/

  • dns.py (DNS 서브도메인 커스터마이징)
  • file_type_prepend.py (http-get-server 응답 모양 커스터마이징 ... 즉, C2 제어 명령)
  • params.py (일반적인 매개변수 이름과 일반 단어 목록을 포함하는 두 개의 딕셔너리)
  • post_ex.py (spawn_to 프로세스 목록... 반드시 변경하세요)
  • reg_headers.py (user-agent 및 server와 같은 일반적인 HTTP 헤더)
  • smb.py (통신이 SMB를 통해 이루어질 때 사용되는 SMB 파이프 이름)
  • ssh.py (SSH 비콘 사용 시 SSH 파이프 및 배너 이름)
  • stage.py (스테이저와 관련된 IOC 변경 데이터)
  • transform.py (페이로드 데이터 변환... 변경할 필요 없음)
  • urls.py (URI 구축에 사용되는 파일 형식 및 URL 경로 구성 요소... 반드시 변경하세요)

또한 프로필 생성 프로세스 전반에 걸쳐 다양한 속성을 커스터마이징할 수 있습니다. 예를 들어 /C2concealer/components/stageblock.py 파일에서 PE 이미지 크기 값이 추출되는 범위(73-74행 근처)를 변경할 수 있습니다. components 디렉터리의 모든 파일을 살펴보시기 바랍니다.

여기까지 오셨다면, 이 도구를 유용하게 사용하실 수 있을 것입니다. 이 도구를 보는 권장 방식은 프로필을 자동으로 생성하는 뼈대 코드를 구축했다는 것입니다. 이제 여러분의 캠페인에 각 속성에 적합한 값을 생각하고 데이터 소스를 업데이트하는 것은 여러분의 몫입니다.

프로필 추가 커스터마이징

Malleable C2 프로필 언어에 대해 가능한 많은 옵션을 다루었지만, 설정하지 않은 옵션도 많이 있습니다. Malleable Command and Control 문서를 참조하여 프로필을 수정할 것을 적극 권장합니다.

다음 옵션은 설정되지 않았거나 C2concealer에 의해 정적으로 설정되었으므로 변경을 고려해야 합니다.

http-config 블록

누락된 옵션참고
set block_useragents비콘이 아닌 UA 패턴 차단
set allow_useragentsUA 패턴 허용 목록(CS 4.3+)

stage 블록

누락된 옵션참고
set allocator하드코딩된 VirtualAlloc; HeapAlloc, MapViewOfFile 무작위화 누락
set magic_mz_x86 / magic_mz_x64MZ 헤더 스푸핑
set magic_pePE 마커 스푸핑
set rich_header컴파일러 메타데이터 스푸핑
set module_x86 / module_x64모듈 스톰핑
set copy_pe_header—
set data_store_size—
set eaf_bypassEAT 검사 우회
set syscall_methodNone/Direct/Indirect (CS 4.8+)
set rdll_loaderPrependLoader/StompLoader
set rdll_use_syscalls—
set rdll_use_driploading—
set rdll_dripload_delay—
transform-obfuscate 블록base64, lznt1, rc4, xor 옵션이 완전히 없음
transform-x86/x64의 appendprepend와 strrep만 사용됨

process-inject 블록

누락된 옵션참고
set allocator하드코딩된 VirtualAllocEx; NtMapViewOfSection 무작위화 누락
set use_driploading—
set dripload_delay—
transform-x86/x64의 appendprepend만 사용됨
Execute: NtQueueApcThread실행 블록에 없음
Execute: NtQueueApcThread-s실행 블록에 없음
Execute: ObfSetThreadContext실행 블록에 없음
Execute: SetThreadContext실행 블록에 없음
실행 함수 스푸핑module!function+0x## 구문이 지원되지 않음

post-ex 블록

누락된 옵션참고
set pipename사후 실행 작업을 위한 명명된 파이프

dns-beacon 블록

누락된 옵션참고
set ns_responsedrop/idle/zero NS 처리. 설정하지 않으면 기본값은 drop.
set dns_stager_prepend스테이징된 페이로드 앞에 데이터 추가

데이터 변환 (모든 변환 컨텍스트)

누락된 변환참고
lznt1압축 - 어떤 인코딩 체인에도 없음
rc4 "key"암호화 - 어떤 인코딩 체인에도 없음
xor "key"XOR - 어떤 인코딩 체인에도 없음
uri-append종료 문 - 구현되지 않음

감사 인사

Raphael Mudge에게 malleable 프로필 기능 세트와 이를 학습할 수 있는 문서를 지속적으로 개선해 준 것에 대해 큰 감사를 전합니다. 또한, CS 팀 서버를 위한 LetsEncrypt 인증서 생성을 자동화하는 스크립트를 제공한 @killswitch-GUI에게도 큰 감사를 드립니다. 마지막으로, 작업을 훨씬 수월하게 해준 두 블로그 게시물: @bluescreenofjeff의 글(https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/)과 Joe Vest의 글(https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b)에 감사드립니다.

버전 변경 내역

버전 1.0

  • FortyNorth Security의 내부 도구 공개 버전.
  • CS 4.0 지원 추가(특히 여러 HTTP 변형)
  • README.md 업데이트

버전 1.1

  • CS 4.12에서 지원하는 프로필 옵션 포함하도록 업데이트
  • 브라우저 UA 문자열 업데이트
  • 현대적으로 흔히 볼 수 있는 쿠키로 쿠키 문자열 업데이트
  • SSH 배너 및 SSH 파이프 이름 옵션 추가
  • Docker 설치 안내 업데이트
  • Let's Encrypt 지원 수정
도구 다운로드