IRC Tabanlı Modüler Botnet
Merhaba arkadaşlar,
Botnet deyince, bir çok kişinin aklına "bir çok bilgisayar ile bir hedefe DDoS saldırısı yapmak için yazılan yazılım" geliyor. Bu amaçla kullanılabilecek olsa da, eksik bir tanımdır. Türkçe karşılığına "Robot ağı" diyebiliriz. Çok sayıda makineye / bota eş zamanlı komut verip, çalıştırabilme gücü verir size botnetler.
Haberleşme olayı için IRC sunucuları kullanıldı. Bu sayede port yönlendirmesi olmadan yönetici ve client(ler) arasında veri aktarımı yapabiliyoruz.
IRC: https://tr.wikipedia.org/wiki/IRC
Botnet: https://tr.wikipedia.org/wiki/Botnet
GitHub: https://github.com/blackvkng/viBot
Clientin Ayarlanması
Programı kullanmadan önce, IRC hakkında biraz bilginizin olması gerekiyor. Yukarıda verdiğim link ve biraz ek araştırma ile çözebilirsiniz olayı, çok zor değil.
Programda değiştirmeniz gereken değişkenler,
Ben Sunucu olarak Freenode kullandım.
"SERVER" değişkenin aldığı değere bakarsanız, Freenode kullandığımı görürsünüz. İsterseniz bu değeri değiştirebilirsiniz.
"TARGET" değişkenini değiştirmemelisiniz, programda bulunan dos modülünün sağlıklı çalışabilmesi için default olarak o değer atandı.
"CHNL" değişkenine, botun ve bizim Freenode üzerinden giriş yapacağımız kanalı atadık. Bunu kendi istediğiniz bir isimle değiştirebilirsiniz.
"PORT" değişkeni, yine dokunmamanız gereken bir değişken.(IRC Default Port)
"BASE" değişkeni, çok önemli bir değişken. Bu emir alacağı kişinin nicki. Bu değişkene istediğiniz değeri verdikten sonra kanala giriş yapmadan önce "/nick <önceden belirlenen nick>" şeklinde sunucuya kullanmak istediğiniz nicki belirtmelisiniz. Aksi takdirde botları kontrol edemezsiniz.
"NICK" değişkeni, kanala girecek olan botun nicki oluyor. Burada "getpass.getuser()" kullanarak, botun bulunduğu bilgisayarın kullanıcı adını kullanarak kanala giriş yapmasını sağlayabilirsiniz ki bunu tavsiye ederim.
Artık kullanıma hazır, herhangi ek bir kütüphaneye gerek yok, program tamamen standart kütüphaneler kullanılarak yazıldı. Şimdi botu çalıştırıp, IRC client aracılığı ile kanala bağlanıp botlarımızı kontrol edelim.
ASCIINEMA: https://asciinema.org/a/126356
Kanala girişi göstermek için, böyle bir kayıt aldım. Çok daha açıklayıcı olacağını umuyorum yazılı anlatımdan. Ben IRC client olarak "irssi" kullanıyorum, siz HexChat(GUI), weechat vs. kullanabilirsiniz. Hiç olmadı, kiwiirc.com üzerinden botları kontrol edebilirsiniz. Bu arada, Android üzerine bir IRC client kurarsanız botları Android üzerinden de kontrol edebilirsiniz!![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Kullanım / Özellikler - Modüller
IRC kanalına girdikten sonra, bulunan modüllerin kullanımı şu şekildedir,
Önce kullanılacak modül adı sonra da modüle gönderilecek argümanları belirtiyoruz.
Sahip Olduğu Modüller
Dos modülü
Execute modülü
Popup modülü
Wget modülü
Python biliyorsanız, kendiniz de ekleyebilirsiniz modül. Bir de nasıl modül ekleyebileceğimize bakalım.
Nasıl yeni modüller ekleyebilirim?
Kolay bir şekilde kendi yazdığınız modülleri programa ekleyebilirsiniz. Size anlatmak amacı ile programın "info" modülünü yazalım. Bu modül, bize botun çalıştığı bilgisayar hakkında bilgi verecek. Aşağıda modülün kodları yer alıyor. Bilgisayarın bilgilerini bir liste olarak döndüren bir "run" fonksiyonu var.
Modülü yazdığımıza göre hemen ana scriptimiz olan "viBot" scriptine import edip gerekli düzenlemeleri yapalım.
Şimdi, eğer "BASE" değişkenine atadığımız nickin sahibinden gelen mesajın ilk kelimesi "info" ise yani yöneticinin çalıştırmak istediği modül "info" modülüyse ve gelen mesej "priv" yani sadece bana geldiyse, "sysinfo" değişkeninin değerini, "info.run()" fonksiyonunun döndürdüğü değere eşitle. Arıdan, bu değişkeni yöneticiye gönder.
Modül hazır, hemen test edelim.
Modülümüz görevini yerine getirdi, sorunsuz çalışıyor.
Ekran Görüntüleri - Video
Dos Modülü
Info Modülü
Wget Modülü
Popup Modülü
Execute Modülü
[ame="https://www.youtube.com/watch?v=IqwJdVBoxsA"]youtube[/ame]
Hızlandırarak izlemenizi öneririm.
Takıldığınız bir yer olursa, bilgim neticesinde yardımcı olmaya çalışırım.
Merhaba arkadaşlar,
Botnet deyince, bir çok kişinin aklına "bir çok bilgisayar ile bir hedefe DDoS saldırısı yapmak için yazılan yazılım" geliyor. Bu amaçla kullanılabilecek olsa da, eksik bir tanımdır. Türkçe karşılığına "Robot ağı" diyebiliriz. Çok sayıda makineye / bota eş zamanlı komut verip, çalıştırabilme gücü verir size botnetler.
Haberleşme olayı için IRC sunucuları kullanıldı. Bu sayede port yönlendirmesi olmadan yönetici ve client(ler) arasında veri aktarımı yapabiliyoruz.
IRC: https://tr.wikipedia.org/wiki/IRC
Botnet: https://tr.wikipedia.org/wiki/Botnet
GitHub: https://github.com/blackvkng/viBot
Clientin Ayarlanması
Programı kullanmadan önce, IRC hakkında biraz bilginizin olması gerekiyor. Yukarıda verdiğim link ve biraz ek araştırma ile çözebilirsiniz olayı, çok zor değil.
Programda değiştirmeniz gereken değişkenler,
![VMa0rq.png](http://i.hizliresim.com/VMa0rq.png)
Ben Sunucu olarak Freenode kullandım.
"SERVER" değişkenin aldığı değere bakarsanız, Freenode kullandığımı görürsünüz. İsterseniz bu değeri değiştirebilirsiniz.
"TARGET" değişkenini değiştirmemelisiniz, programda bulunan dos modülünün sağlıklı çalışabilmesi için default olarak o değer atandı.
"CHNL" değişkenine, botun ve bizim Freenode üzerinden giriş yapacağımız kanalı atadık. Bunu kendi istediğiniz bir isimle değiştirebilirsiniz.
"PORT" değişkeni, yine dokunmamanız gereken bir değişken.(IRC Default Port)
"BASE" değişkeni, çok önemli bir değişken. Bu emir alacağı kişinin nicki. Bu değişkene istediğiniz değeri verdikten sonra kanala giriş yapmadan önce "/nick <önceden belirlenen nick>" şeklinde sunucuya kullanmak istediğiniz nicki belirtmelisiniz. Aksi takdirde botları kontrol edemezsiniz.
"NICK" değişkeni, kanala girecek olan botun nicki oluyor. Burada "getpass.getuser()" kullanarak, botun bulunduğu bilgisayarın kullanıcı adını kullanarak kanala giriş yapmasını sağlayabilirsiniz ki bunu tavsiye ederim.
Artık kullanıma hazır, herhangi ek bir kütüphaneye gerek yok, program tamamen standart kütüphaneler kullanılarak yazıldı. Şimdi botu çalıştırıp, IRC client aracılığı ile kanala bağlanıp botlarımızı kontrol edelim.
ASCIINEMA: https://asciinema.org/a/126356
![4MrzOG.png](http://i.hizliresim.com/4MrzOG.png)
Kanala girişi göstermek için, böyle bir kayıt aldım. Çok daha açıklayıcı olacağını umuyorum yazılı anlatımdan. Ben IRC client olarak "irssi" kullanıyorum, siz HexChat(GUI), weechat vs. kullanabilirsiniz. Hiç olmadı, kiwiirc.com üzerinden botları kontrol edebilirsiniz. Bu arada, Android üzerine bir IRC client kurarsanız botları Android üzerinden de kontrol edebilirsiniz!
Kullanım / Özellikler - Modüller
IRC kanalına girdikten sonra, bulunan modüllerin kullanımı şu şekildedir,
#viBotChannel --> [modül] [argümanlar]
Önce kullanılacak modül adı sonra da modüle gönderilecek argümanları belirtiyoruz.
Sahip Olduğu Modüller
Dos modülü
Bu modül, belirlediğiniz bir hedefe, kanalda bulunan tüm botlar ile DDoS saldırısı başlatır.
Kullanımı
Kullanımı
Execute modülü
Bu modül, botların bulunduğu bilgisayarda argüman olarak verdiğiniz komutu çalıştırır ve çıktısını size gönderir.
Kullanımı
Kullanımı
#viBotChannel: execute ls -la /usr/bin
Bu modül, argüman olarak verdiğiniz mesajı, botun ekranında gösterir.
Kullanımı
Kullanımı
#viBotChannel: popup test message to channel!
Bu modül, URLsini verdiğiniz dosyayı belirlediğiniz isimde botun bilgisayarına indirir.
Kullanımı
Kullanımı
Info modülü
Bu modül, botun çalıştığı sistem hakkında bilgi verir.
Kullanımı
Kullanımı
#viBotChannel: info
Nasıl yeni modüller ekleyebilirim?
Kolay bir şekilde kendi yazdığınız modülleri programa ekleyebilirsiniz. Size anlatmak amacı ile programın "info" modülünü yazalım. Bu modül, bize botun çalıştığı bilgisayar hakkında bilgi verecek. Aşağıda modülün kodları yer alıyor. Bilgisayarın bilgilerini bir liste olarak döndüren bir "run" fonksiyonu var.
![ZEkXqZ.png](http://i.hizliresim.com/ZEkXqZ.png)
Modülü yazdığımıza göre hemen ana scriptimiz olan "viBot" scriptine import edip gerekli düzenlemeleri yapalım.
from modules import info
Satırı ile ana scripte aktardık modülü.
![WQkq38.png](http://i.hizliresim.com/WQkq38.png)
Şimdi, eğer "BASE" değişkenine atadığımız nickin sahibinden gelen mesajın ilk kelimesi "info" ise yani yöneticinin çalıştırmak istediği modül "info" modülüyse ve gelen mesej "priv" yani sadece bana geldiyse, "sysinfo" değişkeninin değerini, "info.run()" fonksiyonunun döndürdüğü değere eşitle. Arıdan, bu değişkeni yöneticiye gönder.
Modül hazır, hemen test edelim.
![ok3XvR.png](http://i.hizliresim.com/ok3XvR.png)
Modülümüz görevini yerine getirdi, sorunsuz çalışıyor.
Ekran Görüntüleri - Video
Dos Modülü
![ZEkX4o.png](http://i.hizliresim.com/ZEkX4o.png)
Info Modülü
![ok3XvR.png](http://i.hizliresim.com/ok3XvR.png)
Wget Modülü
![lWjqlg.png](http://i.hizliresim.com/lWjqlg.png)
Popup Modülü
![VMa9dj.png](http://i.hizliresim.com/VMa9dj.png)
Execute Modülü
![nWMQnB.png](http://i.hizliresim.com/nWMQnB.png)
[ame="https://www.youtube.com/watch?v=IqwJdVBoxsA"]youtube[/ame]
Hızlandırarak izlemenizi öneririm.
Takıldığınız bir yer olursa, bilgim neticesinde yardımcı olmaya çalışırım.
Son düzenleme: