Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SourcePoint — Cobalt Strike용 다형성 C2 프로필 생성기로, HTTP, DNS 및 프로세스 인젝션을 위한 무작위 옵션으로 탐지를 회피하는 비콘 구성을 자동으로 생성합니다. | Kitploit
도구/GitHubGitHub/tylous/sourcepoint
Exploit FrameworksPayload GenerationCommand and ControlRed Teaming
GitHubtylous/sourcepoint

SourcePoint

Cobalt Strike용 다형성 C2 프로필 생성기로, HTTP, DNS 및 프로세스 인젝션을 위한 무작위 옵션으로 탐지를 회피하는 비콘 구성을 자동으로 생성합니다.

저장소 보기
1.2k1701년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SourcePoint

SourcePoint은 Cobalt Strike C2를 위한 다형성 C2 프로필 생성기로, Go로 작성되었습니다. SourcePoint를 사용하면 고유한 C2 프로필을 즉석에서 생성할 수 있어 손상 지표(IoC)를 줄이고 운영자가 최소한의 노력으로 복잡한 프로필을 구축할 수 있습니다. 이는 문서 및 패치 노트를 광범위하게 검토하여 핵심 기능과 수정 가능한 특징을 식별함으로써 이루어졌습니다. SourcePoint는 C2 활동을 탐지하기 어렵게 만드는 문제를 해결하기 위해 설계되었으며, 악성 IoC에서 의심스러운 IoC로 초점을 이동하는 데 중점을 두고 있습니다. 목표는 IoC가 본질적으로 악성이 아니고 의심스러운 성격을 발견하기 위해 추가 조사가 필요하다면 C2를 탐지하기 더 어렵게 만드는 것입니다. SourcePoint에는 프로필을 수정하기 위해 선택할 수 있는 다양한 구성 옵션이 포함되어 있습니다(대부분의 경우 비워두면 SourcePoint가 무작위로 선택합니다). 생성된 프로필은 C2의 모든 측면을 수정합니다. 이 프로젝트의 목표는 탐지 기반 통제를 우회하는 데 도움을 줄 뿐만 아니라 C2 트래픽과 활동을 환경에 자연스럽게 섞이게 하여 해당 활동을 탐지하기 어렵게 만드는 것입니다.

root@kitploit:~
go install github.com/Tylous/SourcePoint

설치

root@kitploit:~
$go get gopkg.in/yaml.v2

$go build SourcePoint.go

사용법

root@kitploit:~
#./SourcePoint -h

	   _____                            ____        _       __
	  / ___/____  __  _______________  / __ \____  (_)___  / /_
	  \__ \/ __ \/ / / / ___/ ___/ _ \/ /_/ / __ \/ / __ \/ __/
	 ___/ / /_/ / /_/ / /  / /__/  __/ ____/ /_/ / / / / / /_
	/____/\____/\__,_/_/   \___/\___/_/    \____/_/_/ /_/\__/
  							(@Tyl0us)

                                                                                                                        
사용법: ./SourcePoint:
  -Allocation string
        주입된 콘텐츠에 요청할 최소 메모리 양 (4096보다 커야 함)
  -BeaconGate string
        비콘 게이트 옵션 지정 (All, Comms, Core, Cleanup) 또는 특정 API
  -CDN string
        CDN 쿠키 이름 (일반적으로 AzureEdge 프로필에 사용)
  -CDN-Value string
        CDN 쿠키 값 (일반적으로 AzureEdge 프로필에 사용)
  -Customuri string
        사용자 정의 HTTP GET/POST 프로필의 기본 URI - CustomuriGET 또는 CustomuriPOST와 함께 사용할 수 없음
  -CustomuriGET string
        사용자 정의 HTTP GET 프로필의 기본 URI - CustomuriPOST와 함께 사용해야 함
  -CustomuriPOST string
        사용자 정의 HTTP POST 프로필의 기본 URI - CustomuriGET와 함께 사용해야 함
  -Datajitter string
        HTTP-Get 및 HTTP-Post 서버 출력에 값을 추가 (기본값 "50")
  -Forwarder
        X-forwarded-For 헤더 활성화 (C2가 리디렉터 뒤에 있을 때 유용)
  -Host string
        팀 서버 도메인 이름
  -Httplib string
        기본 HTTP 비콘 라이브러리 선택:
        [*] wininet
        [*] winhttp (기본값 "winhttp")
  -Injector string
        원격 프로세스에서 메모리를 할당하는 방법 선택:
        [*] VirtualAllocEx (크로스 아키텍처, 즉 x86 -> x64 및 x64->x86에 적합)
        [*] NtMapViewOfSection (더 은밀한 옵션이지만 VirtualAllocEx로 대체되며, 그렇게 되면 더 많은 이벤트가 발생)
  -Jitter string
        비콘 홈 콜백에 대한 지터 비율
  -Keylogger string
        비콘이 키 입력을 기록하는 방법 선택:
        [*] GetAsyncKeyState (GetAsyncKeyState API 사용 (x86/x64 프로세스용 개별 DLL))
        [*] SetWindowsHookEx (SetWindowsHookEx API 사용)
  -Keystore string
        SSL 키스토어 이름
  -Metadata string
        메타데이터를 변환하여 HTTP 요청에 포함하는 방법 지정:
        [*] base64
        [*] base64url
        [*] netbios
        [*] netbiosu (기본값 "base64url")
  -Outfile string
        출력 파일 이름
  -PE_Clone string
        비콘이 모방할 PE 파일 (숫자 사용):
        [1] ActivationManager.dll
        [2] audioeng.dll
        [3] AzureSettingSyncProvider.dll
        [4] BingMaps.dll
        [5] DIAGCPL.dll
        [6] EDGEHTML.dll
        [7] FILEMGMT.dll
        [8] FIREWALLCONTROLPANEL.dll
        [9] GPSVC.dll
        [10] gpupvdev.dll
        [11] libcrypto.dll
        [12] srvcli.dll
        [13] srvsvc.dll
        [14] Windows.Storage.Search.dll
        [15] Windows.System.Diagnostics.dll
        [16] Windows.System.Launcher.dll
        [17] Windows.System.SystemManagement.dll
        [18] Windows.UI.BioFeedback.dll
        [19] Windows.UI.BlockedShutdown.dll
        [20] Windows.UI.Core.TextInput.DLL
        [21] winsqlite3.dll
        [22] WMNetMgr.DLL
        [23] wwanapi.dll
        [24] WWANSVC.DLL
        [25] wow64win.dll
        [26] wow64.dll
        [27] ctiuser.dll (Carbon Black의 DLL)
        [28] InProcessClient.dll (SentinelOne의 DLL)
        [29] umppc.dll (CrowdStrike의 DLL)
        [30] CyMemDef64.dll (Cylance의 DLL)
  -Password string
        SSL 인증서 비밀번호
  -PostEX_Name string
        Post-Exploitation 활동이 생성되고 주입될 파일 (숫자 사용):
        [1] WerFault.exe
        [2] WWAHost.exe
        [3] choice.exe
        [4] bootcfg.exe
        [5] dtdump.exe
        [6] expand.exe
        [7] fsutil.exe
        [8] gpupdate.exe
        [9] gpresult.exe
        [10] logman.exe
        [11] mcbuilder.exe
        [12] mtstocom.exe
        [13] pcaui.exe
        [14] powercfg.exe
        [15] svchost.exe
  -Profile string
        HTTP GET/POST 프로필 (숫자 사용):
        [1] Windowsupdate
        [2] Slack
        [3] Gotomeeting
        [4] Outlook.Live
        [5] Safebrowsing [Cloudfront 호환]
        [6] AzureEdge [AzureEdge 호환]
        [7] Field-Keyword [Cloudfront 호환]
        [8] 사용자 정의 (ProfilePath와 함께 사용)
  -ProfilePath string
        사용자 정의 HTTP GET/POST 프로필의 경로...
  -Sleep string
        초기 비콘 절전 시간
  -Stage string
        호스트 스테이징 비활성화 (기본값: False) (기본값 "false")
  -Syscall string
        표준 Windows API 함수 호출 대신 직접/간접 시스템 호출 사용 기능 정의:
        [*] None
        [*] Direct
        [*] Indirect (기본값 "None")
  -TasksDnsProxyMaxSize string
        DNS 통신 채널을 통해 체크인 시 전송할 프록시 데이터의 최대 크기 (바이트)
  -TasksMaxSize string
        통신 채널을 통해 체크인 시 전송할 작업 및 프록시 데이터의 최대 크기 (바이트)
  -TasksProxyMaxSize string
        통신 채널을 통해 체크인 시 전송할 프록시 데이터의 최대 크기 (바이트)
  -ThreadSpoof
        Post-Exploitation DLL이 스푸핑된 시작 주소로 스레드를 생성하도록 설정 (무작위로 생성됨) (기본값 true)
  -Uri string
        비콘이 선택할 URI의 개수
  -Useragent string
        비콘이 사용할 UserAgent 문자열 (비워두면 무작위 선택):
        [*] Win10Chrome
        [*] Win10Edge
        [*] Win10IE
        [*] Win10
        [*] Win6.3
        [*] Linux
        [*] Mac
  -Yaml string
        Yaml 구성 파일 경로

중요 사항

SourcePoint는 주로 프로필의 빌드 과정을 자동화합니다. 이러한 프로필에서 수정된 모든 기능을 아는 것이 매우 중요합니다. 이러한 기능을 알면 성공 가능성을 크게 높일 수 있습니다.

옵션

SourcePoint의 도움말 기능에 설명된 많은 설정과 기능 외에도, 각 프로필에 내장된 몇 가지 중요한 기능이 있으므로 숙지하는 것이 중요합니다. 이러한 기능은 다음과 같습니다.

전역 옵션

프로필의 이 부분은 비콘이 작동하는 방식을 수정합니다. 동작을 수정하는 데 사용되는 일부 기능은 다음과 같습니다.

  • Host Stage - 팀 서버가 HTTP, HTTPS, DNS에 대한 스테이징된 셸코드를 호스팅할 수 있도록 합니다. 이 기능이 활성화되면 /9ZXq와 같은 특정 값을 가진 GET 요청을 보내는 누구나 셸코드를 가져올 수 있습니다.
  • Sleep - 비콘이 홈 콜백하는 시간 간격
  • Jitter - 비콘 홈 콜백 시간에 지터 비율을 추가
  • Useragent - HTTP 및 HTTPS 트래픽 통신 시 사용되는 UserAgent 문자열. 적절한 UserAgent 문자열을 사용하면 환경에 자연스럽게 섞이는 데 도움이 됩니다.
  • Data Jitter - 모든 GET 및 POST 요청에 무작위 길이 문자열을 추가하여 들어오는 요청의 길이가 동일하지 않도록 합니다.
  • SMB Frame Header - SMB 비콘 메시지에 헤더 값을 추가
  • Pipename - 비콘이 통신에 사용할 SMB 파이프 이름 설정
  • Pipename Stager - 비콘을 위한 SMB 스테이저 이름 설정
  • TCP Frame Header - TCP 비콘 메시지에 헤더 값을 추가
  • SSH Banner - 사용되는 SSH 배너
  • SSH Pipename - SSH 배너에 사용되는 이름
  • HttpLib - 라이브러리 속성은 프로필에서 생성된 비콘이 사용하는 기본 라이브러리를 지정할 수 있게 합니다. 값은 "wininet" 또는 "winhttp"일 수 있습니다.

스테이지

프로필의 이 부분은 비콘이 메모리에 로드되는 방식과 비콘 DLL의 콘텐츠를 편집하는 방법을 제어합니다. 동작을 수정하는 데 사용되는 일부 기능은 다음과 같습니다.

  • Obfuscate - 반사 DLL의 가져오기 테이블을 난독화
  • Stomppe - 페이로드가 로드된 후 MZ, PE 및 e_lfanew 값을 덮어쓰도록 요청
  • Clean up - 비콘이 초기화한 반사 DLL과 관련된 메모리를 해제하도록 지시
  • UseRWX - 셸코드가 읽기, 쓰기, 실행 권한을 사용하지 않도록 보장
  • Magic_MZ - 비콘의 반사 DLL의 첫 번째 바이트(MZ 헤더 포함)를 재정의 (현재 x64만 해당)
  • Magic_PE - 비콘의 반사 로더가 사용하는 PE 문자 표시자를 다른 값으로 재정의
  • Syscall - 표준 Windows API 함수 대신 시스템 호출을 사용할 수 있는 기능 정의
  • Smart Inject - 포함된 함수 포인터 힌트를 사용하여 kernel32 EAT를 탐색하지 않고 비콘 에이전트를 부트스트랩
  • Sleep Mask - TCP 및 SMB 비콘은 연결이 설정될 때까지 대기하는 동안 유휴 상태에서 자신을 난독화
  • PE Header - 비콘 반사 DLL의 특성을 변경하여 메모리에서 다른 것으로 보이게 함
  • Transformation - 비콘의 반사 DLL 스테이지에서 문자열을 제거하거나 추가하여 .rdata를 변환

프로세스 인젝션

프로필의 이 부분은 비콘이 주입된 콘텐츠의 형태를 결정하고 프로세스 인젝션 동작을 제어합니다. 동작을 수정하는 데 사용되는 일부 기능은 다음과 같습니다.

  • Allocator - 비콘의 반사 로더가 메모리를 할당하는 방법 결정
  • Minimum Allocation - 주입된 콘텐츠에 요청할 최소 메모리 양
  • Userwx - 셸코드가 읽기, 쓰기, 실행 권한을 사용하지 않도록 보장 (대안은 RW)
  • Startrwx - 주입된 콘텐츠에 초기 권한으로 읽기, 쓰기, 실행 사용 (대안은 RW)
  • Transformer - 비콘에 의해 주입된 패딩 콘텐츠 블록 추가
  • Execute - 이 섹션은 주입된 코드를 실행하는 방법을 결정

Post-Exploitation

프로필의 이 부분은 비콘이 포스트 익스플로잇 모듈과 명령을 처리하는 방법을 제어합니다. 동작을 수정하는 데 사용되는 일부 기능은 다음과 같습니다.

  • Spawnto - 비콘이 포스트 익스플로잇 명령 및 옵션을 위해 생성할 기본 임시 프로세스 결정
  • Obfuscate - 반사 DLL의 가져오기 테이블을 난독화
  • Smart Inject - 비콘에서 자식 작업으로 키 함수 포인터 전달
  • AMSI disable - powerpick, execute-assembly, psinject에 대해 AMSI 비활성화 (일부 EDR은 이를 감지할 수 있으므로 이러한 도구 사용을 피하는 것이 좋음)
  • Keylogger - 키 입력을 캡처하는 데 사용되는 키로거 API 방법 결정
  • Cleanup - Post-Exploitation DLL이 로드될 때 Post-Exploitation 사용자 정의 반사 DLL(UDRL) 메모리를 정리
  • Threadhint - Post-Exploitation DLL이 스푸핑된 시작 주소로 스레드를 생성할 수 있도록 함

프로필

현재 SourcePoint는 기존 프로필을 기반으로 HTTP/HTTPS 트래픽 프로필에 대해 7가지 내장 옵션을 제공합니다. 이 중 6개는 다음에 영향을 받고 기반을 둡니다.

  • Microsoft Windows 업데이트 통신
  • Slack 메시지 통신
  • Gotomeeting 활성 회의 통신
  • Microsoft Outlook 이메일 통신

프로필 옵션 중 3개(5, 6, 7)는 특히 다음을 위해 설계되었습니다.

  • Cloudfront.net
  • AzureEdge.net

마지막 옵션(8)은 사용자 정의 프로필을 입력하도록 설계되었습니다. 이 옵션은 운영자가 완전히 사용자 정의된 트래픽 프로필을 활용할 수 있도록 합니다. 완전히 고유한 트래픽 프로필이 이러한 프로필 중 하나보다 높은 성공을 거둘 수 있는 경우가 많습니다. 또한 운영자가 자신이 선호하는 트래픽 프로필과 함께 SourcePoint의 가단성 기능을 계속 사용할 수 있도록 합니다. 고유한 프로필을 허용하므로 SourcePoint가 작동하도록 프로필을 조정하고 조정하는 것이 중요합니다. 최소한 다음을 수행해야 합니다.

  • header "Host" "acme.com";를 header "Host" "{{.Variables.Host}}";로 바꾸기
  • GET 필드 아래의 /pathtolegitpage/를 {{.Variables.HTTP_GET_URI}}로 바꾸기
  • POST 필드 아래의 /pathtolegitpage/를 {{.Variables.HTTP_POST_URI}}로 바꾸기

이를 위해 -Customuri 및 -ProfilePath 옵션을 -Profile 8과 함께 사용하십시오. GET 및 POST에 다른 URI 기준을 사용하려면 -Customuri 대신 -CustomuriGET 및 -CustomuriPOST를 사용해야 합니다. 프로필을 개발하는 동안 기본 ./c2lint를 사용하여 모든 것이 작동하는지 확인하는 것이 좋습니다.

샘플 예제

이러한 옵션을 하나의 프로필에 결합하면 예방 및 탐지 제어를 우회할 수 있는 매우 효과적인 비콘을 만들 수 있습니다. 이는 진화하는 고양이와 쥐 게임이지만, 특정 보안 스택에 대해 올바른 옵션을 결합하면 상당히 효과적일 수 있습니다.

샘플 Yaml 구성

root@kitploit:~
Stage: "False"
Host: "acme-email.com"
Keystore: "acme-email.com.store"
Password: "Password"
Metadata: "netbios"
Injector: "VirtualAllocEx"
Outfile: "acme.profile"
PE_Clone: 20
Profile: 4
Allocation: 5312
Jitter: 30
Debug: true
Sleep: 35
Uri: 3
Useragent:  "Mac"
Post-EX Processname: 11
Datajitter: 40
Keylogger: "SetWindowsHookEx"
Customuri: 
CDN:
CDN_Value: 
ProfilePath: 
Syscall_method:
Httplib:
ThreadSpoof: true
Customuri: 
CustomuriGET: 
CustomuriPOST:
Forwarder: False
TasksMaxSize: 
TasksProxyMaxSize:
TasksDnsProxyMaxSize: 

SSL 인증서

프로필 모드 1-4는 유효한 SSL 없이 사용할 수 있으며, SourcePoint는 프로필 유형과 관련된 자체 서명 인증서를 생성합니다. 그러나 유효한 SSL 인증서는 모든 유형의 C2 성공에 매우 중요합니다. 여러 이유가 있지만, 당연히 인증서가 없으면 트래픽이 암호화되지 않습니다(즉, HTTP는 절대 사용해서는 안 됨). 그러나 자체 서명 인증서를 사용하면 명백한 한계가 있습니다. 유효한 SSL 인증서를 얻어 키스토어를 만드는 방법은 여러 가지가 있으며, 제가 주로 사용하는 방법은 Cham423이 만든 HTTPsC2DoneRight.sh의 수정된 버전을 사용하는 것입니다.

DNS

현재 DNS 사용자 정의는 SourcePoint를 통해 직접 제공되지 않습니다. DNS 기반 비콘을 계속 허용하기 위해 생성된 모든 프로필에는 dns-beacon에 대한 주석 처리된 섹션이 있습니다.

할 일 목록

  • 더 많은 프로필 추가
  • DNS 스테이징
도구 다운로드