IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi

IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi (https://www.ircrehberi.net/)
-   Eggdrop, NeoStats, BNC (https://www.ircrehberi.net/eggdrop-neostats-bnc/)
-   -   BotTrap Nedir? (https://www.ircrehberi.net/eggdrop-neostats-bnc/219706-bottrap-nedir.html)

Lexina 04 Haziran 2025 17:59

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.

TövbekaR 04 Haziran 2025 18:00

Emeğine sağlık güzel bir anlatım olmuş

Lexina 04 Haziran 2025 18:12

Tsk Ederim.

Zenia 04 Haziran 2025 18:23

Emegine saglik cok güzel anlatmışın

Lexina 04 Haziran 2025 18:24

Tsk Ederim.

Kyo 04 Haziran 2025 20:12

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