IRCForumu.ORG   okey sitesi
sohbet


Ağaç Şeklinde Aç2Beğeni
  • 1 Post By Lexina
  • 1 Post By Brittle

 
 
Seçenekler Stil
Alt 04 Haziran 2025, 17:56   #1
Nick kopyalandı!
Standart BotTrap Nedir?

BotTrap Nedir?


IRC ortamında kanallarda dolaşıp spam, flood, hızlı nick değişimi gibi saldırgan davranışları gerçek zamanlı tespit eden botlara BotTrap denir. Özellikle spam yapan, flood atan veya botnet üyelerini yakalamak için kullanılır.

Böyle bir bot;
- Kanaldaki kullanıcıların mesaj sayısını izler,
- Çok hızlı veya ardışık mesaj atanları floodcu olarak işaretler,
- Belirli nick değişikliklerini takip eder,
- Gerektiğinde kanala uyarı mesajı gönderir veya log tutar.


BotTrap Botu Nasıl Yazılır ve Kurulur?

1. Gerekli Araçlar


- Python 3 (Çoğu Linux dağıtımında ön yüklü)
- irc Python kütüphanesi (pip ile yüklenir)


[code=python]
pip install irc
[/code]

2. Temel Bot Kodu

[code=python]
import irc.bot
import time

class BotTrap(irc.bot.SingleServerIRCBot):
def __init__(self, channel, nickname, server, port=6667):
super().__init__([(server, port)], nickname, nickname)
self.channel = channel
self.msg_counts = {} # Kullanıcıların mesaj sayısı (dakika bazında)
self.last_reset = time.time()
self.nick_changes = {} # Nick değişikliklerini tutar

def on_welcome(self, connection, event):
connection.join(self.channel)
print(f"Bot kanala katıldı: {self.channel}")

def on_pubmsg(self, connection, event):
nick = event.source.nick
current_time = time.time()

# Her dakika mesaj sayısını sıfırla
if current_time - self.last_reset > 60:
self.msg_counts.clear()
self.last_reset = current_time

# Mesaj sayısını arttır
self.msg_counts[nick] = self.msg_counts.get(nick, 0) + 1

# Flood tespiti (örneğin 20 mesaj/dakika)
if self.msg_counts[nick] > 20:
warning = f"{nick}, flood yapıyorsun! Lütfen yavaşla."
connection.privmsg(self.channel, warning)
print(f"[UYARI] Flood tespit edildi: {nick}")

def on_nick(self, connection, event):
old_nick = event.source.nick
new_nick = event.target

self.nick_changes.setdefault(old_nick, []).append(time.time())

# Çok hızlı nick değiştirme tespiti (örneğin 5 sn içinde 3 değişiklik)
changes = self.nick_changes[old_nick]
changes = [t for t in changes if time.time() - t < 5]
self.nick_changes[old_nick] = changes

if len(changes) >= 3:
warning = f"{old_nick} çok hızlı nick değiştiriyor!"
connection.privmsg(self.channel, warning)
print(f"[UYARI] Hızlı nick değişimi: {old_nick}")

if __name__ == "__main__":
server = "irc.example.net" # IRC sunucu adresi
channel = "#kanaladi" # Takip edilecek kanal
nickname = "BotTrap" # Botun takma adı
bot = BotTrap(channel, nickname, server)
bot.start()
[/code]

3. Kurulum ve Çalıştırma


- Kod dosyasını örneğin bottrap.py olarak kaydet.
- Terminalde aşağıdaki komutla çalıştır:


Kod:
python3 bottrap.py

- Bot belirtilen sunucu ve kanala bağlanacak, kanaldaki mesajları izlemeye başlayacak.


4. Nasıl Geliştirebilirsin?


- IP takibi: IRC protokolü izin verirse veya loglardan IP alabiliyorsan, aynı IP’den farklı nicklerin gelip gelmediğini kontrol edebilirsin.
- Mesaj içeriği analizi: Spam veya kötü kelimeleri filtreleyip otomatik uyarı veya kick atma fonksiyonu ekleyebilirsin.
- Flood sınırlarını özelleştirme: Süre, mesaj sayısı gibi parametreleri dışarıdan ayarlanabilir yapabilirsin.
- Loglama: Tespit edilen durumları dosyaya veya veritabanına kaydetmek.
- Çoklu kanal ve sunucu desteği: Birden fazla kanalda aynı anda çalışacak şekilde geliştirmek.


5. Neden Böyle Bir Bot?


IRC ortamında spam ve flood yaygın sorunlardır. Özellikle saldırganlar hızlı nick değiştirip, farklı sunucularda aynı anda bağlantı kurabilir. Bu bot sayesinde bu tür kötü niyetli davranışları anlık tespit edip, müdahale edebilirsin.


Özetle, BotTrap dediğimiz bot, IRC kanallarını kötü kullanıcı ve saldırganlara karşı koruyan, kendi yazdığın veya hazır modifiye ettiğin küçük ama etkili bir güvenlik aracıdır.


Brittle bunu beğendi.
 
Alıntı Yap
Alt 04 Haziran 2025, 20:08   #2
Nick kopyalandı!
Standart

İçerik gizlenmiştir.

İçerikleri görebilmek için üye olmalı ve üye girişi yapmalısınız.
Giriş Yap Kayıt Ol

Lexina bunu beğendi.



[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
 
Alıntı Yap
Alt 04 Haziran 2025, 20:35   #3
Nick kopyalandı!
Standart

İçerik gizlenmiştir.

İçerikleri görebilmek için üye olmalı ve üye girişi yapmalısınız.
Giriş Yap Kayıt Ol

 
Alıntı Yap


Şu anda bu konuyu görüntüleyen etkin kullanıcılar: 1 (0 üye ve 1 ziyaretçi)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB kodu Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Kapalı



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 14:55.

IRCForumu.Org

IRC dünyasının buluşma noktası. Sohbet, bilgi ve eğlence burada!