Acceder · Crear usuario
Anunciarse
Canal Personal   GONZO · Mia

Categoría IRC

Captcha para validar usuarios en chat IRC

El punto débil de una red IRC es que hoy en dia conectar a ellas es trivial. El problema viene cuando se conectan usuarios masivamente con programas automáticos para atacar la red, propagar virus o hacer campañas de spam.

Con la evolución de internet los problemas han ido evolucionando y hoy en dia es casi imposible controlar las conexiones por IP ya hay miles de máquinas infectadas por troyanos o que dan servicios que pueden ser utilizados publicamente de forma descontrolada. La solución que propongo es una implementación de los conocidos sistemas de validación por imagenes o capcha que ya abundan por toda la red.

Consisten en mostrar en los formularios una imagen con un numero, este ha de ser visualizado e introducido en un campo, el numero esta desfigurado de tal forma que sea muy difuso para que lo entienda un programa OCR y natural para un humano. La idea es la misma pero en IRC, es decir dibujando los numeros en ASCII de la forma mas aleatoria y complicada posible pero siempre siendo entendible por cualquier humano.

Las formas de aplicar el sistema capcha son variadas, pero la más inovadora que se me ocurre es hacer validar on connect a todos los usuarios sin registrar. De esta forma para conectar a la red tendria que validar o registrar el nick (más faciles de gestionar) limpiando la red de ataques, virus y spamers. El resultado es algo así:

Hola, si eres humano teclea este numero por favor. ############################# ############################# ############################# ############################# ############################# ############################# #############################

He liberado el código de este programa aquí.

 

41 GONZO
18-03-2005

mIRC scripting, mi comienzo en programación.

A principios del 2001, ya con suficientes nociones de internet y IRC, con apenas 15 años, descubro la programación que trae el famoso programa cliente mIRC. Para mi, el lenguaje de programación tenia las cualidades ideales para comenzar. Los programas no necesitaban compilarse para que funcionasen: simplemente con un botón abres el editor de texto, modificas el código y listo.

Otra ventaja es lo fácil y estructurado del lenguaje, la verdad es que me encanta, aunque como lenguaje se queda corto en potencia. Pero para hacer programillas sencillos y funcionales en redes de chat es el mejor.

Me pareció tan interesante y entretenido que comencé a buscar tutoriales e información, después de haber intentado intuir como funcionaba, pero no logré hacer nada: era programación y debía conocer el lenguaje. Recuerdo que los manuales con los que aprendí son los de la queridísima web ChevalierIRC.com.

En su sección scripting tiene unos 7 manuales, cada manual es un tema empezando desde los comandos básicos y acabando por control de sockets y ventanas. Leyendo y haciendo programillas para comprobar lo aprendido en un par de meses ya controlaba bastante. Hice programas para facilitarme las tareas en el IRC, protecciones y ese tipo de cosas.

Después cada idea y cada comienzo era lo más parecido a empezar un proyecto, con unos objetivos finales, una serie de versiones, pruebas y manuales pulidos hasta lograr la idea inicial. Poco despues comencé el proyecto InfoneR que publicaré más adelante.

11 GONZO
03-06-2004

Pol el Pueblo Virtual

 

Actualización 2008: Estamos desarrollando de nuevo POL 3.0 vía web, entra aquí: http://www.virtualpol.com

Abril, 2004. Uno de tantos días por internet, un tal Cheme llega hasta mí para preguntarme si tenía información sobre los mensajes globals; necesitaba saber datos técnicos de impacto de visitas, consecuencias y demás temas, y como he preparado varios para el Certamen del canal Literatura le informé gustosamente sobre todo lo que me preguntó.

 

Me contó que el hispano iba a promover su iniciativa, un Pueblo Virtual. Me quedé un rato pensando a lo que podía referirse con "Pueblo Virtual". Me imaginé un montón de cosas muy interesantes, le dije que era una gran idea aún sin conocer de qué iba el tema.

La idea consiste en crear un sistema político y social tan complejo (relativamente) como la vida misma. Para ello disponen de su web oficial VirtuaLPoL.com (dominio actualmente caducado) que incluye desde la Constitución aprobada por el parlamento, periódicos, código penal y muchas cosas más...

Me encantó tanto la idea que propuse hacer un Bot para el canal. Era lo que le faltaba al Pueblo, un sistema automatizado y en tiempo real con el que conseguir información. Consiste en un programa que conectado al IRC ofrece una serie de información y hace determinadas acciones interactuando con comandos de texto. Me decidí a hacerlo, programando en scripting de mIRC, el cual a estas alturas domino perfectamente, (pocas cosas puedo decir tan seguro) y actualmente el programa ya tiene 1058 lineas de código y sistemas de cargos, dinero, cuentas bancarias, votaciones, partidos y más sistemas que contaré más adelante...

En principio el bot es de mi propiedad, aunque es para los miembros de la Junta, de la que soy miembro. Esta Junta está formada por los creadores del Pueblo y nos encargamos de su mantenimiento pero sin interferir de ningún modo con el mundo. Por seguridad me reservo de publicar íntegras las 1060 lineas de código del VirtuaLPoL, al menos de momento. Pero aprovecharé mi flamante WebLog para publicar fragmentos peliagudos, como por ejemplo el código encargado de contar cada voto o el sistema de bases de datos o incluso algún día lo publicaré completamente.

La primera decisión antes de empezar a programar el VirtuaLPoL era decidir el lenguaje y la plataforma. Las dos opciones que teniamos era una conbinación de los lenguajes PHP y MySQL y alojado en un hosting web. Las ventajas era muchas y los resultados muy buenos pero mi falta de conocimientos del lenguaje y la dificultad de implementar lenguaje web PHP al protocolo de redes de chat IRC nos hizo elegir la otra posibilidad, scripting de mIRC mantenido por alguien de la Junta.

VirtuaLPoL necesita un sistema de bases de datos en las que almacenar la información de cada ciudadano, las cuentas bancarias, partidos políticos y demás. En scripting de mIRC no existe ningún sistema para ello, en cambio me tuve que inventar una forma de guardar organizadamente toda la informacion. Lo conseguí creando varios archivos de texto Ciudadanos.ini, Partidos.ini, etc... En cada archivo cada línea representa una fila y en cada fila hay campos separados por el carácter ":". Luego, se sacan o ingresan los campos a base de bucles haciendo búsquedas y demás temas complejos de programación, pero así funciona basicamente. De esta forma está resuelto el primer reto del bot VirtuaLPoL.

Como excepción he decidido publicar el fragmento del código que se encarga de validar y guardar el voto de las votaciones. El comando es VOTAR elección. Debo advertir que el fragmento es complejo y hay que dar por hecho que antes de llegar ahí el bot hace las comprobaciones necesarias certificando el nick como ciudadano de pol y dando a la variable %línea el número de línea que tiene ese nick en la base de datos. El código lo encontraras ampliando este texto pulsando en "Leer mas...".

Suerte a los curiosos! Podéis preguntarme lo que os apetezca comentándolo en este artículo. Un saludo a todos. Próximamente, más.

; Comando VOTAR eleccion
if ($1 == votar) {
; Si hay alguna eleccion
if ($2 != $null) {
; Si el campo de votacion no vale 1, 1 significa que ya se ha votado
if ($gettok($read -l $+ %linea ciudadanos.ini,7,58) != 1) {
; Comienza el bucle que busca la eleccion entre las elecciones de la votacion actual
set %s 0
:s.re
inc %s 1
if ($gettok(%elecciones, %s ,32) == $2) {
; Si existe esa eleccion
set %eleccion. $+ %s $gettok(%elecciones, %s ,32) $calc($gettok(%eleccion,2,32) + 1)
inc %num.votaciones 1
; Guarda log.
write -l $+ $calc($lines(votoslog.ini) +1) votoslog.ini $fulldate --- $address($nick,0) --- $nick vota a $2
; Te marca con un 1 como ya votado
write -l $+ %linea ciudadanos.ini $gettok($read -l $+ %linea ciudadanos.ini,1-6,58) $+ :1: $+ $gettok($read -l $+ %linea ciudadanos.ini,8-10,58) $+ :
; Envia confirmacion correcta de voto
.timerVOT 1 1 msg $nick 2,0 Has votado a $2 $+ . Gracias
goto final
}
; Si hace el bucle mas veces del numero de votos que hay
if (%num.elecciones == %s) {
; La eleccion obviamente no existe
.timerCBB 1 1 msg $nick 2,0 La eleccion no existe.
goto final
}
; Semilla que genera el bucle
goto s.re
}
; Cuando tu valor es 1 osea ya has votado
.timerWER 1 1 msg $nick 2,0Ya has votado una vez :)
; Fin
goto final
}
}

 

7 GONZO
03-06-2004

Visualizar códigos en mIRC sin riesgo

Un truquillo util para cuando te enseñan un código sospechoso de ser maligno por ejemplo oculto con $encode() o $chr() una forma segura de visualizarlo en un /echo y ver realmente que hace sin temor a que se pueda ejecutar. Cargar este alias y luego para usarlo /analiza.

alias analiza {
var %c $$?="Codigo a analizar"
$iif($chr(124) !isin %c,.timerA 1 0 echo 2 %c, echo 4 Contiene $chr(124) Separa los comandos.)
}
3 GONZO
04-07-2005

Liberando Software: captcha para IRC, para comprobar humanos con mIRC

En Marzo de 2005, en mi época de IRC. Enredando en este tipo de chat (hoy en declive) perdía el tiempo aprendiendo a programar un lenguaje de puertas cerradas llamado scripting de mIRC (es similar a C, sin compilación, solo ejecutable en mIRC, que por cierto es emulable en Linux con Wine).

Una de tantas aventuras fue la idea de crear un captcha en IRC, obviamente en texto plano. Entonces los captchas eran algo desconocido, empezaban a usarse en las webs, en cambio hoy te los puedes encontrar hasta para comentar.

Un captcha es una prueba que hace el servidor a un usuario para determinar si es un humano o no. Esto es fundamental en IRC por ejemplo para frenar y defender una red de ataques de clones (tan frecuente como el spam).

Mi captcha conseguía renderizar un numero aleatorio a una especie de gráfico con caracteres. Ademas lo ofusca con diversas tecnicas como fuentes de numeros distintos que varían aleatoriamente.

Aquí una muestra:

Hola, si eres humano teclea este número por favor. ############################# ############################# ############################# ############################# ############################# ############################# #############################
Esta tecnica es muy segura, en mi opinion es casi imposible que se consiga hacer un anti-captcha que se salte esta tecnica... porque con un minimo esfuerzo se pueden añadir nuevas fuentes de numeros (se podrían hacer infinitos numeros distintos, para entender esto ver fuentes.ini). Simplemente añadiendo una nueva fuente obligaria al que intente cazar este sistema a analizar de 0 los captchas para detectar todos los nuevos numeros y reprogramarlo. Un infierno...

Además se puede complicar más añadiendo cuadrados aleatorios en medio del numero, lo cual dificultaria su lectura un poco pero aumentaría exponencialmente su seguridad.

Me habría encantado implementarlo en el IRC-Hispano, pero pasaron de mi idea. La verdad es que hubiese sido divertido asegurar una red entera liberandola de bots de spam y clones de ataque, pero me di cuenta de que a esta gente le interesa que hayan clones, porque inflan sus estadísticas y así sus anunciantes les pagan más.

Como ando muy agradecido e involucrado con el Software Libre, voy a liberar este programa a todo el mundo que quiera echarle un vistazo, probarlo, utilizarlo, mejorarlo, rehacerlo... lo que queráis siempre que se respete razonablemente mi autoría.

Archivos (3):

  • captcha-IRC.mrc 1.0 [3kb] - El código fuente, crea un evento y el alias /validar.
  • fuentes.ini [2kb] - Las fuentes de números con distinto tamaño y forma, se pueden añadir cuanto se quiera.
  • validaciones.ini [0kb] - Log (vacio) para guardar quien consigue pasar el captcha y quien no, a partir de esto se pueden crear muchas aplicaciones.
Cómo instalarlo y usarlo en mIRC:
  1. Descargar los 3 archivos de arriba (abriendo uno a uno haciendo: Guardar como...)
  2. Guardarlos en el raíz de tu mIRC (ejemplo: c:/mIRC/)
  3. Ejecutar en mIRC: /load -rs captcha-IRC.mrc
  4. Ya está. Lo puedes probar con el comando /validar NICK esto enviará a ese nick una consulta captcha, notificará su acierto o error y lo registrará en validaciones.ini.
Para desinstalar: /unload captcha.IRC.mrc

4 GONZO
25-11-2007

Troyanos pillados en acción dando datos de conexión en canales de IRC

Investigando viejos fantasmas el pasado con mi MC (script mIRC que versioné del matachinches que utilizaban algunos opers del hispano) extraigo una pequeña muestra de que la inseguridad en Internet es permanente y constante.

Al grano. Un año atrás, mientras perdía el tiempo operando en el IRC-Hispano, iba mejorando cada detalle de mi "MC" que era una gran revolución para tener el control de la red frente a ataques de clones, por muy diversos que sean. Investigando me encontré con un patrón de bots, que en un principio pensé que eran clones para atacar (eran mi objetivo) pero estos eran distintos.

Consultando y probando descubrí que no hacian nada salvo estar conectados 24h, y intermitentemente entran y salen a unos canales aparentemente aleatorios pero que pude comprobar que tenian una lista común interna de unos 10. Cada vez que entraban a un o de estos canales dejaban un mensaje... sorpresa!

> Optix_Pro_v1.32_Server_Online:_{Ip_address:_[192-168-0-2]} {Computer_Name:_PUESTO1} {Current_User_Name:_Maquina1} {Identification_name:_Katabatic} {Installed_Trojan_Port:_3410} {Installed_Trojan_Password:_400400} {Windows_Version:_Windows_XP_5.1_2600_Service_Pack_2} {Webcam:_No} > Optix_Pro_v1.3_Server_Online:_{Ip_address:_[192-168-1-5]} {Computer_Name:_CASA-2F5VM1VE5T} {Current_User_Name:_antonio} {Identification_name:_Ahí_lo_llevas} {Installed_Trojan_Port:_3410} {Windows_Version:_Windows_XP_5.1_2600_Service_Pack_1} {Webcam:_Yes} > Optix_Pro_v1.3_Server_Online:_{Ip_address:_[192-168-0-128]} {Computer_Name:_PORTATIL} {Current_User_Name:_ROVIRA} {Identification_name:_Ahí_lo_llevas} {Installed_Trojan_Port:_3410} {Windows_Version:_Windows_XP_5.1_2600_Service_Pack_2} {Webcam:_No} > Optix_Pro_v1.3_Server_Online:_{Ip_address:_[192-168-1-65]} {Computer_Name:_CASA}{Current_User_Name:_aa} {Identification_name:_Ahí_lo_llevas} {Installed_Trojan_Port:_3410} {Windows_Version:_Windows_XP_5.1_2600_Service_Pack_2} {Webcam:_No}
Captura:

troyanos irc gonzo mc optix (ampliar)

Emm, está claro: son Troyanos.

El bicho parece llamarse Optix ¿? y estos canales de IRC son el medio utilizado para reportar al atacante los datos para poder acceder a estas máquinas. La dirección IP, el puerto y información extra para identificar cada máquina como el nombre del equipo, nombre de usuario, versión del Windows... y la guinda del pastel: ¿Webcam? Yes

Recuerdo que, cuando era mi menester, vigilaba estos raros y desconocidos canales en espera del supuesto atacante en busca de recolectar sus fechorías. Recuerdo pillar a más de uno anecdóticamente, pero resulta que ninguno sabia nada de los troyanos y que entró en estos canales aleatorios por casualidad. Claro.

3 GONZO
04-11-2006

anticlonesx v1.3 addon para mIRC detener ataques de clones en IRC

Nueva versión de mi addon anticlonesx el que mejor funciona a la hora de defender un canal de ataques de clones. El addon es para mIRC y funciona bloqueando temporalmente un canal de IRC y de esta forma impidiendo el paso.

La nueva versión soluciona algunos bugs poco importantes, el código es más rápido y detecta más patrones de clones. Quizá notareis más falsos positivos, pero no saltará la protección ni si quiera durante un split porque deben saltar 3 falsos positivos seguidos y en menos de 3 segundos para que actue el bloqueo.

Instrucciones de instalación:

  1. Descargar o visualizar este archivo: anticlonesx.mrc (v1.3)
  2. Guardar como... de tal forma que el archivo quede colocado en el directorio raíz de tu mIRC. (ejemplo: c:mIRCanticlonesx.mrc)
  3. Ejecutar /load -rs anticlonesx.mrc
  4. Ya está. El anticlonesx quedará activado y sin necesidad de ningún control por parte del usuario.

2 GONZO
11-07-2006

Proxy list, lista de proxys para conectar al IRC chat

209.63.57.11:80 86.105.241.240:3128 84.52.1.135:3128 81.92.99.5:3128 71.197.161.5:3128 69.19.14.10:3128 209.172.43.194:3128 69.248.89.131:4480 68.32.84.54:6588 201.14.77.26:6588 201.10.161.207:6588 71.197.204.237:7212 70.190.3.41:7212 59.144.162.90:8000 203.113.130.49:80 200.76.36.195:3128 202.58.86.3:80 203.162.168.163:80 203.150.27.133:8080 203.113.130.59:80 202.58.86.2:80 202.58.86.6:80 216.216.32.194:8080 193.166.153.15:80

Una de proxys de irc para... en realidad no se para qué las quereis, pero me lo pedis cada dia. Ya me contareis que tal van, estan actualizados, son de hace 120 segundos.

123 GONZO
03-04-2006

Anti-clones MC

mc matachinches

En mi tiempo de OPER del hispano pocas cosas me divertian más que glinear clones. Frecuentemente, (unas 8 veces al dia) saltaba la alarma de joins masivos y posible ataque con clones y con el caidas por flood y molestas para los usuarios, habia que parar el ataque para ganar.

Al principio se me ocurrió crear el anticlonesx que contrastando las coincidencias de patrones habituales con los nicks en el evento JOIN (al entrar a un canal) era capaz de detenerlos en el mismo instante en el que entraron. Cumplio su función y aún hoy sigue siendo útil, incluso sigue siendo un addon incluido en el script de opers.

Pero solo funcionaba con patrones conocidos, aunque lo mantenia muy actualizado no siempre era efectivo y sobre todo dejaba de ser lo optimo pues el ataque en realidad se producia, los clones entranban y despues eran baneados, había que mejorarlo.

Y llegó el MC, en realidad fue una mejora de un programa que ya tenian, el MataChinches (no recuerdo quien lo programó, creo que nunca fue oper) consistia en sacar los datos de un who y mostrarlos en una lista tipo ListBox y con el raton seleccionar y expulsar del chat (a partir de ahora glinear). Esta era la unica manera de glinear masivamente y defenderse de un ataque masivo. Curiosamente (y con parte de razón) el uso de este tipo de herramientas estaba totalmente prohibido, bajo pena de... vete a saber qué ;) Y digo con razón porque la verdad es que era un peligro, si mezclas descuidos, nervios y falta de conocimientos podrias expulsar a 400 usuarios facilmente (al final acabé poniendole un limite de max 100 glines para curarnos en salud)

No fueron pocas las discusiones sobre los "automatismos" que en verdad simplemente era una herramienta para facilitar el trabajo y poder contrarrestar los ataques que muchas veces quedaban impunes (y siguen quedando). El caso es que empezó siendo una herramienta mia exclusiva y secreta, que despues pasó a manos de mi confianza, luego a otras confianzas y más y al final resultó que lo tenian casi todos los opers y con ello el peligro se hacia notable. No niego que estuviesen capacitados para usarlo de forma segura pero no se, yo me confundi un par veces quizá el peligro era yo ;) Pero fue divertidisimo, al final acabé glineando más de 10.000 proxys en unos meses (me "prohibieron" glinear jejeje) y acabé conociendo a todos los que atacaban, muchos de ellos lo hacian por divertirse sin atacar realmente y pasamos ratos divertidos, cuantas veces me habran pedido este addon! seguro que les hará gracia, espero que comenteis algo por aqui.

Y bueno, en definitiva el MC llegó a lo que se ve en la imagen, compacto y funcional, cumplio su cometido y fue mantenido "privado" pero a estas alturas me creo que los nuevos opers ya lo tendrán y como que es hora de publicarlo y ya está, el código no lo publico sencillamente porque hace falta +k para usarlo (por los who masivos) además aún tiene utilidad y se puede mantener actualizado para los nuevos patrones.

23 GONZO
26-08-2005

anti-spam y patrones en IRC

Hace un par de meses IRC-Hispano añadió un nuevo tipo de clones que pululan por la red. En concreto entran a canales grandes, a veces se acumulan un par de ellos y normalmente son expulsados por parecer spamers. Y no es que hagan spam pues precisamente su funcion es la contraria la cual claramente se puede comprobar si pruebas a hacerle spam en query a alguno de estos clones. Como novedad estos tienen un patrón definitivo, lo llamo asi porque su nick, identd y realname es tan variable y tan aleatorio que es imposible de localizar por medio de /who. Tanto es así que son confundidos habitualmente como spamers y son expulsados.

Para no confundirlos con spamers se puede listar su IPvirtual mediante el comando /who y si sale una lista de tamaño considerable (más de 50...) y tiene clones que son webchats pues claramente son del IRC-Hispano en la lucha anti-spam. Al ejecutar por ejemplo /who *AL9aZa.AYa6b7.virtual x saldrá algo asi:

/who *AL9aZa.AYa6b7.virtual x VSoy!GS|UF5oUu@AL9aZa.AYa6b7.virtual ICgo-O8NhpO4 sUgG7N!fxnSiUMQkj@AL9aZa.AYa6b7.virtual 5DqT W0n-SGP3LpSY-!SaDw84q@AL9aZa.AYa6b7.virtual qXpJq6o IU6Y1FLHtfK!N1Aia@AL9aZa.AYa6b7.virtual mi|JEM10S| kzIQCboY!bLsc4LkaL@AL9aZa.AYa6b7.virtual rsBIgo j0vClFg7!SFGFk3B6@AL9aZa.AYa6b7.virtual jt5n3k pvPiNoT!CQXyxEeP@AL9aZa.AYa6b7.virtual CLN-E1ie i5xmB046!4CmJvlH@AL9aZa.AYa6b7.virtual HQRD|-UIu

15 GONZO
20-07-2005
◄ Página anterior
Blogs Teoriza
Ocio Tecnología Cuidarse Informática Contactos Cultura Vacaciones Interesante Místico Personal
Ocio Alarmas Intimidades Hosting Chat Poesías Hoteles CompraVenta Tarot GONZO
Juegos Tecnología Salud Adsl Messenger Mundo Viajes Videos Videncia Mia
CineTV Inventos Internet Música EnCrucero Polémicas
Deportes Virtual Seguridad ComoHacer Turismo Legalidad
Motor Ubuntu Actualidad
Hardware
Enlaces: Teorizo, MovilZona, Gordo navidad 2009, Loteria del Niño, Gordo 2009

Blogs Teoriza™ · Aviso Legal · · Red de Blogs en Español · 7ms · 2003-2009 ©