El ataque de denegación de servicio (DoS) es una de las técnicas más comunes entre los actores de amenazas. Durante este ataque, los hackers inundan el ancho de banda del usuario objetivo con paquetes de datos con el propósito de interrumpir los servicios de la dirección IP o URL de la víctima. Expertos en hacking ético del Instituto Internacional de Seguridad Cibernética (IICS) demuestran continuamente formas de desplegar ataques DoS para desarrollar métodos de prevención eficientes, como bloqueo de dirección IP, con la ayuda de algunas herramientas.
Fail2Ban es una herramienta utilizada para bloquear direcciones IP sospechosas cuando éstas envían múltiples solicitudes a un servidor específico. Esta herramienta escanea el archivo de registros y bloquea las direcciones IP que realizan tareas repetitivas contra una misma dirección, actualizando la política de firewall del usuario para negar nuevas conexiones de direcciones IP potencialmente maliciosas.
Ataque DoS desde un sistema operativo Ubuntu
- Aquí ejecutaremos un ataque DOS usando Slowloris, una herramienta muy comúnmente utilizada en esta clase de ataques
- Abra terminal en su máquina Ubuntu (del lado del atacante)
- Escriba sudo apt-get update
- Escriba sudo apt-get install python3
- Escriba sudo apt-get install python3-pip
- Escriba pip3 –version
root@ubuntu:/home/iicybersecurity# pip3 --version pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
- Escriba pip3 install Slowloris
root@ubuntu:/home/iicybersecurity# pip3 install slowloris Collecting slowloris Downloading https://files.pythonhosted.org/packages/a6/37/5ae3d027727122039f52a22d278f1d73f564e03e5fdb93f10e3a2f26aa06/Slowloris-0.2.0.tar.gz Building wheels for collected packages: slowloris Running setup.py bdist_wheel for slowloris … done Stored in directory: /root/.cache/pip/wheels/bd/a1/f1/35dd5184db4e890b6ff5c992ff1f7a1b8b30e9bcd89aa6f7ba Successfully built slowloris Installing collected packages: slowloris Successfully installed slowloris-0.2.0
- Escriba slowloris –help
root@ubuntu:/home/iicybersecurity# slowloris --help usage: slowloris [-h] [-p PORT] [-s SOCKETS] [-v] [-ua] [-x] [--proxy-host PROXY_HOST] [--proxy-port PROXY_PORT] [--https] [--sleeptime SLEEPTIME] [host] Slowloris, low bandwidth stress test tool for websites positional arguments: host Host to perform stress test on optional arguments: -h, --help show this help message and exit -p PORT, --port PORT Port of webserver, usually 80 -s SOCKETS, --sockets SOCKETS Number of sockets to use in the test -v, --verbose Increases logging -ua, --randuseragents Randomizes user-agents with each request -x, --useproxy Use a SOCKS5 proxy for connecting --proxy-host PROXY_HOST SOCKS5 proxy host --proxy-port PROXY_PORT SOCKS5 proxy port --https Use HTTPS for the requests --sleeptime SLEEPTIME Time to sleep between each header sent.
- Escriba slowloris 192.168.1.9; este comando iniciará dos ataques normales contra la máquina víctima (máquina Kali)
- La captura de pantalla anterior de Wireshark muestra la recepción de los paquetes TCP mientras la víctima ejecuta el servicio apache2. Por defecto, Slowloris envía múltiples paquetes de datos en el puerto 80
- Arriba se muestra un escenario muy simple de cómo se despliega un ataque DoS. Utilizaremos Fail2Ban como defensa contra estos ataques
Máquina de la víctima (Con sistema operativo Kali Linux)
Instalación de Fail2Ban
- Vamos a realizar las pruebas en distintas distribuciones de Linux. Al atacar usaremos Ubuntu 18.04 y para defender usaremos Kali Linux en:
- Kali Linux (víctima/defensor) – 192.168.1.9
- Ubuntu (atacante) – 192.168.1.8
- Para instalación en Kali Linux, abra el terminal
- Escriba sudo apt-get update
- Escriba sudo apt-get install fail2ban
- Escriba sudo service apache2 start
- Escriba sudo systemctl status apache2
root@kali:/etc/fail2ban# sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2019-11-05 02:09:37 EST; 2h 47min ago Process: 4749 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 4753 (/usr/sbin/apach) Tasks: 152 (limit: 4662) Memory: 91.3M CGroup: /system.slice/apache2.service ├─4753 /usr/sbin/apache2 -k start ├─4754 /usr/sbin/apache2 -k start ├─6073 /usr/sbin/apache2 -k start ├─6074 /usr/sbin/apache2 -k start ├─6075 /usr/sbin/apache2 -k start ├─6077 /usr/sbin/apache2 -k start ├─6079 /usr/sbin/apache2 -k start ├─6080 /usr/sbin/apache2 -k start ├─6081 /usr/sbin/apache2 -k start ├─6083 /usr/sbin/apache2 -k start ├─6084 /usr/sbin/apache2 -k start ├─6085 /usr/sbin/apache2 -k start ├─6086 /usr/sbin/apache2 -k start ├─6087 /usr/sbin/apache2 -k start ├─6088 /usr/sbin/apache2 -k start ├─6089 /usr/sbin/apache2 -k start ├─6090 /usr/sbin/apache2 -k start ├─6091 /usr/sbin/apache2 -k start ├─6092 /usr/sbin/apache2 -k start ├─6093 /usr/sbin/apache2 -k start ├─6094 /usr/sbin/apache2 -k start
- Presione Ctrl+c
- Antes de iniciar el servicio de Fail2Ban tenemos que configurarlo. Para eso:
- Escriba cd/etc/fail2ban
- Escriba nano jail.conf
- Aquí cambie:
- bantime = 30
- findtime = 50
- maxretry = 10
- Luego ingrese enabled = true después de [apache-auth], [apache-badbots], [apache-noscript] y [apache-overflows] como se muestra a continuación:
ignorecommand = /path/to/command ignorecommand = "bantime" is the number of seconds that a host is banned. bantime = 30 A host is banned if it has generated "maxretry" during the last "findtime" seconds. findtime = 50 "maxretry" is the number of failures before a host get banned. maxretry = 10 HTTP servers # [apache-auth] enabled = true port = http,https logpath = %(apache_error_log)s [apache-badbots] Ban hosts which agent identifies spammer robots crawling the web for email addresses. The mail outputs are buffered. enabled = true port = http,https logpath = %(apache_access_log)s bantime = 48h maxretry = 1 [apache-noscript] enabled = true port = http,https logpath = %(apache_error_log)s [apache-overflows] enabled = true port = http,https logpath = %(apache_error_log)s maxretry = 2
- Escriba sudo nano /etc/fail2ban/jail.local y copie el texto mostrado a continuación. También puede cambiar maxretry, findtime en la sección [apache]
[apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache2/*error.log maxretry = 2 findtime = 50 ignoreip =
- Escriba sudo /etc/init.d/fail2ban start
root@kali:/etc/fail2ban# sudo /etc/init.d/fail2ban start [ ok ] Starting fail2ban (via systemctl): fail2ban.service. root@kali:/etc/fail2ban#
- Guarde el archivo y escriba sudo systemctl status fail2ban.service
root@kali:/etc/fail2ban# sudo systemctl status fail2ban.service ● fail2ban.service - Fail2Ban Service Loaded: loaded (/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2019-11-05 05:02:20 EST; 3s ago Docs: man:fail2ban(1) Process: 6475 ExecStartPre=/bin/mkdir -p /var/run/fail2ban (code=exited, status=0/SUCCESS) Main PID: 6476 (fail2ban-server) Tasks: 13 (limit: 4662) Memory: 17.9M CGroup: /system.slice/fail2ban.service └─6476 /usr/bin/python3 /usr/bin/fail2ban-server -xf start Nov 05 05:02:20 kali systemd[1]: Starting Fail2Ban Service… Nov 05 05:02:20 kali systemd[1]: Started Fail2Ban Service. Nov 05 05:02:21 kali fail2ban-server[6476]: Server ready
Máquina del atacante (Con sistema operativo Ubuntu)
- Escriba slowloris 192.168.1.9 -p 80; el programa comenzará a enviar los paquetes a la IP seleccionada para el ataque
- 192.168.1.9 es la IP objetivo
- -p se usa para indicar el número de puerto. Usar el puerto 80 genera el tráfico
root@ubuntu:/home/iicybersecurity# slowloris 192.168.1.9 -p 80 [05-11-2019 02:08:59] Attacking 192.168.1.9 with 150 sockets. [05-11-2019 02:08:59] Creating sockets… [05-11-2019 02:08:59] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:09:14] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:09:29] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:09:44] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:09:59] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:10:14] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:10:29] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:10:44] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:11:00] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:11:15] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:11:30] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:11:45] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:12:00] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:12:15] Sending keep-alive headers… Socket count: 150 [05-11-2019 02:12:30] Sending keep-alive headers… Socket count: 150
Máquina de la víctima
- Ahora vaya a la máquina víctima con sistema operativo Kali Linux. En Wireshark, se aprecia el ataque DoS desde la máquina atacante a la dirección IP de destino, mencionan los expertos en hacking ético
- Escriba sudo fail2ban-client set apache banip 192.168.1.8
- Este comando bloqueará la dirección IP de destino. La captura de pantalla siguiente muestra que 192.168.1.8 ha sido bloqueada
- Acorde a los expertos en hacking ético, la captura de pantalla anterior muestra que ninguno de los paquetes está siendo recibido
- Ahora, si verifica el estado de Fail2Ban notará que la IP del atacante ha sido bloqueada
- Para verificar el estado, abra otro terminal y escriba sudo fail2ban-client status apache
root@kali:/var/log/apache2# sudo fail2ban-client status apache Status for the jail: apache |- Filter | |- Currently failed: 0 | |- Total failed: 1 | - File list: /var/log/apache2/error.log - Actions |- Currently banned: 1 |- Total banned: 1 `- Banned IP list: 192.168.1.8
- Arriba se muestra como bloqueado el estado de la máquina atacante (Ubuntu) 192.168.1.8, mecnionan los expertos en hacking ético
The post Prevención de ataques DoS – Una guía paso por paso appeared first on Noticias de seguridad informática.
Ver Fuente
No hay comentarios.:
Publicar un comentario