Copy Link
Add to Bookmark
Report

SET 026 0x04

  

-[ 0x04 ]--------------------------------------------------------------------
-[ Eggdrops I y II]----------------------------------------------------------
-[ by sicario ]-------------------------------------------------------SET-26-


IRC Bots - Eggdrops

Vamos a tratar sobre del robot para IRC mas popular, el Eggdrop. Este robot
esta creado bajo sentencias de C, existiendo versiones tanto para Unix/Linux
asi como para el windows, como es de suponer, aquí solo trataremos de la
version para Unix/Linux. Nos basaremos en la version 1.6.3

1.Requerimientos :

- Una cuenta Shell, con permisos para compilar y ejecutar programas.
- Cerciorate de tener el TCL instalado en tu maquina:
Utiliza el comando tclsh para cambiar al shell del TCL y verificar si lo
tienes instalado.

Podras descargar la ultima version del TCL de
ftp://ftp.scriptics.com/pub/tcl

El TCL es un lenguaje para crear scripts, desarrollado por John Ousterhout,
algunas distribuciones de Linux vienen con el TCL ya instalado.

2.Descarga del Software :
Hay muchos lugares de donde puedes descargar el archivo comprimido del
Eggdrop. Aqui alguno de ellos :

http://www.eggdrops.net/
http://www.eggheads.org/
http://www.egghelp.org/

3.Instalacion :
Una vez descargado, procede a descomprimirlo :
#tar -zxvf eggdrop1.6.3.tar.gz
Ahora ingresas al directorio del archivo descomprimido :
#cd eggdrop1.6.3
y procedes a configurarlo y compilarlo.
#./configure
#make config
#make

Con esto ya tienes instalado el eggdrop en tu sistema, ahora tendras que
crear un robot con las necesidades que requieras. Lo ideal es tener agrupado
los bots que vayas a crear por directorios, en el caso de que vayas a
instalar mas de uno.

Suponiendoce que nuestro robot se ira a llamar Bot y nuestro home directory
sea \home\robot

#make install DEST="\home\robot\Bot"

Esto creara un directorio dentro de nuestro home llamado Bot, donde tendremos
que editar el archivo de configuracion para nuestro robot. Encontraras uno
como ejemplo llamado eggdrop.simple.conf. Editalo con tus requerimientos y
renombralo para mayor facilidad de uso.

A continuacion te pongo un archivo de configuracion, con parametros creados
para el servidor de IRC Dalnet :

------

#En esta linea configuras la ruta donde se encuentra el binario
#del Eggdrop.

#! /home/robot/bot/eggdrop

#Aqui configuras el Nick del robot y su password en variables
#que se utlizan luego.

set eggnick "Bot"
set botpass "password"

#Aqui configuras los datos generales del Bot.

set username "Robot"
set admin "sicario <sicario@sicario.net>"
set network "DALnet"
set timezone "EST"
set offset "5"

#Si deseas tener logs de tu canal, los configuras aqui.

set max-logs 5
set max-logsize 0
set quick-logs 0
logfile mco * "sicario.log"
logfile jkp #canal "/home/robot/bot/logs/Bot.log"
set log-time 1
set keep-all-logs 0
set switch-logfiles-at 300
set quiet-save 0
set console "mcobxs"

#Aqui configuras el nombre del file de usuarios del bot y las
#rutas de ayuda, temporales, del MOTD y del banner al hacer
#telnet o un dcc chat al robot.

set userfile "Bot.user"
set sort-users 1
set help-path "help/"
set temp-path "/tmp"
set motd "motd"
set telnet-banner "telnet-banner"

#Aqui configuras los datos de tu bot si estara linkado a
#otros bots.

set botnet-nick "Bot"
listen 4567 all
set protect-telnet 1
set dcc-sanitycheck 0
set ident-timeout 6
set require-p 0
set open-telnets 0
set stealth-telnets 0
set use-telnet-banner 1
set connect-timeout 15
set dcc-flood-thr 6
set telnet-flood 5:5
set paranoid-telnet-flood 0
set resolve-timeout 20

##### MORE ADVANCED STUFF #####

set ignore-time 10
set hourly-updates 00
set owner "sicario"
set notify-newusers "sicario"
set default-flags "hp"
set whois-fields "url birthday"
set remote-boots 0
set share-unlinks 0
set die-on-sighup 0
set die-on-sigterm 0
set must-be-owner 1
set max-dcc 50
set dcc-portrange 1024:65535
set enable-simul 1
set allow-dk-cmds 1

#Aqui configuras la ruta de los modulos. Los modulos son
#sentencias adicionales en C, que te proporcionan
#utilidades fuera del propio eggdrop.

set mod-path "modules/"

#Aqui levantas el modulo de canales y lo configuras.
loadmodule channels
set chanfile "bot.chan"
set ban-time 300
set exempt-time 60
set invite-time 60
set force-expire 1
set share-greet 0
set use-info 1

#Lo que sigue son los parametros globales para control de
#canales.

set global-flood-chan 6:6
set global-flood-deop 0
set global-flood-kick 0
set global-flood-join 0
set global-flood-ctcp 6:6
set global-chanset {
-clearbans -enforcebans
+dynamicbans +userbans
-autoop -bitch
+greet +protectops
+statuslog -stopnethack
-revenge -secret
+autovoice +cycle
+dontkickops -wasoptest
-inactive +protectfriends
-shared -seen
+userexempts +dynamicexempts
+userinvites +dynamicinvites
}

set global-chanmode "nt"

#Si deseas tener un canal especifico con protecciones distintas
#las adicionas a partir de aqui.

channel add #canal {
chanmode "+nt"
idle-kick 0
need-op { needop "#canal" }
need-invite { needinvite "#canal" }
need-unban { needunban "#canal" }
need-key { needinvite "#canal" }
need-limit { needinvite "#canal" }
flood-chan 6:6
flood-deop 0
flood-kick 0
flood-join 0
flood-ctcp 6:6
}

channel set #canal -clearbans -enforcebans +dynamicbans +userbans +userinvites
channel set #canal -autoop -bitch +greet +protectops +protectfriends
channel set #canal -stopnethack -revenge +autovoice -secret -shared +cycle
channel set #canal +dontkickops -wasoptest -inactive -seen +statuslog

#estos son algunos procesos que se ejecutan automaticamente si
#el robot necesita Op, necesita ser invitado al canal o
#quitarce un ban.

proc needop {channelname} {
global botnick nick botpass eggnick
putserv "PRIVMSG NickServ :identify $eggnick $botpass"
putserv "PRIVMSG ChanServ :op $channelname $botnick"
}

proc needinvite {channelname} {
global botnick nick botpass eggnick
putserv "PRIVMSG NickServ :identify $eggnick $botpass"
putserv "PRIVMSG ChanServ :invite $channelname $botnick"
}

proc needunban {channelname} {
global botnick nick botpass eggnick
putserv "PRIVMSG NickServ :identify $botpass"
putserv "PRIVMSG ChanServ :unban $channelname all"
}

#Aqui levantas el modulo de servidor y lo configuras.
loadmodule server
set net-type 3
set nick "Bot"
set altnick "Bot_"
set realname "http://home.dal.net/sicario/"
set init-server { start }
proc start {} {
global botnick botpass eggnick
putserv "NickServ IDENTIFY $eggnick $botpass"
putlog "Identifying to NickServ (Auto-Identification)"
putserv "MODE $botnick +iw-xs"
}

#Aqui configuras la lista de servidores al cual se conectara el
#robot.
set servers {
tsunami.dal.net
ced.se.eu.dal.net
paranoia.se.eu.dal.net
}
set keep-nick 1
set use-ison 1
set strict-host 0
set quiet-reject 0
set lowercase-ctcp 0
set answer-ctcp 3
set flood-msg 3:3
set flood-ctcp 3:3
set never-give-up 1
set strict-servernames 0
set default-port 6669
set server-cycle-wait 10
set server-timeout 10
set servlimit 0
set check-stoned 0
set use-console-r 1
set debug-output 0
set serverror-quit 0
set max-queue-msg 350
set trigger-on-ignore 0
set double-mode 1
set double-server 1
set double-help 1

#Aqui levantas el modulo para CTCP eventos.
loadmodule ctcp
set ctcp-version "Eggdrop 1.6.3 admin: sicario"
set ctcp-finger "Eggdrop 1.6.3 admin: sicario"
set ctcp-userinfo "Eggdrop 1.6.3 admin: sicario"
set ctcp-mode 2

#Aqui levantas el modulo para IRC.
loadmodule irc
set bounce-bans 1
set bounce-modes 0
set kick-bogus-bans 0
set bounce-bogus-bans 1
set max-bans 45
set max-modes 45
set allow-desync 1
set kick-bogus 0
set ban-bogus 0
set kick-fun 0
set ban-fun 0
set learn-users 0
set wait-split 600
set wait-info 1
set mode-buf-length 200
set no-chanrec-info 1
set revenge-mode 1

set bounce-exempts 0
set bounce-invites 0
set max-exempts 20
set max-invites 20
set bounce-bogus-exempts 0
set kick-bogus-exempts 0
set bounce-bogus-invites 0
set kick-bogus-invites 0
set prevent-mixing 1



##### TRANSFER MODULE #####

#loadmodule transfer
#set max-dloads 2
#set dcc-block 0
#set copy-to-tmp 1
#set xfer-timeout 35

##### SHARE MODULE #####

#loadmodule share
#set allow-resync 1
#set resync-time 900
#set private-owner 1
#set private-global 1
#set private-globals "mnot"
#set private-user 1

##### FILESYSTEM MODULE #####

#loadmodule filesys
#set files-path "/home/robot/bot/filesys"
#set incoming-path "/home/robot/bot/incoming"
#set upload-to-pwd 0
#set filedb-path ""
#set max-file-users 2
#set max-filesize 700000

##### NOTES MODULE #####

loadmodule notes
set notefile "seafish.notes"
set max-notes 5
set note-life 90
set allow-fwd 1
set notify-users 1
set notify-onjoin 1

##### CONSOLE MODULE #####

loadmodule console
set console-autosave 1
set force-channel 0
set info-party 1

##### WOOBIE MODULE #####

# this serves absolutely no purpose and is for demonstrative
# purposes only
#loadmodule woobie

##### SEEN MODULE #####

##### BLOWFISH MODULE #####

checkmodule blowfish

##### ASSOC MODULE #####

# uncomment this line to load assoc support, i.e naming channels on
# the botnet
#loadmodule assoc

##### WIRE MODULE #####

# this module provides all the standard .wire commands via dcc.
# it's an encrypted partyline communication tool, compatible with wire.tcl
# uncomment this line to load it
#loadmodule wire

#Aqui colocas los scripts que vayas a usar, estos son algunos
#ejemplos. Recuerda que los scripts necesitan alguna
#configuracion adicional en el eggdrop o en el mismo script,
#lee la ayuda de cada script.

source scripts/bnc.tcl
source scripts/randversion.tcl
source scripts/bseen.tcl
source scripts/responde.tcl
source scripts/count.tcl
source scripts/ping.tcl
source scripts/chatstats.tcl

--------- End


Una vez que hayas terminado de editar el archivo de configuracion, procedes a
ejecutar el robot, como esta sera la primera vez, tendras que usar la
siguiente linea de comando :

#./eggdrop -m conf

Suponiendoce que hayas renombrado el archivo eggdrop.simple.conf por conf

Una vez que el robot se haya conectado, procedes a enviarle un privado por el
IRC, poniendo la siguiente linea :

/msg Bot hello

El bot te reconocera como su propietario u Owner, procedes a configurar tu clave

/msg Bot PASS tuclave

Ahora le haces un DCC Chat, pones tu clave y digitas .die , todos los
comandos del robot dentro del Chat son precedidos por un . como indicador de
comando. Tambien puedes matar el PID del proceso ejecutandoce del Bot.

#kill -9 <#PID>

Luego de haber echo esto, procedes a ejecutar el robot sin necesidad de poner
el parametro -m

#./eggdrop conf

Aquí te muestro los parametros para ejecucion del bot :
-n Ejecuta el robot en modo no background, mostrandote todos los
procesos del bot en la terminal de la consola.
-nt Ejecuta el robot en modo no background, mostrandote un entorno
parecido al ircII.
-nc Ejecuta el robot en modo no background, mostrandote informacion
del canal cada 10sg.
-m Se utiliza la primera vez en la ejecucion de un eggdrop, para
crear el archivo de usuarios.
-v Solo muestra la version del eggdrop al momento de desconectarce.

Niveles de acceso al robot.
Los comandos que puedas ejecutar tanto por DCC chat como por MSG, estan
definidos de acuerdo al nivel de acceso que tengas al robot.

n (owner) es el creador del robot, el maximo nivel.

m (master) tiene acceso a adicionar/eliminar/modificar
usuarios en el canal.

o (op) Puede tener estado de operador en el canal.

d (deop) No puede tener estado de operador en el canal.

k (kick) Un usario con este flag, es automaticamente
expulsado del canal.

f (friend) Este flag indica estar en la lista de Friends
del robot.

a (auto-op) El robot da automaticamente el modo de
Operador al entrar al canal, siempre en cuando el parametro
autoop de la configuracion este +autoop

v (auto-voice) El robot da automaticamente el modo de
Voice al entrar al canal, siempre en cuando el parametro
autovoice de la configuracion este en +autovoice

Para visualizar los comandos a los que tienes acceso, solo digita .help

Comentarios/sugerencias a :

sicario@phreaker.net



-----------------------------------------------------------------------------
-[ Eggdrops II]-------------------------------------------------------------
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
Comandos, BotNet, File Server y Scripts en el IRC Bot Eggdrop

Continuando con nuestros temas relacionados al IRC, en el numero anterior
explicamos como configurar, instalar y poner en linea un Eggdrop para Linux.
Ahora veremos como usar ese robot, comandos basicos, BotNet y uso de Scripts.

Comandos
--------
Algunos robots usan scripts para aceptar comandos mediante simples msg o
querys, comandos para administracion y control de un canal, llevar
estadisticas y otras utilidades. Lo mas recomendable es separar esos accesos,
el eggdrop viene por defecto para utilizar comandos de administracion solo
por DCC Chat, debido a la seguridad de los passwords y usuarios, es
preferible dejar que eso trabaje asi, los demas procesos como estadisticas u
otras utilidades, estan orientados al uso de cualquier usuario, entonces lo
logico es que trabajen por medio de msg o comandos públicos, luego hablaremos
de algunos de esos scripts.

Comandos de DCC Chat

Los comandos usados en un dcc chat van precedidos del .
Tomaremos como nombre del robot: Black-Dragon
Al costado de la sintaxis de cada comando colocare el atributo minimo
requerido para acceder a dicho comando, separado por un |. Ejemplo

adduser <nickname> <channel> | +m
------- -------------------- --
comando parametros atributo
----------------------------
sintaxis

+n <= owner
+m <= master
+o <= operador
+t <= botnet master


adduser <nickname> <channel> | +m
Este comando es usando para añadir un usuario, siempre en cuando este se
encuentre en el canal, monitoreado por el robot.
El robot automaticamente tomara los datos que necesita del info del usuario
en linea, es decir no habra necesidad de indicarle cual es su user id ni su
hostmask.

Ejemplos
.adduser sicario

Al anyadir un usuario tendras que asignarle atributos, ya sea owner, master u
operador, con el comando .chattr , si no configuras eso, el usuario no podra
usar ningun comando.
Luego de asignarle un nivel, el usuario tendra que configurar su clave,
enviando un mensaje con el comando pass <password>

Ejemplos
/msg Black-Dragon pass zasd763j <= Este comando es mediante msg


Una vez hecho esto, el robot confirma la configuracion de la clave enviando
un notice al nuevo usuario, para poder enviarle un Dcc Chat y entrar en el
party line del robot.

away [away-message] | all users
Funciona de la misma manera que el AWAY del IRC, solo que el estado de away
es marcado en el party line del robot, el mensaje de away es mostrado si
algun usuario utiliza el comando .who, para marcar tu retorno puedes
utilizar el comando .back o simplemente .away sin mensaje alguno.

Ejemplos
.away No estoy.


back | all users
Desactiva tu estado de away.

Ejemplos
.back


backup | +n
Se utiliza para realizar un backup de la lista de usuarios.

bans all
Muestra la lista de bans activos y los bans permanentes del robot.

Ejemplo
.bans all

+ban <channel> <hostmask> <reason> | +m
Este comando es similar a un auto kick ban, es decir el ban que se coloque es
permanente, y solo puede eliminarlo un usuario que tenga como atributo minimo
+m.

Ejemplos
.+ban #CDLR *!*@200.37.2.* Spammer <= Coloca un ban permanente a
todo el dominio 200.37.2.*
y con una razon.
.+ban *shit*!*@* No eres bienvenido <= Coloca un ban a todo aquel
que use como user id
*shit* o trate de usar
dicho texto como nickname.

El modo de colocar los parametros de este comando es el mismo a un /ban,
un /mode +b en el irc, puedes usar muchas variantes para el hostmask
dependiendo de que tanto quieras evitar el ingreso de alguien.


-ban <hostmask/number> | +m
Utilizado para borrar un ban permanente o temporal, de la lista de baneados
del robot.

Ejemplos
.-ban 1 <= Borra el ban numero 1 de la lista.
.-ban *shit*!*@* <= Borra el ban que cumpla *shit*@* como
hostmask.

banner <text> | all users
Muestra un mensaje a todos los usuarios conectados al bot en el party line.

Ejemplos
.banner El bot sera desconectado por unos momentos


boot <nickname> [reason]
boot <nick@bot> [reason] | +t
Expulsa a un usuario de el party line, con un mensaje opcional.

Ejemplos
.boot sicario fuera!


chattr <nickname> [attributes] [channel] | +m
Sirve para asignarle o quitarle atributos a un usuario, globalmente si el bot
esta en varios canales, o en un canal determinado.

Ejemplos
.chattr sicario +m <= Anyade a sicario como master global, es
decir en todos los canales
monitoreados por el robot.
.chattr sicario -o #CDLR <= Quita el nivel de operador a sicario
en el canal #CDLR.
.chattr sicario -m|+o #CDLR <= Quita el nivel de master globalmente y
da el atributo de operador en el canal
#CDLR a sicario.

Para ver la lista de atributos puedes usar el comando .help whois

- Solo el creador del robot puede anyadir y remover usuarios con atributos
"n" ( owner ), "m" (master) y "t" (botnet masters).




chnick <oldnick> <newnick> | +t
Cambia el nick de un usuario registrado en el robot.

Ejemplos
.chnick sicario daemon


chpass <nickname> [newpassword] | +t
Cambia el password de un usuario.

Ejemplos
.chpass sicario Xfrt45fd


die [reason] | +n
Finaliza la ejecucion del robot. Si no especifias una razon, saldra el nick
de el usuario owner que ejecuto el comando, como razon del die.

Ejemplos
.die Fuera de linea por mantenimiento


+host <nickname> <hostmask> | +m
Anyade un hostmask al registro de un usuario en el robot. Se usa este comando
cuando un determinado usuario, modifica su user id o el sitio de donde se
conecta.

Ejemplos
.+host sicario *!epic@*.sicario.org

Existe el comando ident, que se utiliza para autentificarse con el robot
mediante un msg.
Sintaxis del comando /msg <botname> ident <clave>
El unico requisito para usar este comando, es usar el nick con el que estas
registrado al robot o ignora el mensaje que le envies.

Ejemplos
/msg Black-Dragon ident 87653 <= Este comando es un simple msg.

Con esto el robot anyadira automaticamente tu nuevo hostmask y podras enviarle
un Dcc Chat y entrar al Party Line.


-host <nickname> <hostmask> | +m
Remueve un hostmask de un usuario en el robot.

Ejemplos
.-host sicario *!newbie@*.tux.org


+ignore <hostmask> [comment] | +m
Anyade un host a la lista de ignorados, con tu nickname y un comentario como
datos adicionales. Este ignore es permanente, asi que no expira
automaticamente, ya que es anyadido manualmente, no por alguna proteccion del
robot contra flood o generado por algun script, para eliminarlo tendras que
usar el -ignore.

Ejemplos
.+ignore *!*@*.nobody.net <= Ignoras a todo el que entre con ese
host.
.+ignore *!*@200.6.4.20 <= Ignoras al que entre con ese IP.
.+ignore *Zealot*!*@* Por gay <= Ignoras al que trate de usar como
nickname Zealot o como user id
Zealot. Ademas pones el motivo,
asi otro usuario con nivel de Master
sabra el porque del ignore.

-ignore <hostmask OR number> | +m
Remueve un ignore de la lista de ignorados del robot. Puedes usar el numero
de ignore o la mascara con que fue anyadida.

Ejemplos
.-ignore 3
.-ignore *!*@200.6.4.20


ignores | +m
Muestra la lista de ignorados del robot.

Ejemplos
.ignores

jump <irc-server> <irc-port>
Permite hacer un cambio de servidor, si no especificas el server, saltara al
proximo de la lista, en el archivo de configuracion.

Ejemplos
.jump
.jump matrix.dal.net 6668

kick <channel> <nickname> <reason> | +o
Sirve para expulsar un nick del canal monitoreado por el robot, se puede
especificar el canal, si el robot esta en varios canales, y el motivo del
Kick como parametros opcionales. Si pretendes aplicar este comando a un
usuario del robot, solo podras hacerlo con usuarios que tengan los mismos
atributos o menores que los tuyos.

Ejemplos
.kick sicario shut up! <= Expulsa a sicario con el mensaje
"shut up!"
.kick #CDLR sicario <= Expulsa a sicario del canal #CDLR sin
ningun mensaje.

kickban <channel> <nickname> <reason> | +o
Se utiliza este comando para expulsar y poner un ban a un determinado nick, el
ban que se coloca es temporal, este ban expira dependiendo del tiempo que se
se especifica en el archivo de configuracion del robot. Ademas se puede
utilizar hostmasks para remplazar al nickname.

Ejemplos
.kickban sicario shut up! <= Coloca el ban y expulsa a sicario,
con un mensaje.
.kickban #CDLR *!*@*.org.pe <= Coloca un ban a el dominio *.org.pe
en el canal #CDLR y expulsa a todo
aquel que cumpla esa condicion.
.kickban *sicario*!*@* <= Coloca un ban a todo aquel que use
como user id *sicario* o use como
nickname *sicario*


modules <botname> | +m
Da una lista de los modulos ejecutandose en el robot.

Ejemplos
.modules Black-Dragon

msg <channel/nickname> <message> | all users
Envia un mensaje a un canal o nick determinado.

Ejemplos
.msg #CDLR hola! <= envia un mensaje al canal #CDLR
.msg sicario Hey que tal <= Envia un mensaje a sicario.

Este comando se utiliza para que el robot pueda enviar mensajes con su propio
nick, es decir sicario recibira un query o mensaje con el nick de Black-Dragon
no sabra que usuario del robot lo esta haciendo, siempre en cuando sicario no
sea usuario del robot.

op <channel> <nickname> | +o
Utilizado para obtener o dar el mode de operador en un canal.

Ejemplos
.op sicario <= Da el modo de operador a sicario.
.op #CDLR sicario <= Da el modo de operador a sicario en el
canal #CDLR

deop <channel> <nickname> | +o
Quita el modo de operador. Solo se puede deopear a usuarios con igual o menos
atributos.

Ejemplos
.deop sicario
.deop #CDLR sicario

loadmod <module> | +n
Pone en ejecucion un modulo.
Loads a module.

Ejemplos
.loadmod stats


rehash | +n

Vuelve a cargar el archivo de configuracion del robot, se usa después de
hacer cambios, editando directamente o después de cambiar valores de
variables con el comando .set al archivo de configuracion. Al hacer un
rehash el robot se actualiza, vuelve a cargar los scripts, grava los
usuarios y vuelve a cargar la lista del user file.

Ejemplos
.rehash


say <channel> <message> | all users
Usado para enviar mensaje con el nick del robot a un canal determinado.

Ejemplos
.say Hola que tal
.say #CDLR hey tengo vida! soy inteligencia artificial


unloadmod <module> | +n
Desmonta un modulo en ejecucion.

Ejemplos
.unloadmod stats


+user <nickname> [hostmask] | +m
Este comando es para anyadir un usuario sin la necesidad de que este se
encuentre presente en el canal.

Ejemplos
.+user sicario *!epic@206.138.105.10 <= Anyades a sicario como
user, el cual se conecta de
dicho IP y usa como user
id epic.

Cuando un usuario es anyadido al robot, el registro que se crea de ese usuario
es en base a 3 datos :
1. El nick, en este caso sicario.
2. El user id, en este caso epic.
3. El hostmask.
Si el usuario no cumple con estos tres requisitos, el robot no lo reconoce
como user, no podra configurar su clave, ni mucho menos hacerle un chat al
robot, para entrar al Party Line y usarlo.


-user <nickname> | +m
Elimina el usuario especificado en el robot.

Ejemplos
.-user sicario

voice <channel> <nickname> | +o
Coloca el modo de +v a un determinado nick.

Ejemplos
.voice sicario <= Da modo de +v al nick sicario
.voice #CDLR sicario <= Da modo de +v al nick sicario en el canal
#CDLR

El uso del +v o voice, nada mas sirve si el canal esta en modo moderado, es
decir cuando solo los operadores y los que tengan este modo +v pueden
escribir en la ventana publica del canal.

devoice <channel> <nickname> | +o
Quita el modo +v a un nick.

Ejemplos
.devoice sicario
.devoice #CDLR sicario

who | all users
Muestra una lista de los usuarios conectados en el party line con el robot.

Ejemplos
.who

whois <nickname> | all users
Este comando es usado para visualizar informacion de un usuario, aun si este
no esta conectado al robot en el party line. Nos da el info, comentarios,
hostmask y los atributos de dicho usuario.

Ejemplos
.who sicario




BotNet
------

Los eggdrops tienen la habilidad de poder unirse con otros eggdrops, a esto
se le denomina BotNet, creando entre ellos una especie de pequenya red de IRC.
Esto te permite tener mas de un robot para proteger tu canal, los robots
linked pueden tener registros de usuarios comunes de forma global o de un
canal especifico.
Algunos terminos usados :
- BotNet: Termino usado para describir multiples robots conectados.
- Link : Termino que indica el actual enlace de un robot.
- Hub : Un eggdrops es llamado Hub, cuando uno o mas robots estan linked
hacia él.
- Leaf : Es un robot dentro del BotNet que no puede conectarse a mas de un
robot.
- Share : Termino usado para describir que dos robots estan compartiendo
usuarios.
- Share Bots : Termino para describir a varios robots compartiendo usuarios.

Flags :
h ( hub ) : Indica que el robot anyadido es un Hub.
a ( alternate ) : Indica que el robot es un Hub alternativo, si por
algun caso tu robot no puede conectarse al hub,
tratara de conectarse al hub con el flag alternate.
l ( leaf ) : Indicas que tu robot solo hara un link a un robot.
r ( reject ) : Un robot con este flag rechaza cualquier intento de
enlace.
s ( shared ) : Indica que puedes compartir el registro de usuarios
con el bot anyadido.

Comandos del BotNet :

+bot <bot> <address:botport>
Crea un nuevo usuario como Bot.

Ejemplos
.+bot Robot
.+bot Robot bot.sicario.net:65432


-bot <bot>
Elimina un usuario registrado como bot.

Ejemplos
.-bot Robot


botattr <nickname> [attributes] [channel]
Primite dar y cambiar los atributos de un Bot.

Ejemplos
.botattr Robot +s

botinfo
Muestra informacion de un Bot linked en el BotNet.

bots
Muestra la lista de Bots linked en el BotNet.

bottree
Muestra un diagrama en tree-format de los enlazados en el BotNet.

chaddr <bot> <address:botport>
Cambia la direccion Ip y/o el puerto de un Bot

Ejemplos
.chaddr Robot ircbots.sicario.net:4567


Seguiremos un procedimiento para crear un BotNet, teniendo como :
Black-Dragon <- Hub
Monitor y Compiler <- Leaf bots

Bottree :
Black-Dragon
|
\___ Monitor
|
\___ Compiler


Antes que nada tienes que asegurarte en el archivo de configuracion de tu
eggdrop, en la parte de channel set que este la opcion de shared como +shared.
Ademas debes levantar los modulos de transfer y share :
loadmodule transfer
loadmodule share

1. En el hub anyadimos los leaf bots :
.+bot Monitor
.+bot Compiler
2. Les asignamos los flags correspondientes a nivel de usuario :
.chattr Monitor +o <-- Operador
.chattr Compiler +o
3. Les asignamos los flags a nivel de botnet :
.botattr Monitor +s <-- Compartira sus usuarios con los leaf bots.
.botattr Compiler +s
4. En los leaf bots, anyades el Hub. Para esto tendras que saber el host y
el puerto por el cual el Hub acepta conexiones de Telnet.
Suponiendo que nuestro Hub tiene como host sicario.net y acepta conexiones
por el puerto 4567. Digitas en el party line del leaf bot:
.+bot Black-Dragon sicario.net:4567
5. Asignas flags de usuario al Hub :
.+chattrr Black-Dragon +o
6. Asignas flags del BotNet al Hub :
.+botattr Black-Dragon +h
Aqui es donde puedes anyadir al hub como alternate, poniéndole como flag +a
Si anyades el Hub como +h el leaf bot se conectara automaticamente al Hub
bot. Los pasos 4,5 y 6, como es obvio tendras que hacerlo en ambos robots
Monitor y Compiler.


File Server
-----------
Un eggdrop puede ser usado como un servidor de archivos, podras subir y
descargar archivos, una herramienta muy util para intercambio de informacion y
todo tipo de files. Para poder usar este recurso del Eggdrop tienes que
levantar el modulo de FileSystem en el archivo de configuracion de tu robot.

##### FILESYSTEM MODULE #####

loadmodule filesys
set files-path "/home/robot/bot/filesys" <-- Indicas la ruta donde se
almacenaran los archivos.

set incoming-path "/home/robot/bot/incoming" <-- Directorio por defecto.

set upload-to-pwd 1 <-- Este parametro indica :
. Si esta en 1, todos los archivos seran almacenados a partir del
directorio indicado en el files-path, eso quiere decir que dentro de
esta ruta puede haber sub-directorios, y los usuarios podran colocar
sus archivos donde mejor les convenga.
. Si esta en 0, todos los archivos seran almacenados en el directorio
indicado en incoming-path.

set filedb-path "" <-- Se supone que crea un
archivo oculto donde lleva un registro del File System, tienes que
indicar la ruta donde se creara el archivo .filedb .No lo he usado.

set max-file-users 2 <-- Indica la cantidad maxima
de usuarios conectados al file server del robot.

set max-filesize 700000 <-- Indica el tamanyo maximo en
KiloBytes que podra tener cada archivo que se quiera subir.
set dcc-limit 1 <-- Indica el numero de
downloads que puede tener un usuario.
set require-x 1 <-- Indica que un usuario
que tenga acceso al FilServer debe tener el flag de +x, 0 = Off 1 = On

#############################

Para poder usar el FilServer del robot es necesario tener como minimo el flag
de +o en el robot.
Hay dos niveles de usuario en el FileServer :
j ( Janitor ) : Tiene acceso a comandos de administracion del
fileserver.
x ( Xfer ) : Tiene acceso al fileserver, si esta el parametro set
require-x en 1.

Comandos del FileServer :
Para ingresar al fileserver, digitas : .files en el party line.
Janitor :
hide : Marca un archivo como oculto.
.hide <file(s)>
unhide: Quita el atributo de oculto a un archivo.
.unhide <file(s)>
lsa : Lista los archivos, incluyendo los ocultos.
.lsa [filemask]
mkdir: Crea un directorio.
.mkdir <dir>
mv : Para mover un archivo o un grupo, ademas se usa para
también renombrar archivos.
.mv <source> <dest>
rm : Borra un archivo.
.rm <file(s)>
rmdir: Borra un directorio vacio.
.rmdir <dir>

Xfer / Usuarios comunes.
ls : Lista los archivos del FileServer.
.ls [filemask]
get : Para descargar un archivo.
.get <file> [nick]
cancel: Para cancelar una transferencia.
.cancel <file>
pwd : Muestra el directorio actual.
.pwd
cd : Para cambiar de directorio actual.
.cd <dir>
quit : Para abandonar el FileServer.
.quit

El envio de archivos al fileserver consiste en solo enviar un dcc send al
robot.

Scripts
-------

Los scripts de un eggdrop son sentencias creadas mediante el lenguaje TCL.
Existen infinidad de scripts, dependiendo de su uso, se pueden clasificar en:

Scripts de proteccion
Scripts de uso general
Scripts de guerra

Vamos a mencionar algunos que utilizo.
- Bass's Seen script.

Este script crea una base de datos de los usuarios en linea, entradas,
salidas, desconexiones, kicks, bans de un canal. Permitiéndote buscar
usuarios por nick o direcciones de IP.
Primero descargas el script, editas el archivo bseen.tcl para configurar los
parametros que te indica, luego lo anyades en el conf de tu robot :
source scripts/bseen.tcl
y le das un .rehash al robot.
Los comandos que puedes usar son :
Publico : !seen <query> [#canal]
ejemplos :
!seen sicario
!seen sicario #cdlr <--- solo se indica el canal, si
el robot esta monitoreando
mas de un canal.

Por MSG : seen <query> [#canal]
Por DCC Chat : .seen <query> [#canal]

Ademas puedes usar variantes en los querys como por ejemplo :
!seen sica*
!seen *indecopi.org*
!seen *200.4.*
!seen *.edu #cdlr

El eggdrop posee un modulo que te permite realizar el seen sin necesidad de
un script, llamado seen.mod. Solo hace falta que levantes el modulo en el
conf del robot :
loadmodule seen
Si quieres revisar el modulo lo encuentras en el directorio de tu robot
../eggdrop/src/mod/seen.mod/

- Rand Version

Este script devuelve un ctcp-version reply aleatorio de una lista que puedes
modificar. Es muy util si no quieres que sepan que version de eggdrop estas
usando, o si quieres joder poniendo que tu robot esta en Windows usando mIRC.

Simplemente editas el randversion.tcl configurando los parametros que te pide
y lo adicionas en tu conf :
source scripts/randversion.tcl
Luego un .rehash

- Sentinel

Un script de proteccion, personalmente el mejor. Te permite controlar :
CTCP Flood al canal : Cuando envian peticiones de ctcp al canal.
Join/Part Flood al canal : Tecnica muy usada, que causa mucho danyo si lo
hacen varios floodbots.
Nick Flood al canal : Otra tecnica que consiste en el cambio de nicks para
crear flood.
Text Flood al canal : Técnica que consiste en enviar lineas continuas de
texto para crear flood en un canal.
Es muy comun ver robots que usan estas tecnicas combinadas y joden un huevo.
Teniendo este script bien configurado mandas a esos flooders al carajo.
Ademas posee parametros para configurar protecciones del mismo bot, es decir
evitar que le metan flood al mismo robot, ya sea de CTCP o msg, ignorando a
dichos atacantes. Es muy simple de configurar, te pongo aqui los parametros
mas importantes :

# Bot CTCP flood.
set sl_bcflood 4:4 <--- Indicas que solo va aceptar 4 peticiones de ctcp en
4 segundos de un mismo nick, si alguien le envia
mas de eso, ignora al host.
Si pones 0:0 asume que esta en off.

# Bot MSG flood.
set sl_bmflood 6:6 <--- Indicas que solo va recibir 6 lineas de texto en 6
segundos como mensajes de privado.

# Channel CTCP flood.
set sl_ccflood 4:4 <--- Indicas que solo podran hacer 4 peticiones de ctcp
al canal en 4 segundos y dara un kickban al flooder.

# Channel join-part flood.
set sl_jflood 3:3 <--- El mismo nick solo podra entrar y salir 3 veces en 3
segundos, para meterle un kickban por idiota.

# Channel nick flood.
set sl_nkflood 3:3 <--- Solo podra cambiarse 3 veces de nick en 3 segundos.

set sl_ban 5 <--- Cantidad de minutos que baneara el host del flooder
después de poner en moderado y de solo invitados el
canal.

set sl_banmax 50 <--- Maximo numero de bans activos en el canal.

set sl_igtime 5 <--- Cantidad de minutos para ignorar a los flooders.

set sl_ilocktime 5 <--- Cantidad de segundos en que el canal estara
bloqueado, este parametro es muy importante, si
pones 0 se asume que esta en off entonces el solo
invitados no se quitara automaticamente.

set sl_mlocktime 5 <--- Cantidad de segundos en que el canal quedara en
modo moderado.
Igual que el anterior, si pones 0 queda off y el
robot no lo quitara automaticamente.

Esos son los parametros mas importantes, con eso aseguras una proteccion
optima de tu canal.


- CHATstats

Este es un script muy bueno para crear estadisticas de un canal, creando una
base de datos con lo usuarios, palabras en un ranking. Estos reportes creados
por el script crean paginas en html que pueden ser actualizados por ftp
automaticamente por el robot de acuerdo a un tiempo determinado en la
configuracion o colocarlos en un directorio local.
Las paginas que crean son de :
- Informacion variada del canal ( ChanStats )
- Actividad en el canal durante horas especificas, basado en texto
escrito por los usuarios del canal. ( Activity Stats )
- Informacion variada del robot y del botnet ( BotStats )


Existe un modulo para el eggdrop llamado stat.mod que no viene por defecto en
el instalador.
El unico detalle es que si ya instalaste tu robot, tendras que hacerlo de
nuevo, copiando este modulo al directorio ../src/mod/ de tu instalador,
procediendo luego a configurar, compilar y por ultimo instalar el robot.
Este modulo te crea estadisticas en html de los canales monitoreados, ademas
que te proporciona comandos publicos.

- Spam Check

Script para controlar el Spamm en un canal, especificamente con los spammers
que envian privados al hacer un join o un part del canal, ademas puedes
controlar el envio de virus, ya que detecta los dcc que envian
automaticamente los usuarios.
Basicamente el funcionamiento del script consiste en un ciclo de entradas y
salidas del canal por parte del robot, para detectar Spammers, esto de
acuerdo a un tiempo determinado que configuras.
Aqui los parametros :

set mc_sc(ign:wrds) "pass op invite ident" <--- Aqui pones las palabras que
el robot va ignorar, si
alguien le hace un privado.
Ya que existen algunos
comandos por msg publicos o
solo para usuarios del robot,
no querras que los tome como
Spammers.

set mc_sc(act:wrds) { <-- Aqui colocas las palabras que el robot tomara en
*http://* cuenta para considerar que el privado proviene de
*www.* un Spammer.
*sex*
*join #*
*goto #*
}

set mc_sc(act:wrds) { <-- Si configuras esta linea tendras que comentar el
* parametro anterior por que con este set, le estas
} indicando al robot que tome cualquier palabra
como Spamm excepto los set mc_sc(ign:wrds). Te
recomendaria no usarlo, es preferible que tome
solo algunas palabras, por que si no estarias
anyadiendo palabras a ignorar y es todo un lio.

set mc_sc(sc:cyclerate) 9:20 <-- Aqui indicas el tiempo minimo y maximo para
realizar el ciclo de Join/Part del robot
para realizar el chequeo de Spammers, es
decir entre 9 como minimo y 20 minutos como
maximo el robot saldra n veces, la cantidad
de veces es aleatoria.


set mc_sc(joind) 10 <-- Aqui indicas el tiempo en segundos que el robot
estara fuera del canal antes de entrar nuevamente.

set mc_sc(exempt:op) 1 <-- Aqui indicas que los operadores no seran tomados
en cuanta al momento del chequeo de Spammers.
0 = Si 1 = No

set mc_sc(exempt:voice) 1 <-- Lo mismo que el anterior, solo que este es
aplicado a los usuarios con Voice.

set mc_sc(exc:ban) 5 <-- Aqui indicas la cantidad de minutos del ban al
Spammer.

set mc_sc(exc:message:dccsend) "Anti Spam, Don't dcc send me anything."
set mc_sc(exc:message:privmsg) "Anti Spam, Don't message me."
set mc_sc(exc:message:notice) "Anti Spam, Don't notice me."
set mc_sc(exc:message:invite) "Anti Spam, Don't invite me to your lame
channel."

Estos 4 parametros son los mensajes que el robot usa para expulsar a los
spammers.

set mc_sc(bant) 2 <-- Aqui indicas el tipo de ban que aplicara el
robot.
Tipos de ban :
0 - *!user@host.domain
1 - *!*user@host.domain
2 - *!*@host.domain
3 - *!*user@*.domain
4 - *!*@*.domain
5 - nick!user@host.domain
6 - nick!*user@host.domain
7 - nick!*@host.domain
8 - nick!*user@*.domain
9 - nick!*@*.domain

set mc_sc(glob_ban) 1 <-- Aqui indicas si el ban sera global o solo en el
canal donde fue detectado el spammer.
0 = Si 1 = No


Luego de configurar el TCL script, lo anyades en el conf del robot y le das un
rehash para activar la proteccion, en el Party Line con el robot usas el
siguiente comando :
.chanset <canal> +-spamcycle +-spamcheck

Ejemplos :
.chanset #cdlr +spamcycle +spamcheck <-- Indicas que el script
estara activo
en el canal #cdlr,
haciendo un ciclo de
Join/Part +spamcycle y
controlando los spammers
+spamcheck
.chanset #cdlr -spamcycle +spamcheck <-- Indicas que solo
controlara el spamm
mas no hara el ciclo de
Join/Part


Existe un inconveniente en el uso de este script al activar el spamcycle, en
servidores donde el acceso a tener op esta dado por servicios, por ejemplo en
DalNet, donde es muy comun la caida del ChanServ, servicio de administracion
de canales, cuando no esta activo el robot al salir del canal y volver a
entrar no podra subir como operador, la solucion esta en usar un robot
principal, que este siempre en el canal, usando otro para el Spam Check.
CDLR <-- Robot principal
Black-Dragon <-- Robot para el Spam Check
En CDLR adicionas a Black-Dragon como usuario y le das el flag de Auto Op
( +a ), problema solucionado.

Toda informacion sobre eggdrops, descarga de archivos, scripts :
http://www.eggheads.org/
http://www.egghelp.org/
http://www.eggfaq.com/
http://mars.age.psu.edu/
http://www.tclscripts.com/

Como habran podido ver, los eggdrops son robots de irc muy completos, de ahi
su gran preferencia por gente que conoce de IRC. Espero que con este y el
articulo tratado en el numero anterior sea suficiente para poder levantar tu
robot y administrarlo sin ningun problema.

Me despido, Cualquier duda o comentario:
sicario@phreaker.net


*EOF*

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT