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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
GRAT2 — 우리는 학습 목적으로 GRAT2 명령 및 제어(C2) 프로젝트를 개발했습니다. | Kitploit
도구/GitHubGitHub/r3nhat/grat2
Privilege EscalationPost-ExploitationCommand and ControlLearning & EducationRed TeamingPayload Development
GitHubr3nhat/grat2

GRAT2

우리는 학습 목적으로 GRAT2 명령 및 제어(C2) 프로젝트를 개발했습니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Project Status

GRAT2 C2


root@kitploit:~
                   (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)
                    / ._. \      / ._. \      / ._. \      / ._. \      / ._. \
                    \( Y )/__  __\( Y )/__  __\( Y )/__  __\( Y )/__  __\( Y )/
                 (_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)
                    || G ||      || R ||      || A ||      || T ||      || 2 ||
                   _.' `-' '._  _.' `-' '._  _.' `-' '._  _.' `-' '._  _.' `-' '._
                 (.-./`-'\.-.)(.-./`-`\.-.)(.-./`-'\.-.)(.-./`-'\.-.)(.-./`-'\.-.)
                  `-'     `-'  `-'     `-'  `-'     `-'  `-'     `-'  `-'     `-'
                                             v1.1 beta!

GRAT2 소개

GRAT2는 python3로 작성된 Command and Control (C2) 도구이며, 클라이언트는 .NET 4.5로 작성되었습니다. 주요 아이디어는 이 프로젝트를 시작한 Georgios Koumettou에게서 비롯되었습니다.

왜 GRAT2를 개발했는가?

이미 수많은 C2 도구가 존재한다는 것을 알고 있지만, C2와 다양한 회피 기법이 어떻게 작동하는지에 대한 호기심으로 이 도구를 개발했습니다. 그게 다입니다! ;-)

현재 기능:

회피 기법:

  • 샌드박스 (도메인에 가입되어 있는지 확인, 그렇지 않으면 종료).
  • ETW(Event Tracing for Windows) 로깅 패치.
  • AMSI(Antimalware Scan Interface) 패치.
  • caretrun - caret 형식(^i^p^c^o^n^f^i^g)으로 cmd.exe를 통해 명령을 실행하며, explorer.exe를 부모 PID로 사용합니다 (일부 AV/EDR 우회).

통신:

  • HTTP 및 HTTPS
  • DNS - 현재 TXT 레코드만 지원합니다.
  • XOR 및 base64를 사용한 인코딩 통신.
  • 프록시 인식.

모듈:

  • startdns - DNS 리스너 서버 시작.
  • listagents - 현재 에이전트 목록.
  • localip - 시스템의 로컬 IP 주소 획득.
  • uac - 부모 PID 스푸핑 기술을 사용한 무음 디스크 정리(silent disk clean-up)로 UAC 우회 시도.
  • maketoken - 현재 토큰을 제거하고 주어진 자격 증명(도메인 또는 로컬)으로 새 토큰 생성.
  • revtoself - 현재 토큰 제거.
  • stealtoken - 실행 중인 프로세스에서 토큰을 탈취하여 사용자 가장 시도 (관리자 권한 필요).
  • rportfwd - 역방향 포트 포워딩 생성 시도.
  • whoami - 현재 사용자 표시.
  • hostname - 시스템 호스트명 표시.
  • domain - 도메인 FQDN 표시.
  • screenshot - 스크린샷 촬영.
  • download - 파일 다운로드.
  • upload - 파일 업로드.
  • cd - 디렉터리 변경.
  • run - explorer.exe를 부모 PID로 사용하여 cmd.exe를 통해 명령 실행.
  • caretrun - caret 형식(^i^p^c^o^n^f^i^g)으로 cmd.exe를 통해 명령을 실행하며, explorer.exe를 부모 PID로 사용합니다 (일부 AV/EDR 우회).
  • sleep - 새 sleep 시간 설정.
  • exit - 종료.
  • shell - cmd.exe를 통해 명령 실행.
  • powershell - 비관리형 PowerShell(Unmanaged PowerShell)을 사용하여 PowerShell 명령 실행.
  • powerscript - 비관리형 PowerShell을 사용하여 PowerShell 스크립트 실행.
  • executeassembly - 메모리에서 .NET 어셈블리 실행 시도.
  • ps - 현재 프로세스 출력.
  • pwd - 현재 디렉터리 출력.
  • ls - 디렉터리 목록.
  • pid - 현재 프로세스 ID 출력.

프로세스 인젝션 기술:

  • dynamic_injectcrt - Dynamic Invoke를 사용하여 프로세스에 셸코드 인젝션 시도.
  • ppid_processhollow - Process Hollowing 및 부모 PID 스푸핑(explorer.exe) 기술을 사용하여 프로세스에 셸코드 인젝션 시도.
  • processhollow - Process Hollowing 기술을 사용하여 프로세스에 셸코드 인젝션 시도.
  • injectppidapc - QueueUserAPC 및 부모 PID 스푸핑(explorer.exe) 기술을 사용하여 프로세스에 셸코드 인젝션 시도.
  • injectapc - QueueUserAPC 기술을 사용하여 프로세스에 셸코드 인젝션 시도.
  • injectcrt - Create Remote Thread 기술을 사용하여 원격 프로세스에 셸코드 인젝션 시도.

셸코드 생성에 관해서는 GRAT2_Shellcodes를 참조하십시오. Donut을 사용하여 위치 독립적인 셸코드를 생성합니다.

TODO:

  • SMB 리스너.
  • A 레코드 추가, DNS에서 HTTP로 전환 등 더 많은 기능을 추가하여 DNS 리스너 개선.
  • 로깅 추가.
  • SOCKS5 구현.
  • 알려진 문제 수정.

클라이언트 프로필 구성:

GRAT2 Config Profile

일반 설정 및 HTTP/s 리스너:

  • c2 - GRAT2 서버 IP 주소 또는 호스트 이름 (필수).

  • sandboxEvasion - 활성화(1)하면 도메인에 가입된 컴퓨터에서만 GRAT2가 실행되고, 그렇지 않으면 GRAT2가 종료됩니다. 비활성화(0)하면 도메인에 가입되지 않은 컴퓨터에서만 GRAT2가 실행되고, 그렇지 않으면 종료됩니다 (기본값: 비활성화).

  • patchEtw - 활성화(1)하면 ETW(Event Tracing for Windows)가 패치됩니다 (기본값: 활성화).

  • patchAmsi - 활성화(1)하면 AMSI(Antimalware Scan Interface)가 패치됩니다 (기본값: 활성화).

  • sleep - sleep 시간 설정 (기본값: 3초).

  • UserAgent - UserAgent 설정 (기본값: "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; yie11; rv:11.0) like Gecko").

  • initialUrl - 초기 GRAT2 HTTP GET 요청 (기본값: jquery.js).

  • sendResults - GRAT2 HTTP POST 결과 요청 (기본값: login.aspx).

    참고: initialUrl 또는 sendResults 문자열을 변경하는 경우, GRAT2_Server/handlers.py의 49행과 84행에 있는 문자열도 업데이트해야 합니다.

DNS 리스너:

  • DNSListener - 활성화(1) 또는 비활성화(0). 활성화하는 경우 아래 설명에 따라 GRAT2 서버를 적절히 구성하십시오.
  • DNSServer - GRAT2 DNS 서버.
  • dnsMaxTXT - TXT 레코드의 최대 길이 (기본값: 255).
  • maxDNSChar - 각 DNS 서브도메인의 최대 문자 크기 (기본값: 63).

서버 프로필 구성:

GRAT2 Config Server Profile

HTTP/s 및 DNS 리스너:

  • HOST_NAME - GRAT2 서버 IP 주소 또는 호스트 이름.
  • PORT_NUMBER - 수신 포트 (80 또는 443).
  • server_pem - PEM 파일 경로.
  • dnsDomainName - GRAT2 DNS 서버.

사용법:

  • Visual Studio에서 GRAT2 클라이언트 프로젝트(GRAT2_Client.sln)를 열고, 솔루션 구성을 Debug에서 Release로 변경한 후 빌드합니다.
  • GRAT2 서버에 **두 가지 종속성(dnslib 및 termcolor)**을 설치합니다: pip3 install -r requirements.txt
  • GRAT2 서버 시작: GRAT2 Start Server
  • GRAT2 클라이언트 실행 파일 실행 - GRAT2_Client\bin\Release\GRAT2_Client.exe
  • 에이전트와 상호작용: GRAT2 Interact

릴리스 노트:

버전 1.0 - 2020년 9월 5일

  • 최초 릴리스

버전 1.1 - 2020년 12월 13일

  • DNS 리스너 추가
  • HTTPS 리스너 추가
  • 에이전트 목록 기능 추가
  • 시스템의 로컬 IP 주소를 얻을 수 있는 localip 모듈 추가
  • 비관리형 PowerShell(Unmanaged PowerShell) 재작성
  • .NET 4.0에서 .NET 4.5로 변경

크레딧:

  • Donut - @TheRealWover
  • DInvoke - @TheRealWover & @FuzzySec
  • SharpC2 - @_RastaMouse & @xpn
  • SharpSploit - @cobbr_io
  • DNSExfiltrator - @Arno0x0x

또한 각 저자와 참조 링크는 소스 코드에 명시되어 있습니다.

고지 사항:

이 프로젝트는 승인된 테스트 또는 교육 목적으로만 사용할 수 있습니다. 사전 허가 없이 이 소프트웨어를 대상 시스템에 사용하는 것은 불법이며, 이 소프트웨어의 오용으로 인한 모든 손해에 대해 저자는 책임을 지지 않습니다.

도구 다운로드