![]() |
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. |
Emeğine sağlık güzel bir anlatım olmuş |
Tsk Ederim. |
Emegine saglik cok güzel anlatmışın |
Tsk Ederim. |
Emeğinize sağlık. Kodu siz mi yazdınız? |
| Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 00:14. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Copyright ©2019 - 2025 | IRCRehberi.Net