Crear usuario · Acceder

Categoría IRC

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

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.

4 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

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

12 GONZO
20-07-2005
Página siguiente ►◄ Página anterior
 
Ocio Tecnología Mujer Informática Contactos Cultura Vacaciones Interesante Místico Personal English
Ocio Alarmas Intimidades Internet Chat Poesías Turismo Legalidad Tarot GONZO Leisure
Juegos Tecnología Salud Adsl Messenger Mundo Viajes Videncia Mia Woman
CineTV Inventos Mujer Música Tech
ComoHacer
Enlaces: MovilZona Eventos Sagas Loteria Navidad 2012 Test de velocidad Pedrea

Blogs Teoriza™ · Red de Blogs · · Aviso Legal · Creative Commons · 2003-2011