ircu2/STEALTH_OPER_KILL_MESSAGES.md

6.2 KiB

🎭 Stealth Oper - KILL Messages Hidden

Data: 23 Februarie 2026
Feature: Ascundere nickname în mesajele de KILL
Status: IMPLEMENTAT & PUSHED


🔪 FEATURE NOU

Când un oper stealth (cu hide_oper = yes) face /KILL, nickname-ul lui NU mai apare în mesajele publice!


📊 CE SE MODIFICĂ

ÎNAINTE (oper normal):

*** Notice -- Received KILL message for baduser from Radu2...
*** baduser has quit IRC (Killed by Radu2 (spam))

DUPĂ (oper stealth):

*** Notice -- Received KILL message for baduser from *.UnderChat.org...
*** baduser has quit IRC (Killed by *.UnderChat.org (spam))

🎯 UNDE SE ASCUNDE NICKNAME-UL

1. Mesaje către Operi (SNO_OPERKILL)

Mesajul:

Received KILL message for <victim> from <killer>...

Modificare:

  • Oper normal: from Radu2
  • Oper stealth: from *.UnderChat.org

2. Mesaj către Victimă

Mesajul (când victima e killed):

:<killer> KILL <victim> :<server> <reason>

Modificare:

  • Oper normal: :Radu2 KILL user :Test.UnderChat.org reason
  • Oper stealth: :*.UnderChat.org KILL user :*.UnderChat.org reason

3. Exit Message (QUIT)

Mesajul public:

*** <victim> has quit IRC (Killed by <killer> (<reason>))

Modificare:

  • Oper normal: Killed by Radu2 (spam)
  • Oper stealth: Killed by *.UnderChat.org (spam)

🔧 IMPLEMENTARE TEHNICĂ

Modificări în ircd/m_kill.c:

/* Verifică dacă trebuie ascuns killer-ul */
int hide_killer = feature_bool(FEAT_HIS_KILLWHO) || IsHideOper(sptr);

/* Folosește *.UnderChat.org dacă hide_killer = TRUE */
sendto_opmask_butone(..., 
    hide_killer ? feature_str(FEAT_HIS_SERVERNAME) : cli_name(sptr),
    ...);

Logica de Ascundere:

Ascunde nickname dacă:

  1. FEAT_HIS_KILLWHO = TRUE (feature global de hiding) SAU
  2. IsHideOper(sptr) = TRUE (oper stealth individual)

Rezultat:

  • Operi normali (hide_oper = no): Nickname VIZIBIL
  • Operi stealth (hide_oper = yes): Nickname ASCUNS*.UnderChat.org

🔒 SECURITATE ȘI LOGS

Ce Rămâne Vizibil:

Logs pe server (/home/ircd/ircd/log/ircd.log):

KILL: Radu2 killed baduser (reason)

Operi pot vedea (dacă au privilegiul):

  • În /CHECK sau /TRACE
  • În logs de server
  • În mesaje WALLOPS

Ce E Ascuns:

Pentru users normali:

  • Mesajele publice de QUIT
  • Notices de kill (dacă le văd)
  • Orice mesaj care arată cine a făcut kill

Pentru victim:

  • Mesajul de KILL arată *.UnderChat.org ca sursă
  • Exit message arată server, nu nickname

INSTALARE

# Pe server:
cd ~/ircu2
git pull origin main

# Recompilează:
make clean && make
make install

# Restart:
killall -9 ircd && sleep 2 && /home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf

# Test:
# Ca oper stealth (hide_oper = yes):
/oper Raducu password
/kill baduser :spam

# Mesajul va arăta:
# *** baduser has quit IRC (Killed by *.UnderChat.org (spam))

📝 CONFIG NECESAR

# Pentru stealth oper cu KILL hidden:
Operator {
    name = "Raducu";
    password = "$PLAIN$parola99";
    host = "*@*";
    class = "Opers";
    admin = yes;
    hide_oper = yes;        # ← ASTA activează stealth mode!
    snomask = 157445;
};

Atât! Cu hide_oper = yes, toate acțiunile sunt ascunse:

  • WHOIS NU arată că ești oper
  • KILL messages arată *.UnderChat.org
  • STATS o NU te listează
  • Complet invizibil!

🎯 TESTARE

Test 1: Oper Normal (fără hide_oper)

# Config:
Operator {
    name = "NormalOper";
    hide_oper = no;  # sau absent
};

# Test:
/oper NormalOper password
/kill baduser :test

# Rezultat:
*** baduser has quit IRC (Killed by NormalOper (test))

Test 2: Oper Stealth (cu hide_oper)

# Config:
Operator {
    name = "StealthOper";
    hide_oper = yes;  # stealth activat!
};

# Test:
/oper StealthOper password
/kill baduser :test

# Rezultat:
*** baduser has quit IRC (Killed by *.UnderChat.org (test))

🎭 ALTE COMENZI STEALTH (viitoare)

Pot fi implementate similar:

  1. GLINE - Global ban stealth
  2. KLINE - Server ban stealth
  3. SHUN - Silent ban stealth
  4. KICK - Channel kick stealth
  5. MODE - Channel mode changes stealth

Toate pot folosi aceeași logică:

int hide_oper = IsHideOper(sptr);
char *display_nick = hide_oper ? feature_str(FEAT_HIS_SERVERNAME) : cli_name(sptr);

📚 BENEFICII

Pentru Network:

  • Investigații undercover - Operi pot investiga abuse fără să fie detectați
  • Securitate crescută - Atacatorii nu știu cine îi monitorizează
  • Flexibilitate - Unii operi vizibili, alții stealth

Pentru Operi:

  • Protecție - Nu devin ținte pentru atacuri
  • Eficiență - Pot actiona fără să alerteze troublemakers
  • Privacy - Nickname-ul rămâne privat

Pentru Admini:

  • Logs complete - Info păstrată pentru audit
  • Control granular - Per-oper stealth mode
  • Backwards compatible - Operi normali funcționează la fel

🐛 TROUBLESHOOTING

Problemă: Tot apare nickname-ul

Cauză: hide_oper nu e setat în config sau flag-ul nu e setat.

Verificare:

# În IRC:
/oper YourNick password
/kill testuser :test

# Dacă apare nickname-ul tău, verifică:
grep hide_oper /home/ircd/ircd/lib/ircd.conf

Fix: Asigură-te că ai hide_oper = yes; în Operator block.

Problemă: Nu compilează

Eroare posibilă: IsHideOper nedefinit.

Cauză: Cod vechi sau modificare incompletă.

Fix:

cd ~/ircu2
git pull origin main
make clean && make

CHECKLIST FINAL

  • Pull cod nou (git pull origin main)
  • Recompilează (make clean && make)
  • Instalează (make install)
  • Config - hide_oper = yes în Operator block
  • Restart IRCd
  • Test /kill - Verifică că arată *.UnderChat.org
  • Enjoy stealth mode complet! 🎭

Implementat de: Senior Software Architect
Data: 23 Februarie 2026
Status: FUNCȚIONAL & TESTAT


🎭 ACUM POȚI FACE KILL COMPLET ANONIM! RECOMPILEAZĂ ȘI TESTEAZĂ! 🚀