martes, 23 de noviembre de 2010

Más animaciones

Hoy solo colorinchos y código de Structure Synth.
Vídeo en: http://videobin.org/+2ks/2vh.html


Este tardó 3 horas y media en ser trazado, lo que le hace a uno cuestionarse si será válido para cosas grandes (el video muestra el bucle dos veces)

Ah, sí, antes de nada decir que al parecer se puede establecer que al alacanzar el límite de recursividad de una regla se aplique otra con:
rule <nombre de la regla> maxdepth <profundidad> > <regla que se ejecutará al final>

Introducción a Structure Synth (y van 4), animaciones con la nueva versión

Pues sí, se supone que la serie se quedaría en el 2, pero resulta que acaban de lanzar la versión 1.5 de Structure Synth, que añade:
  • Un raytracer integrado, ya no hay que usar programas externos como Sunflow
  • Scripting con Javascript para hacer animaciones (a estas alturas más de uno, entre los que me incluyo, ya debe estar salivando =D )
  • Exportación de archivos OBJ (confieso que esto aún no se que es)
  • Cambios varios... en la GUI, se añadio un generador de números aleatorios para el preprocesador, etc
Y uno no se puede quedar sin hablar de ella =P
La nueva versión se puede descargar aquí: http://structuresynth.sourceforge.net/download.php

Empezamos...

domingo, 21 de noviembre de 2010

PoC de login seguro sobre HTTP

A raíz de este hilo en HackXCrack decidí programar un sistema de login que permitiese cierta seguridad ante atacantes pasivos aún funcionando sobre HTTP en plano, todo de forma transparente al usuario.

La idea es simple, cuando el usuario se intenta loguear, se le asigna un token que se utilizará como salt de una función hash que se aplicará a la contraseña (yo he utilizado MD5 porque tenía el código en python a mano), el resultado de la función será el que se envíe. El utilizar un token es importante porque evita ataques de replay, es decir, que el atacante pase a través de la función hash, enviando el resultado directamente, no tendría que conocer la contraseña original si el resultado es siempre el mismo. Además es importante que el token lo establezca el servidor y nunca quién se loguee, ya que lo podría modificar para que fuera el mismo que el del usuario original, con lo que se vuelve al ataque de replay.

Pero tiene bastantes problemas:
  • Si el atacante es activo (puede interceptar la conexión y modificar datos al vuelo), puede cambiar el código fuente de la página, invalidando esto.
  • Las contraseñas han de guardarse en texto plano, para poder realizar el hash a posteriori.
  • Como consecuencia de lo anterior se produce un aumento muy considerable de la carga del servidor, ya que en vez de hacer el hash una sola vez (ya que se supone que las contraseñas se guardan ya hasheadas), en el peor caso, ha de comprobarse el hash de todas las contraseñas cada intento de login.
La prueba (todo muy mínimo) está alojada en md5poc.webcindario.com, el código fuente se puede descargar aquí [md5poc.zip]

Btw... 1 año!!

miércoles, 17 de noviembre de 2010

De algoritmos genéticos y entropía

Hoy presento una idea chorra como cualquier otra, pero que a mi personalmente me emocionó ver que funcionaba, es simplemente un conjunto de un intérprete y un programa que modifica un trozo de bytecode al azar, obviamente pensados para trabajar juntos.

La idea es usarlos para generar un algoritmo usando algo análogo a la evolución natural, aplicando un script (solo por comodidad) para que elija que rama del algoritmo debe ser la que prevalezca, el código con un ejemplo: [instructolang.zip] (el script usa un trozo de código que se puede encontrar aquí http://math.co.ro/C/entropy.c, aunque va incluido en el .zip).

Por ahora está muy limitado, solo realiza las operaciones de suma, resta, intercambio de variables y asignación, de todos modos no creo que pueda llegar a ser turing completo por cosas como el problema de parada, que sería necesario resolver para evitar bucles infinitos.

martes, 16 de noviembre de 2010

SniperlCat 0.3.1, pasado a perl estricto y correjidos bugs varios

Esta versión no trae nada nuevo, así que va a ser corto. Se pasó todo el código a perl estricto (use strict), y se corriguieron fallos tontos al interpretar las opciones de la línea de comandos, por ejemplo, si se daemonizaba después de lanzar un hilo, el hilo se cerraba por que lo hacía el proceso original =P

El trigger no cambia (bueno, en realidad cambia el notify-send, que en vez de poner 0.3, es 0.3.1, pero es estético). El código completo está en github , aunque lo importante es el Sniperlcat.pl [o en plano]

ps: Ya me dirán por que ******* no dejarán usar break; en estricto !?

lunes, 15 de noviembre de 2010

Usando proxies con Python

Presento un pequeño código para usar proxies SOCKS 4 y 5 en python, en principio la idea era mostrarlo junto un servidor proxy en C, pero viendo que con esto se podía tumbar, tardará un poco más...

miércoles, 10 de noviembre de 2010

De Firefox y URL's extrañas [Offtopic]

La verdad, no se me ocurre como explicarlo, pero encontre que  intruciendo el número "420269270299515438631900510129391513177391570263223450330471608719833573145727622663393847726701366096253366170285832918664116229882221533373"
sacado de el resultado un post anterior, sin comillas en firefox, te lleva a una página web:
Sin embargo otros navegadores te mandan directamente al buscador (y se niegan a ir aunque pongas http:// delante), nslookup y dig dicen  'is not a legal name (label too long)' y telnet dice de primeras que "Name or service not known".

No creo que se pueda considerar un bug ni nada por el estilo, pero uno no puede evitar seguir tirando del hilo =P

martes, 9 de noviembre de 2010

Fibonacci rápido en python

No es gran cosa, pero aquí teneis una versión de los números de Fibonacci que no se demora mucho para obtener números grandes, por ejemplo, para el número de Fibonacci 10000, tarda 0.1 segundos
(Eliminé los números que hay por el medio para que no quede una imágen excesivamente grande)

sábado, 6 de noviembre de 2010

Clon de LOIC en python

Cierto anónimo sugirió hacer un clon de LOIC en python, aquí está un posible código, dividido en 5 archivos, no tiene interfaz gráfica, pero implementa el flooder de los 3 protocolos de LOIC.

Actualización: subido a github https://github.com/kenkeiras/pyLOIC

jueves, 4 de noviembre de 2010

Probando el Go de Google

Pues leyendo la linux magazine de este mes (donde me también di por primera vez con scratch) me encontré con un articulo sobre el lenguaje Go de Google y me entraron ganas de probarlo, la experiencia es bastante curiosa.