Bueno, pues ya estamos aquí otra vez
en Kali Linux
y hoy vamos a hacer algo un poco diferente..
Hoy voy a realizar un ataque DoS,
bueno, una demostración de ataque DoS.
No podemos dosear sitios al azar y ya está,
sobre todo porque no tenemos permiso y es ilegal.
Pero tenéis la opción de crear vuestro propio entorno virtual
y hacer lo que queráis con él. No importa, es vuestro.
O podéis utilizar un servidor web ya existente
para llevar a cabo el ataque DoS.
Este servidor web ya existente resulta ser vuestro router.
Vuestros routers domésticos tienen servidores web.
Podéis acceder a sus interfaces por el puerto 80.
Casi todos los que conozco, a no ser que los haya deshabilitado
el proveedor ISP o algo por el estilo.
No sé, pero normalmente tienen el puerto 80 abierto,
para poder hacer correcciones o modificaciones.
Bueno, si el router es vuestro, podéis hacer lo que queráis con él
y hoy voy a usar el servidor web de mi router,
que estoy usando para el ejercicio de pentesting,
para realizar este tipo de ataque.
Para demostrarlo, en realidad.
Bueno, al principio hablé un poco de los ataques DoS.
Expliqué qué es DoS, y qué es DDoS, pero además de estos
también hay dos categorías para cada uno.
Hay ataques lógicos y ataques de fuerza bruta.
Los lógicos dependen de los errores lógicos del otro lado,
del servidor del otro lado, de cómo maneja las solicitudes.
Hubo algunos problemas con Apache,
que amontonaba solicitudes, solicitudes incompletas
y esperaba respuestas sin parar.
Bastante fácil de dosear. Mandabas muchas solicitudes
y no hacía falta mucho ancho de banda para que se colgara.
Pero eso fue hace tiempo. Ahora han arreglado muchas cosas,
pero ningún sistema es perfecto por mucho que lo intentes
y por mucho que te esfuerces o dinero inviertas en él,
siempre habrá algo de lo que abusar.
Es totalmente imposible hacer un sistema a prueba de todo,
a prueba de un ataque DoS.
Obviamente, las grandes empresas como Google
o Facebook o Twitter, o de ese tipo,
tienen servidores demasiado grandes para dosear,
Necesitarías literalmente...
No sé cuántos ordenadores y cuánto ancho de banda para dosearlo,
lo cual es genial, porque mi cuenta de Gmail está siempre accesible,
siempre está disponible y nunca se cuelga.
Fantástico. Pero si os acordáis...
No sé cuándo fue, hace un año o dos,
consiguieron dosear la página de Paypal, bastante chungo.
No estoy seguro de cómo lo hicieron,
probablemente tendrían un gran número de ordenadores al fondo,
básicamente zombies, ordenadores secuestrados
que generaban muchas solicitudes y al final la página cayó,
pero no me toméis la palabra, podéis gritar
en los debates que no fue de esa forma o cosas así,
porque no conozco tanto la historia.
Solo quiero aportar un ejemplo,
básicamente, lo que intento decir es
que si tienes suficiente ancho de banda, ya sea tuyo
o ancho de banda combinado con otros ordenadores,
podrás realizar ataques DoS significativos en páginas web,
ataques de fuerza bruta en páginas web.
Si no tienes suficiente ancho de banda, la fuerza bruta no te irá muy bien.
Puedo ver una pregunta formándose en los debates:
¿cuánto ancho de banda necesito para hacer esto o lo otro?
Pues no lo sé, depende
de lo que pueda soportar el servidor del otro lado.
Si sabéis cuánto puede soportar el servidor del otro lado,
podéis hacer estimaciones. Cuántas solicitudes...
¿Qué velocidad tiene? ¿Cuánto ancho de banda tiene?
Y entonces lo podéis representar en número de solicitudes
y entonces podéis ver cuántas solicitudes podéis generar para
realizar un ataque DoS significativo.
Por ejemplo, no sé... he visto ataques DoS parciales.
Por ejemplo, no sé, vamos a poner un caso ficticio.
Una página soporta 10000 usuarios y
puedes generar tráfico suficiente para ocupar la banda de 5000 usuarios.
Si la página tiene como media de usuarios conectados,
no sé, seis o siete mil,
eso significa que dos mil usuarios no podrán acceder
a esa página por tu ataque DoS, mientras que 5000 sí podrán.
Esos son ataques parciales, no sé cómo de útil es,
pero lo podéis comprobar también si queréis.
Lo que queremos es conseguir un ataque DoS completo.
Que no quepa duda de que lo que estamos haciendo hoy
es un método de fuerza fruta, esto no es lógico,
no es algo lógico ni nada de eso,
aunque se pueda interpretar como tal, pero nosotros
lo estamos inundando con solicitudes en muy poco tiempo,
y como este es nuestro propio router de casa,
tenemos la capacidad de enviar un montón de solicitudes
en muy poco tiempo con bastante facilidad.
Para este propósito de hoy no necesitáis instalar nada.
Más bien usaremos algo prefabricado... bueno,
no una herramienta prefabricada, sino una que viene preinstalada.
Se llama hping3, antes solo era hping, pero ahora es hping3.
Vamos a echar un vistazo al menú de ayuda
para ver qué opciones tenemos aquí.
Usaremos la bandera SYN, así que haremos el SYN flood.
Tenéis también estas otras cosas, podéis mirar estas banderas.
Podéis inundar el servidor con todo tipo de solicitudes.
Ese es uno de los puntos a favor, es una de las cosas buenas
de esta herramienta, que puedes...
Vale, si un flood no funciona, prueba otro.
Si ese no funciona, vale, prueba otro.
Alguno tiene que funcionar. No porque los servidores web
sean muy malos o algo así, sino porque
muchas veces, la gente no dispone del capital necesario
o lo que sea, para invertir en seguridad, porque
como sabéis, un experto en seguridad de un servidor
es alguien que lo defiende de ataques y que
teclea para asegurarlo, y eso cuesta mucho dinero.
Así que... eso. No todo el mundo está dispuesto a invertir.
En muchos sitios pequeños, por desgracia
lo he visto, es bastante triste que la gente...
que la competencia pague para, no sé,
hacer que caigan los demás sitios en Navidad
o en las vacaciones o cosas así.
Eso no está nada bien.
He instado a todo el mundo que vea este tutorial
y lo recomiendo y lo afirmo, etcétera:
No hagáis ataques DoS a páginas de las que no tengáis permiso.
Os pueden llegar multas graves por realizar...
por realizar ataques DoS en páginas web
que no tenéis permitido modificar.
Sé que puede ser un poco agotador que lo diga en cada tutorial,
o en medio de tutoriales o algo así, pero creedme, es importante.
No me gustaría que alguien se metiera en líos ni nada de eso.
Bueno, como decía, vamos a inundarlo con banderas SYN.
Va a ser un SYN flood, pasaremos la bandera SYN
y por aquí arriba tenemos el intervalo.
Dejadme que vea dónde esta. Perfecto, se usa -i para el intervalo.
Este es el formato, escribimos -i, luego u y luego la cantidad de
microsegundos para ese intervalo, cuán largo será el intervalo.
Vosotros, por supuesto... si puede ser más corto, claro, ponedlo,
Mirad qué puede funcionar, porque no sé, algunos servidores
si ven demasiadas solicitudes en un intervalo muy corto,
te bloquean, pero tranquilos, podéis dirigirlo a Proxychains
y si lo dirigís a Proxychains
o mediante un VPN o algo así,
podéis seguir rotando las direcciones IP
para que tengan que bloquear continuamente las IP y eso no...
no pueden bloquear permanentemente las direcciones IP
porque no es muy inteligente hacer eso,
ya que inhabilitarían a otras personas
cuando se reasignen esas direcciones IP por MACs y en su página
las direcciones IP quedarán bloqueadas
durante un par de días o así
y tendrías que cambiarla o algo por el estilo.
Pero si bajamos, despejamos la pantalla
y listo, entonces, hping,
eso es, aquí viene lo importante, aquí está la bandera SYN
y aquí podéis hasta ajustar el puerto
y luego escribís la dirección IP. Tenéis que conocer la dirección IP.
Os he enseñado cómo obtener la dirección IP del nombre principal
y os he enseñado cómo obtener la IP de vuestro portal predeterminado,
solo hay que escribir "route". Os lo enseño
una vez más por si acaso.
Route. Y aquí podéis sacar la IP del portal predeterminado,
que será vuestro router.
Eso no debería ser problema.
Bueno, vamos a despejar la pantalla.
Volvemos al comando,
si lo habéis escrito. Perfecto, entonces tenemos "hping3 -i "
"u100 -s -p" y luego espacio y la dirección IP.
Muy simple, no hay cosas complicadas, para nada,
aunque es compatible con expresiones normales
y puedes escribir, puedes combinarlo con bash scripts
y escribir algo extremadamente complicado,
lo cual en realidad no es necesario.
Lo que necesitáis principalmente es para...
saltar de una dirección IP a otra
o para inundar varios servidores a la vez, por ejemplo,
estás doseando un servidor, no sé, de 3 a 5
y de 5 a 7then from 5 to 7 estás doseando otro servidor, también
hay trucos que podéis emplear.
He decidido no enseñarlo aquí, pero lo podéis encontrar online,
cómo cambiarlo, pero el motivo por el que no lo enseño aquí,
cómo cambiarlo de un servidor a otro...
es muy poco probable, o sea, no puedo deciros cómo de improbable es
que tengáis ancho de banda suficiente
para llevar esto a cabo.
Y si necesitás cambiar de un servidor a... a ver,
estos ataques no funcionan enseguida.
Hay que esperar un rato a que tenga efecto.
Os lo voy a demostrar, aquí, voy a...
abrir mi máquina Windows
y abrir Explorer, no importa qué navegador uses,
esto funciona de manera universal, entonces 192.168.1.1.
Esta es la página de mi servidor web y me pide que acceda
con mi usuario y mi contraseña, y si digo Cancelar
me dirige aquí, dice "objeto protegido",
"Este objeto del servidor RomPager está protegido"
y no puedo acceder a él, pero no pasa nada,
no puedo acceder al interior, pero aún puedo entrar en la página.
Aún me solicita que acceda, lo que significa que el sitio funciona,
Puedo acceder sin problema.
Ahora no hace falta, así que no lo haré,
pero no importa, estáis en vuestros routers, podéis acceder
y realizar un ataque DoS, funcionará de la misma manera.
Lo estoy haciendo en LAN, pero este ataque,
como he dicho, es viable también en internet,
por medio de internet, ningún problema.
Ahora que hemos comprobado que el sitio funciona
vamos a comenzar a inundar, y podéis ver que el flood
está en progreso, el ataque DoS está en progreso
y si vuelvo a la máquina Windows 8.1...
Spoiler! Esto aún no va a funcionar, si vuelvo a cargar
me va a pedir el nombre de usuario y la contraseña.
Tenemos que esperar, vamos a darle un minuto o dos,
aproximadamente, para que el ataque tenga efecto.
Voy a abrir Firefox en mi ordenador físico también.
Perfecto, me pide nombre de usuario y contraseña
y como veis, hasta en nuestra red de área local tenemos que esperar.
Imaginaos, si fuera por internet o algo así
tardaría más. Podéis ver lo rápido
que se generan las solicitudes,
las está transmitiendo una tras otra, una tras otra...
Los intervalos son supercortos
y debería empezar a funcionar en cualquier momento,
dejadme que refresque la página. No, no va.
Vale, pues voy a dejar aquí el tutorial,
lo voy a dejar un rato en marcha y luego volveré.
No voy a cambiar nada, si lo hago os lo diré,
lo único que voy a hacer es cortar el tutorial
y dejarlo en marcha un rato, luego volveré
para enseñaros que ya no se puede acceder al sitio,
que ya no sale este mensaje de error,
que ya no sale el panel de acceso,
que ya no podremos acceder ni hacer nada de eso.
Dice que está esperando, así que voy a ver si tengo que...
Sí, tengo que cortar aquí el tutorial para no aburriros
mientras está en marcha.
Bueno, nos vemos en unos minutos
y entonces veremos qué ha pasado.
Pues ya estoy aquí. De nuevo en mi...
Bueno, en mi máquina virtual no, de nuevo en mi ordenador físico
pero la máquina virtual está aquí, voy a desbloquearla.
Lo he dejado en marcha unos 15-20 minutos
y me he dado cuenta de cuál era el problema,
por qué no realizaba el ataque DoS.
Lo había hecho. Lo había hecho. Pero...
tened en cuenta que esto es una máquina virtual
y sus recursos son limitados, así que cuando grabo
mi ordenador físico previene el ataque DoS
mientras grabo porque acaparo muchos recursos
y podéis... de hecho, os lo voy a enseñar.
Perfecto, veis que el VLC que uso para grabar está usando un 242%
mientras que VirtualBox usa un 84-86
y cuando no estoy grabando, VirtualBox usa un...
normalmente usaría un 140
si estoy haciendo algo serio o cosas así.
Solo para que lo veáis... mirad, dice
he ido a 192.168.1.1 y dice "Problema al cargar la página",
así que se ha reiniciado la conexión, no es posible
acceder a ella, pero como ahora estoy grabando
y los recursos se han redistribuido, si vuelvo a cargarla
veis que sigue habiendo un problema al recargar.
Voy a ver si estoy conectado.
De hecho, lo he dejado en marcha tanto tiempo
que he bloqueado prácticamente todo,
qué inoportuno...
Voy a volver a Kali
y a detener esto.
En cualquier momento. Pérdida de paquetes del 63%.
Bueno, no está mal teniendo en cuenta que lo he agobiado,
y era incapaz de cargar la página, pero ahora voy a
desconectar.
Y ahora a reconectar.
¿Por favor?
Genial, has podido desconectar.
Y volver a conectar. Eso es.
Vamos a probar otra vez. Vale, me pide
un nombre de usuario y una contraseña. Funciona.
Veréis, la lógica básica tras lo que he hecho,
lo que no os puedo enseñar directamente es, como ya he dicho,
que si estoy grabando durante el ataque
mi ordenador no dispone de recursos suficientes
para llevar a cabo las dos cosas, y el ordenador físico
siempre será prioritario.
Si lo hacéis y no estáis grabando
o haciendo nada más de fondo, funcionará.
De hecho, doseará vuestro router,
como veis dice "problema al cargar la página"
porque cuando he empezado a grabar he visto que cargaba
y cuando he dejado de grabar he visto que no cargaba.
Así que la diferencia está en que VLC antes de grabar
usa bastantes recursos, sobre todo procesador...
sobre todo tiempo de CPU.
En fin, esto era un ejemplo.
Os animo a que lo probéis en el vuestro.
Este es el comando que he utilizado.
Funciona en mi router, mirad si va en el vuestro.
También podéis configurar un servidor propio si queréis,
ya sea en un ordenador Windows o en uno Linux,
o lo que sea, estas cosas son completamente libres.
Si necesitáis ayuda con esto, por favor,
no tengáis problema en contactarme en los debates,
publicad una pregunta o lo que sea.
Yo os ayudaré encantado.
Un inciso que me gustaría hacer al final de este tutorial
es que no deberíais mandarme mensajes directos,
sino publicarlo en la sección de debates
y ahí puede seguir el debate y puedo responder también
y otros pueden ver lo que habéis preguntado,
y si se han encontrado con el mismo problema pueden ver
las posibles soluciones. Pueden decir, por ejemplo
"he probado esto, esto y lo otro y no funciona"
y puedo dar inmediatamente una tercera o cuarta solución
que pueda funcionar.
Bueno, lo dicho, probad este ataque, veréis que
lo más probable es que funcione, dependiendo del router.
No sé si tenéis algún tipo de router Cisco
o un router Juniper o algo por el estilo, Hi-Tech...
Puede que no vaya, pero como estáis en LAN
estoy bastante seguro de que lo hará, sobre todo porque
tenéis mucho ancho de banda con el que inundarlo.
Bueno, me despido de vosotros
y espero veros en el próximo tutorial.