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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
antnium — Go로 작성된 초기 접근용 C2 프레임워크 | Kitploit
도구/GitHubGitHub/dobin/antnium
Data ExfiltrationPost-ExploitationCommand and ControlRed TeamingPayload DevelopmentRemote Access TrojanArchived
GitHubdobin/antnium

antnium

Go로 작성된 초기 접근용 C2 프레임워크

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Antnium

root@kitploit:~
Anti Tanium

Go로 작성된 C2 프레임워크이자 RAT입니다.

이 소스 코드는 제 프레젠테이션 Develop your own RAT - AV & EDR Defense의 참고 자료로 공개적으로 게시되었습니다. Antnium은 다른 사람의 요구가 아닌 제 자신의 요구를 충족시키기 위해 만들어졌습니다. 제가 수행한 캠페인(campaign)에서는 작동하지만, 반드시 범용 C2 프레임워크를 의미하는 것은 아닙니다.

두 가지 구성 요소가 있습니다:

  • client.exe: 실제 RAT / 비콘 / 에이전트 / 임플란트
  • server.exe: C2 서버

기능

  • HTTP/S 및 Websocket 통신 채널
  • 프록시 지원 (수동, windows, 인증 및 kerberos)
  • 명령 실행
    • 직접 LOLbins
      • 파일 먼저 복사
      • 프로세스 할로잉(Process hollowing)
    • 대화형 cmd.exe/Powershell 셸
    • 원격 관리 코드 및 비관리 코드
      • donut 사용
      • PE를 셸코드로 변환
      • 암호화됨
      • AMSI 우회
  • Reflexxion을 이용한 EDR 우회 (ntdll.dll 복원)
  • 암호화된 통신
  • Malleable C2
  • 파일 업로드 / 다운로드
  • 파일 브라우저

빠른 사용 방법

go(및 git)를 다운로드하여 설치하세요.

여기서는 127.0.0.1:8080을 C2 도메인으로 사용합니다 (동일한 호스트에서 client.exe와 server.exe를 모두 시작하므로 localhost입니다). 이 역시 기본값이므로 변경할 필요가 없습니다.

campaign/campaign.go에서 캠페인을 확인하세요:

  • serverUrl = "http://127.0.0.1:8080"

Windows에서 빌드:

root@kitploit:~
> .\makewin.bat deploy

Linux에서 빌드:

root@kitploit:~
$ make deploy

서버와 클라이언트를 시작하세요:

root@kitploit:~
cd build\
.\server.exe
.\static\client.exe

server.exe를 시작한 후 브라우저에서 다음 URL을 열어 WebUI에 접속하세요:

root@kitploit:~
http://localhost:8080/webui/

디렉터리

static/: 도구용 공개 디렉터리

다른 시스템에서 다운로드하려는 파일을 여기에 넣으세요. 예: client.exe, wingman.exe. 그리고 mimikatz.exe나 seatbelt.exe 같은 도구들도요. 단, 더 눈에 띄지 않는 파일 이름을 사용하세요.

파일은 암호화된 파일 이름으로 요청하는 /secure API를 통해서도 사용할 수 있으며, 응답으로 암호화+base64 인코딩된 파일이 반환됩니다.

dotNet 파일은 /secure를 통해 접근하는 remote 실행 옵션을 사용하여 실행할 수 있습니다.

upload/: 데이터 유출을 위한 비공개 디렉터리

클라이언트에서 업로드한 파일이 여기에 저장됩니다.

상세 빌드 방법

Go 설치:

  • Windows: https://golang.org/doc/install
  • Linux: apt install golang gcc-mingw-w64

client.exe와 server.exe를 컴파일하세요:

root@kitploit:~
> .\makewin.bat deploy

그러면 다음이 생성됩니다:

  • /build/server.exe
  • /build/server.elf
  • /build/static/client.exe
  • /build/static/client.elf
  • /build/static/wingman.exe
  • /build/upload/
  • /build/webui/

server.exe를 시작하세요:

root@kitploit:~
> cd build
> .\server.exe

Antnium 0.1
Loaded 0 packets from db.packets.json
Loaded 0 clients from db.clients.json 
Periodic DB dump enabled
Starting webserver on 127.0.0.1:8080  

client.exe를 시작하세요:

root@kitploit:~
> .\build\static\client.exe

Antnium 0.1
time="2021-09-02T21:48:16+02:00" level=info msg="UpstreamHttp: Use WS"
time="2021-09-02T21:48:16+02:00" level=info msg="Connecting to WS succeeded"
time="2021-09-02T21:48:16+02:00" level=info msg=Send 1_computerId=c4oil02sdke2sp3nfngg 2_packetId=0 3_downstreamId=client 4_packetType=ping 5_arguments="map[]" 6_response=...
time="2021-09-02T21:48:16+02:00" level=info msg=Send 1_computerId=c4oil02sdke2sp3nfngg 2_packetId=0 3_downstreamId=client 4_packetType=ping 5_arguments="map[]" 6_response=...

크로스 컴파일 참고 사항

Linux에서 Windows 클라이언트를 컴파일하는 것은 가능하지만, 일부 Windows 종속성 때문에 수동으로 GO gcc 명령줄을 다뤄야(fu) 합니다. 바로 작동하지 않으면 Windows에서 Windows 클라이언트를 직접 컴파일하세요 (makewin.bat client).

캠페인 구성 참고 사항

pkg/campaign/campaign.go는 컴파일된 client.exe를 특정 server.exe와 연결하여 캠페인을 구성합니다. 캠페인에는 서버와 클라이언트 간에 공유되는 개별 암호화 및 인증 키가 있습니다.

root@kitploit:~
type Campaign struct {
	ApiKey      string  // Key used to access client facing REST
	EncKey      []byte  // Key used to encrypt packets between server/client

	ServerUrl   string  // URL of the server, as viewed from the clients
}

관리자 UI / 운영자 키는 pkt/server/config.go에 있습니다:

root@kitploit:~
type Config struct {
	AdminApiKey string
}

ServerUrl은 클라이언트가 서버와의 모든 상호작용에 사용하는 URL입니다. 예를 들어 http://totallynotmalware.ch와 같은 공개 서버 URL입니다. 실제 server.exe는 리버스 프록시 뒤에 있을 수 있으며 server.exe --listenaddr 127.0.0.1:8080으로 시작될 수 있습니다 (따라서 ServerUrl이 반드시 listenaddr과 같을 필요는 없습니다).

서버 접근 참고 사항

서버에 처음 연결할 때는 먼저 UI에 접근하여 구성해야 합니다.

Angular UI 파일은 공개적으로 접근 가능합니다. ServerUrl="http://localhost:8080"이고 listenaddr=0.0.0.0:8080이라고 가정해 봅시다. 다음 중 하나를 선택할 수 있습니다:

  • 브라우저에서 http://localhost:8080/webui로 접근할 수 있는 통합 antniumui를 사용
  • 또는 antniumui 디렉터리에서 ng serve를 실행한 후 브라우저에서 http://localhost:4200을 엽니다

브라우저에서 UI에 연결할 때 먼저 서버 IP와 비밀번호를 구성해야 합니다:

  • AdminApiKey (기본값: "Secret-AdminApi-Key", config 기본값과 동일)
  • ServerIP (기본값: "http://localhost:8080")
  • User (선택 사항, 임의로 선택 가능)

클라이언트

테스트 환경:

  • Windows 10
  • Ubuntu 20.04 LTS

Windows에서 컴파일:

root@kitploit:~
> .\makewin.bat client

대상 시스템에 배포하세요.

서버

테스트 환경:

  • 작동: Ubuntu 20.04 LTS, Go 1.13.8
  • 작동: Windows 10, Go 1.16.6
  • 컴파일 실패: Ubuntu 16.04 LTS, Go 1.6.2

Linux에서:

root@kitploit:~
$ make server
$ mkdir -p static upload
$ ./server --listenaddr 0.0.0.0:8080

결과물은 server.exe입니다. 다음 항목이 있거나 생성될 디렉터리에서 실행해야 합니다:

  • upload/
  • static/
  • db.*.json 작업 디렉터리로 지정하세요.

해당 포트에서 REST 서버를 시작하며 다음을 제공합니다:

  • /: 클라이언트용 REST
  • /ws: 클라이언트용 Websocket
  • /admin: 관리자 인터페이스용 REST (패킷 추가, 클라이언트 조회)
  • /adminws: 관리자 인터페이스용 Websocket (패킷 푸시)
  • /webui: 관리자 인터페이스용 HTML 파일 (Angular 소스 및 html, REST와 websocket에 접근)

그 앞에 리버스 프록시를 두거나 (websocket을 지원하는지 확인하세요!) 포트를 포워딩하세요.

옵션

수동 프록시를 사용하려면 전체 HTTP URL을 사용하세요:

root@kitploit:~
client.exe -proxy http://proxy:8080

또는 환경 변수를 통해:

root@kitploit:~
export PROXY http://localhost:8080
./client

Wingman

Wingman은 기본적으로 C2에 직접 연결하지 않는 클라이언트입니다. localhost:50000의 기존 클라이언트에 연결할 수 있습니다 (Campaign.AutoStartDownstreams가 false인 경우 해당 클라이언트가 시작되어 있는지 확인하세요).

localhost 포트 50000에 연결합니다:

root@kitploit:~
wingman.exe

또는 rundll32.exe를 사용하여 dll을 로드합니다 (C:\Windows\SysWOW64\rundll32.exe의 32비트 버전이 아닌 system32의 64비트 rundll32 버전):

root@kitploit:~
C:\Windows\System32\rundll32.exe .\wingman.dll,Start

다운스트림 net#0으로 나타납니다.

테스트

root@kitploit:~
go test ./...

여전히 레이스 컨디션(race condition)이 있을 수 있습니다. 한 번 실패하면 다시 실행하세요.

도구 다운로드