Apuntes LSI: Fundamentos y Categorías de Ataques PDF
Document Details
Uploaded by InstrumentalSelenium
Santi Castro e Iria Pardo
Tags
Summary
These notes cover the fundamentals and categories of attacks in information security. They discuss vulnerabilities, threats, and detection systems, including topics like CVE, NVD, CVSS, and various attack vectors. The document also briefly touches on different types of attacks like DoS, DDoS and mentions some hardware attacks like BAD-USB and Keyjack.
Full Transcript
Apuntes LSI Santi Castro e Iria Pardo TEMAS 1 Y 2: Fundamentos y Categorías de ataques Seguridad de la información: medidas preventivas y reactivas que permitan resguardar y proteger la información buscando mantener la CIA:...
Apuntes LSI Santi Castro e Iria Pardo TEMAS 1 Y 2: Fundamentos y Categorías de ataques Seguridad de la información: medidas preventivas y reactivas que permitan resguardar y proteger la información buscando mantener la CIA: Confidencialidad, Integridad y Disponibilidad. Seguridad informática: Nombre genérico que se da al grupo de herramientas diseñadas para proteger los datos y evitar la intrusión de los hackers. Seguridad informática subconjunto Seguridad información Vulnerabilidad: Debilidad de un activo o control que puede ser explotada (exploit) por una amenaza. Posibilidad de que una amenaza se materialice sobre un activo y sea una vía de ataque potencial. Ej: Defectos en el hardware. CVE - Common Vulnerabilities and Exposures: Listas de vulnerabilidades de todo tipo de plataformas que tenemos constancia. Les da un ID, una descripción y al menos una referencia pública. Formato del identificador CVE-YYYY-NNNN (YYYY indica el año y NNNN el número de vulnerabilidad). NVD - National Vulnerability Database: Repositorio del gobierno de EEUU de datos de gestión de vulnerabilidades basados en estándares representados mediante el Protocolo de automatización de contenido de seguridad. Aporta mucha más información que el CVE. Gestionada por el NIST (National Institute of Standards and Technology) CVSS - Common Vulnerability Score System: Sistema puntuación gravedad vulnerabilidad (1-10). CWE - Common Weakness Enumeration: Es una clasificación, en esta lista se mantienen clusters, que son clases/tipologías de debilidades o vulnerabilidades. CPE - Common Platform Enumeration: Una lista donde se registran distintos tipos de plataformas (sistemas, software, paquetes..). OVAL - Open Vulnerability and Assesment Language: Lenguaje que se utiliza para intercambio de información de este tipo de vulnerabilidades y listas. Apuntes LSI 1 0-day: Vulnerabilidad que se acaba de descubrir y no está registrada. No tiene parches. Ataques Zero-day: explotan una vulnerabilidad 0-day. Amenza: Peligro que puede explotar una vulnerabilidad produciendo un incidente/ataque. Troyanos Sniffers KeyLoggers Stuxnet: gusano/virus que espía y re-programa sistemas. Ataque: Acción de producir un incidente explotando una vulnerabilidad. Ataque por fuerza bruta DoS Poisoning Injections Los ataques suelen tener origen, destino y flujo, necesario proteger estos 3 campos, y muchas veces se pone mucho énfasis en proteger el Origen Destino y nos olvidamos del Flujo. Attack Vector (Network, Adjacent, Local, Physical): Método que utiliza una amenaza para atacar un sistema. Network: vulnerabilidad que puede explotar a través de la red. Adjacent: vulnerabilidad que ataca en tu propia LAN. Local: vulnerabilidad que ataca localmente en tú máquina. Physical: que tenemos que tener físicamente la máquina. Tipos de ataques: Ataques Pasivos: No afectan a los recursos del mismo, son muy difíciles de detectar. Se dan en forma de escucha o de observación no autorizada de las transmisiones. Ataques activos: Alterar los recursos o afectar a su funcionamiento. Suplantación de identidad Apuntes LSI 2 Repetición: Un atacante intercepta y repite datos transmitidos para ganar acceso no autorizado o para llevar a cabo un ataque. Modificación de mensajes Interrupción del servicio Ataques frecuentes aplicativo WEB XSS - Cross Site Scripting: Buscan vulnerabilidades en una aplicación web para introducir un script dañino. Ej: En un formulario, si no hace bien la validación de entradas, le meto en medio de los datos a introducir (parámetros) código/script que hace que pueda dañar/fastidiar la aplicación. SQL Injection: Un atacante introduce código SQL malicioso en una aplicación para manipular la base de datos y obtener información no autorizada. Esto ocurre cuando la aplicación no valida correctamente las entradas del usuario. LDAP Injection: Es una técnica de inyección de código utilizada para explotar aplicaciones web que podrían revelar información confidencial del usuario o modificar información representada en los almacenes de datos LDAP (Protocolo Ligero de Acceso a Directorios). Este ataque ocurre cuando una aplicación no valida adecuadamente los datos de entrada. Sistemas de Detección: IDS - Intrusion Detection System: Es un programa usado para detectar accesos no autorizados a un ordenador o a una red, es decir, son sistemas que monitorizan el tráfico entrante y lo cotejan con una base de datos actualizada de firmas de ataque conocidas. Ante cualquier actividad sospechosa, emiten una alerta a los sys-admins. No mitigan la intrusión, solo alertan. IPS - Intrusion Prevention System: Es un software que protege sistemas contra ataques al realizar un análisis en tiempo real de conexiones y protocolos. Identifica incidentes mediante patrones, anomalías o comportamientos sospechosos, permitiendo el control de acceso y la implementación de políticas que pueden descartar paquetes y desconectar conexiones, actuando de manera preventiva. Sensores: Software en muchos puntos de la red para prevenir/detectar intrusiones red. Apuntes LSI 3 Categorías de Ataques Dependiendo de qué parte del flujo se ataque. Ataque de Interrupción: Se daña o se deja de dar un servicio. Detección inmediata. Ataque a la disponibilidad. Destrucción de equipos. Borrado de programas, ficheros, BBDD, etc. Ataques contra organizaciones: DoS - Denial of Service: Saturación de un servicio o máquina a través de múltiples flujos de información, generando la caída o mal funcionamiento del servicio. Lógico: Explotar una vulnerabilidad del sistema. Solución: parchear. Inundación: No determinado por vulnerabilidades. Apertura de muchas conexiones para detener o ralentizar servicios. Difíciles de solucionar, algunas opciones: Traffic shaping: Mecanismo de control del tráfico cuyo objetivo es evitar una posible sobrecarga en redes mal dimensionadas. Vinculado al QoS. Limitar Nº de conexiones por IP → No sirve, autodenegación de servicio. Ejemplo de por qué no funciona: Apache | Squid (Caching and forwarding HTTP proxy). Todas las peticiones pasan por el proxy antes de llegar al servidor. El proxy tiene todo tipo de firewalls, protección contra malware, sistemas de reputación (no deja entrar a servers con baja reputación). No podemos limitar por Nº de conexiones por IP, todas las conexiones vienen con la IP del proxy. Apuntes LSI 4 Ideal: Identificar distintas conexiones legales de las conexiones de ataque. DDoS - Distributed Denial of Service: Igual que un DoS pero desde varios puntos de conexión hacia un mismo punto de destino. La forma mas común es usando BotNets (red de dispositivos infectados controlados remotamente por un atacante). Cosas extras que dijo en clase: Redundancia: tener todo duplicado ayuda a la seguridad. Ej: macromalla de fibra óptica por autopistas. RECETGA - Red de Ciencia y Tecnología de Galicia: Es una red basada en fibra oscura. Se conoce por fibra oscura a los circuitos de fibra óptica que están instalados pero que, por el contrario, están sin utilizar, es decir están redundados. Apuntes LSI 5 Estándares T468A Y T568B: Especifican cómo interconectar los cables RJ45. ¿Qué es el cable directo? Un cable directo es un tipo de cable de par trenzado que se usa en las redes de área local para conectar un ordenador a un núcleo de red como por ejemplo un enrutador. Para el cable de conexión directa se aplica solo un estándar de cableado: ambos extremos utilizan o bien el estándar de cableado T568A o bien el estándar T568B. ¿Qué es el cable cruzado? Un cable cruzado de Ethernet es un tipo de cable Ethernet que se utiliza para conectar dispositivos de computación directamente. Un extremo usa el estándar de cableado T568A y el otro utiliza el estándar de cableado T568B. El cableado interno de los cables cruzados de Ethernet invierte las señales de transmisión y recepción. Este tipo de cable se usa con más frecuencia para conectar dos dispositivos del mismo tipo: por ejemplo, dos ordenadores, o dos switches entre sí. Apuntes LSI 6 Cables de solo conexión: o cables ‘sniffing’ los cuales permiten a un ‘sniffer’ monitorizar el tráfico de red sin ser detectado. BAD-USBs (turtle, rubbertack…): son dispositivos hardware maliciosos que se hacen pasar por un HID “Human Interface Device”, llevan una capacidad de procesado para poder atacar una máquina. Keyjack: Es un ataque que se centra en interceptar o capturar las señales de teclados inalámbricos. Consiste en interceptar las señales de radiofrecuencia (RF) entre el teclado y el receptor inalámbrico, con el objetivo de capturar las pulsaciones de teclas. Mousejack: Similar al Keyjacking, los atacantes interceptan las señales de radiofrecuencia entre el ratón y su receptor inalámbrico. Pueden enviar comandos falsos al sistema a través de la conexión inalámbrica comprometida. Estandar 802.11x: Sistema de autenticación de control al medio. Tipo eduroam que hay que autenticarse. Ataque de Interceptación: Consiste en el robo o interceptación de datos de un sistema mediante un programa. Es uno de los incidentes más difíciles de detectar ya que no hay una alteración del sistema. Es un Ataque contra la confidencialidad. Ej: Sniffing. Uso de keyjacks o mousejacks. Pirateo de software NO CRACKEADO, el crackeado sería de modificación. Keyloggers Apuntes LSI 7 Ataque de Modificación: Una entidad no autorizada accede a un recurso y lo modifica. Ataque contra la integridad. Ej: Modificación de una BBDD. Crackeo de Apps. MITM (man in the middle) modificando tráfico. Buffer Overflow. SPOOFING (esto creo que podría estar dentro de generación) Suplantación. Tipos de spoofing: Mail spoofing: atacante falsifica la dirección de correo electrónico del remitente para hacer que un mensaje parezca que proviene de una fuente confiable. IP spoofing: Falsear la ip de origen de un paquete. De forma parecida el MAC spoofing. Smart-spoofing: permite utilizar cualquier aplicación cliente gracias a la usurpación de una dirección IP. Ataque de generación o fabricación: Ataque contra la autenticidad. Ej: Fake emails Dns Spoofing. Proporcionar respuestas DNS falsas para redirigir a los usuarios a sitios web maliciosos o para interceptar el tráfico. spyware Herramientas de inyección de paquetes: Hping3 Scapy Packit Apuntes LSI 8 RECORDATORIO: IPV4 32 bits, IPv6 128 bits, MAC 48 bits TEMA 3 Information Gathering Host discovery: Descubrir las máquinas que hay en una red. Fáciles de descubrir server web, server dns, server mail, maquinas en DMZ. No siempre es tan fácil como enviar un ping, trafico ICMP puede estar cortado. Uso de herramientas como Nmap. DMZ - Zona Desmilitarizada: Red perimetral que se encuentra dentro de la red interna de la organización. En ella se encuentran ubicados exclusivamente todos los recursos de la empresa que deben ser accesibles desde Internet, como el servidor web o de correo. Nmap: Herramienta para escaneo de puertos. Permite host discovery y fingerprinting. Port-Scanning: Una vez haya encontrado las máquinas para atacar, busco puertos abiertos por los que poder entrar a la máquina/red. Fingerprinting: Técnicas para saber que SO esta corriendo en una maquina y poder aprovechar sus vulnerabilidades. También para conocer qué servicio y su versión están corriendo detrás de un puerto y aprovechar. Footprinting: Es el proceso de recogida de información. Puede ser: Pasivo: Sin interactuar directamente con el objetivo. Ej: Redes sociales, wikis, blogs, webs, etc. Activo: Ingeniería social, obtener información confidencial mediante la manipulación de usuarios legítimos. Apuntes LSI 9 SET - Social Engineer ToolKit: Es un programa de código abierto que permite ensayar diferentes vectores de ataque de ingeniería social. Algunos ataques: Spear phishing, ataque web, generación de multimedia infecciosa, mailing invasivo, etc. Google Hack, Dorks: BBDD con información semántica de Google. Uso de esa semántica para intentar recolectar información y hackear todo tipo de infraestructuras. Pasos para realizar un ataque: 1) Recolección de información en fuentes públicas Stalking de personas u organizaciones, a través de wikis, redes sociales, etc. OSINT - Open Source INTelligence: Manejo de fuentes abiertas, referencia al conjunto de técnicas y herramientas para recopilar información pública. Revistas, redes sociales, foros, etc. Herramientas: MALTEGO: aplicación de minería y recolección de información utilizada en “Information Gathering”. NETGLUB: También es una aplicación de minería y recolección. Herramientas para extraer metadatos: Creepy: extrae metadatos de geolocalización de fotografías y las coloca en un mapa. Foca - Fingerprinting Organizations with Collected Archives: Utilizada principalmente para encontrar metadatos e información oculta en los documentos que examina. 2) Buscar los rangos de la red Esto se puede hacer mediante: NIC - Network Information Center: Se encarga de llevar la gestión de cada dominio, creación, direccionamiento, rangos de direcciones publicas de un dominio, etc. RIPE NCC- Redes IP Europeas: Supervisa la asignación y registro de los números de recursos de Internet (direcciones IPv4, direcciones IPv6) en Europa, Oriente Medio y partes de Asia Central. Apuntes LSI 10 IP6.nl: Es una página que tú pones un dominio IPV6 y te da todo el rango de dominios, todas las IPV4 asociadas a esa web, etc. 3) Identificar Maquinas (Host discovery) Normalmente las IPs importantes (routers, DNS, etc) tienen las primeras direcciones de la red, preferible “camuflarlas” en medio de todas las IPs para que sea más difícil encontrarlas. PING: Se puede filtrar, podría dar la maquina por muerta cuando esta en funcionamiento. Traceroute: Te va marcando todos los routers que va pasando un paquete hasta la maquina objetivo. Si algún router filtra el trafico ICMP genera “*****” y no somos capaces de identificar el camino. Para esto hace el uso del campo TTL de la cabecera IP. Con la opción -T usa paquetes SYN por lo cual si te mostrará toda la ruta aunque estuviese filtrado el tráfico ICMP. Robtex: Recolección de información sobre máquinas además de Log List. Mira en el NIC y en el RIPE entre otras. Uso de Servidores DNS para obtener información: Domain Name Server: Varios por cada dominio. Normalmente redundados en la misma red, ideal que estén redundados en la nube por si se nos cae nuestra red. Resolución directa: Nombre → IP Resolución inversa: IP → Nombre Organización jerárquica Apuntes LSI 11 Servidor primario y secundario: Primario: mantienen de forma explícita la información de DNS, la BD de resoluciones nombre-IP. Secundario: no mantienen nada, cada cierto tiempo se conectan al primario y hacen una transferencia de zona (Replicación). Tipos de registros DNS: Registro A: registro de dirección, resolución directa. Registro AAAA: registro dirección IPv6. (Asignamos nombre a IPv6) Registro CNAME: registro de nombre canónico, alias. Registro NS: son para definir el servidor de nombres (DNS) de un dominio. Registro MX (mail exchange): indicamos los servidores de correo electrónico del dominio. Registro PTR: para resolución inversa. Herramientas: dnsenum: Nos devuelve: dir. host, name servers y servers de correo, intentará hacer una transferencia de zona dnsmap: Registros dns por fuerza bruta o diccionarios, será la siguiente opción si no aceptan transferencia de zona ni registros PTR. dnsrecon: Con -r, le pasamos un rango de IPs. Usará registros PTR, útil si no permiten transferencia de zona. Aporta mucha información. Pero el Apuntes LSI 12 host podría no usar registros PTR. EJ: dnsrecon -r 193.144.x.1 - 193.144.x.254 nslookup: Saber si el DNS está resolviendo correctamente los nombres y las IPs. Obtenemos la dirección IP conociendo el nombre, y viceversa. dig: Realiza búsquedas en los registros DNS, a través de los nombres de servidores. Mejor no meter PTR en los DNS. DNS cache snooping: Investigar un servidor DNS para saber si determinadas paginas están en cache. Métodos: dnsrecon -t snoop -n -D Es no recursivo. Cuando hace peticiones pone el flag “RD” a 0, solo resuelve si lo tiene en cache (si lo tiene que ir a buscar fuera no lo resuelve). Estimación de tiempos: La opción anterior puede no funcionar con algunos DNS. Solución, lanzar consultas contra el servidor y medir tiempos, las que tarden muy poco estarán cacheadas. 4) Puertos Abiertos Testear qué puertos están abiertos (port scanning). Tipos: Activo: Se interactúa con un puerto para ver como reacciona. Pasivo: Observando la paquetería, si miramos las cabeceras podemos ver el puerto de origen/destino. Podemos clasificar los puertos según la IANA - Internet Assigned Numbers Authority: Well-known ports: Reservados del 1 a 1023 registrados con la IANA para un servicio determinado. Algunos sistemas exigen privilegios especiales para asociar apps a estos puertos. Apuntes LSI 13 Puertos registrados: 1024 a 49151. Registrados con la IANA, la diferencia con los well-known es que no se exigen privilegios especiales. Puertos dinámicos y/o privados: 49152 a 65535. Se usan dinámicamente o bien por servicios privados de una compañía. Puertos TCP Populares: 80 - HTTP 443 - HTTPS 21 - FTP 22 - SSH 23 - TELNET 25 - SMTP 53 - DNS 514 - SYSLOG 4000 - NX (No Machine) Puertos UDP Populares: 123 - NTP 67 - DHCPS (Dynamic Host Configuration Protocol Server) 53 - DNS 68 - DHCP (cliente) 5) Fingerprinting OS Fingerprinting: Saber de forma remota el sistema operativo y versión que corre en determinadas máquinas. Cada SO responde de forma diferente a una variedad de paquetes. Por ejemplo: TTL , en Linux, Debian BSD es 64, en Windows 128 y en Cisco 255. Esto se puede averiguar haciendo un ping y viendo el TTL del paquete de respuesta. Port Fingerprinting: Identificar el servicio que corre en una máquina, y que versión. Apuntes LSI 14 Por ejemplo al fingerprintear un puerto 80 de un servidor web, busca saber qué servidor está corriendo, por ejemplo un apache, y que versión de apache. 6) Búsqueda de vulnerabilidades Usando herramientas: Próposito General (SO, servicios, etc): Openvas: Un marco de software de varios servicios y herramientas que ofrecen escaneo y gestión de vulnerabilidades informáticas. Nessus: Programa de escaneo de vulnerabilidades en diversos sistemas operativos. Orientadas en aplicaciones web: Niktop OWASP ZAP W3af De forma manual: Usando CVE, CCE, CVSS, NVD, etc. 7) Explotación y Exploits Aprovechar y atacar vulnerabilidades Pentesting - Test de penetración: Atacar un sistema para identificar vulnerabilidades, fallos o errores para así poder prevenir ataques externos. Manuales y Herramientas: Metasploit: marco de pruebas de penetración de código abierto proporciona información, analiza y ataca vulnerabilidades de seguridad y ayuda en tests de penetración. Cobalt Strike: herramienta de seguridad legítima que permite a los equipos de seguridad emular la actividad de los ciber-delincuentes dentro de una red. Fat Rat: para desarrollar troyanos. SHODAN: Es un motor de búsqueda que le permite al usuario encontrar iguales o diferentes tipos específicos de equipos conectados a Internet a través de una variedad de filtros. BBDD/Repositorio de exploits. SEC: report Ataques de ingeniería social por SEC. Apuntes LSI 15 w3af: Aparte de analizar vulnerabilidades en apps web me permite explotar esas vulnerabilidades. Payloads Cuando definimos un payload se hace de la manera más discreta posible (ofuscación) para que sea difícil de detectar. SINGLE: El propio código del ejecutable del exploit. STAGERS: Una vez atacada la máquina abre una conexión entre tú máquina y la suya. Ej: Meterpreter. STAGES: Lanzan el ataque, se conectan a la máquina y además meto utilidades en esa máquina. msfpayload → permite generar ejecutables con un payload en su interior. Ofuscación Modificar un binario poco a poco para que haga las mismas funciones pero que no sea detectado por los antivirus. Herramientas: msfencode: le pasas distintos métodos de ofuscación para convertir a los binarios. Que pase desapercibido el payload. msfvenom: Combinación de msfpayload y msfencode. WAF - WEB APPLICATION FIREWALL Se ponen entre las máquinas cliente y los servidores web, de tal forma que tratan de detectar los distintos ataques contra las aplicaciones web (además de pararlos). ModSecurity: vinculado a servidores Apache. Cloudfare Infoguard Escalado de privilegios y Pivoting Apuntes LSI 16 Escalado de privilegios : Explotar cierta vulnerabilidad te da ciertos privilegios en una máquina → recolección de información, acceso a otras máquinas, etc. Pivoting: Usar una máquina ya comprometida para desde ella atacar otra distinta. TCP handshake Terminar la conexión: Apuntes LSI 17 Firewall Parte de un sistema informático o una red informática que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas. Con control de estado: Comprueba que la conexión entre maquinas sigue el handshake (TCP). En UDP es mas complejo, la primera vez que le llega paquetería de una máquina la registra y le deja pasar, si le responde la máquina que tengo en mi red entonces a la máquina registrada le va a conceder el paso las próximas veces, sin embargo si no hay respuesta por parte de mi máquina la próxima vez le meterá un bloqueo. Sin control de estado: Filtra conexiones pero no obliga a que las conexiones se hagan mediante el handshake. Tipos: Router: Firewall que es un router. Lo configuramos con access list. NAT: Firewall que es un router y a mayores hace natting (asignar direcciones ip privadas a públicas y viceversa). Apuntes LSI 18 Transparentes: Firewall que no tiene IP y trabaja en capa 2 (MAC), no podemos acceder desde capa 3 y atacar el firewall por direccionamiento IP. IDLE SCAN nmap -P0 -p80 -sI x.x.x.x www.loquesea.com P0 → es decirle que la maquina existe x.x.x.x → IP de una maquina zombie Para intentar ocultar mi IP al conectarme con NMAP, podemos hacer uso de una máquina Zombie usándola de pivote, en la que tú le mandas un SYNC ACK, y ella te manda un RST al no ver un SYNC, ese RST viene con una id. Ahora le mandas a la máquina que te quieres conectar un SYNC pero cambiando la IP origen por la de la máquina zombie. Y luego vuelvo a hacer otro SYNC ACK a la máquina zombie, si me responde con la id incrementada en 2 el puerto de la otra máquina está abierto, y si está cerrado me responde con 1 incrementado en el id. Un FW con control de estado no deja pasar esta paquetería porque el handshake no se hace como se tiene que hacer. La maquina zombie que escogemos debe tener: ID secuencial Muy poco trafico de red Apuntes LSI 19 Un router bien configurado va a dropear la paquetería que llega de su red pero que tenga IPs de origen que no son de su rango (IP spoofing), es decir que si hacemos un idle scan nos va a dropear el paquete porque tenemos de IP origen una maquina zombie ajena a nuestra red. OWASP Apuntes LSI 20 Open Web Application Security Project Proyecto de código abierto dedicado a combatir causas que hacen que el software de aplicativo web sea inseguro. Dentro del proyecto se distinguen distintas líneas de trabajo. OWASP TOP 10 Lista de las diez amenazas de seguridad más críticas que enfrentan las aplicaciones web. Informe cada 4 años que da un reflejo de cómo esta el ámbito de la seguridad desde el aplicativo web. TOP 10 2021: 1. Broken Access Control: restricciones que se aplica sobre los usuarios. Usuarios pueden saltarse restricciones para ganar privilegios de otros usuarios. ID's inseguros usuarios PATH traversal Permisos mal puestos 2. Cryptographic Failures: uso incorrecto de algoritmos criptográficos. 3. Injections: por mala validación de información. Incorporan también el XSS (cross site scripting). 4. Insecure Design: diseño que carece de medidas de seguridad. 5. Security Misconfiguration: Buckets AWS, HTTP mal configurados, falta de parches y actualizaciones. Se incluyen los ataques XXE (XML EXTERNAL ENTITIES). 6. Vulnerable And Outdated Components: frameworks, librerias, apis, etc. desactualizados. 7. Authentication: robo de sesiones, cookies, etc. 8. Software and data integrity: Ej. manipulación de archivos. 9. Monitorizacion y logging: mala implementación de la monitorización y logs. 10. Server side request forgery (SSRF): hacer que una maquina donde corre una app web abra una conexión contra la intranet. Top 10 Proactive Controls: Apuntes LSI 21 1. Definir requerimientos de seguridad 2. Aprovechar librerías en el ámbito de la seguridad 3. Securizar el acceso a bases de datos 4. Encode & Escape 5. Validar todas las entradas 6. Implementar identidad digital 7. Mejorar el control de acceso 8. Proteger los datos en todas partes 9. Monitorización y loggin 10. Manejar todos los errores y excepciones OWASP Project ASVS (Aplication Security Verification Standard) Lista de requerimientos y pruebas de seguridad para aplicativo web. Guías con pasos para verificar el nivel de seguridad. Otras definiciones: Wafw00f: Trata de determinar si en la comunicación con un servidor hay un firewall de por medio. Fingerprinteará e intentará decir que tipo de waf hay. En Windows: wmic (Windows Management Instrumentation Command-line): parecido a ps en linux. ipconfig: es como ifconfig en linux. Si ejecutamos ipconfig /displaydns nos dará las direcciones que se han resuelto en la máquina a lo largo del tiempo. ipconfig /all muestra todas las interfaces. Técnicas para evitar fingerprinting Generaciones de Fingerprinting: 1ª Generación ASCII: Mandando paquetes contra una máquina y mirando las cabeceras con las que me respondía para sacar información de estas. 2ª Generación TCP-IP: Coger distintas cabeceras con distintos datos, y lanzar contra una máquina esas cabeceras con distintos parámetros y analizar por las Apuntes LSI 22 respuestas que me da a esas cabeceras sacar información de la máquina. 3ª Generación ICMP 4ª generación C7 aplicación(https) /proc/sys/net ficheros para tunear caracterizar nuestra maquina → Ofuscación Hay que tunear los de ipv4 y ipv6 para ofuscar bien. Por ejemplo: TTL sirve mucho para identificar operativo Windows TTL 128 Unix/Linux TTL 64 echo 128 > /proc/sys/net/ipv4/ip_default_ttl Aca lo que hacemos es hacer parecer que tenemos un TTL de una maquina Windows. IP TABLES MANGLE: Tabla específica de iptables que se encarga de modificar los paquetes, para ello tienen las opciones: TOS: Type Of Service, usado para definir el tipo de servicio de un paquete y se debe usar para definir cómo los paquetes deben ser enrutados, no para paquetes que vayan hacia Internet. La mayoría de los routers no hacen caso del valor de este campo o pueden actuar de forma imperfecta si se usan para su salida a Internet. TTL: Time To Live, cambia el campo de tiempo de vida de un paquete. Se puede usar para cuando no queremos ser descubiertos por ciertos proveedores de servicios de Internet (ISP) que sean demasiado “fisgones”. MARK: usado para marcar paquetes con valores específicos. Estas marcas pueden ser utilizadas en otras reglas o tablas para aplicar acciones específicas a los paquetes marcados. OSfuscate: Permite al usuario seleccionar un sistema operativo para emular e implementa esa selección cambiando los parámetros en tu SO. Ofuscar Apache: Apuntes LSI 23 /etc/apache/apache2.conf → server tokens (controlan la cantidad de información sobre el software y la versión del servidor que se incluye en las respuestas HTTP) Tuneo de variables para no dar tanta información en las cabeceras. Comando para ver cabeceras: lynx -head -dump http://www.udc.es httprint (deprecated) y whatweb: herramienta de fingerprinting de servers. Analiza las respuestas HTTP y realiza un análisis de contenido para identificar el software y las tecnologías utilizadas en el servidor. Servidor SMTP Mediante sentencias VRFY y RCPT TO (vienen siendo como en HTTP el GET, PUT, POST) me puedo comunicar con él y intentar sacarle datos. Lo malo es que ahora normalmente necesitas autentificación para poder usar estas sentencias en muchas organizaciones, para solucionar esto tenemos: SMTP-USER-ENUM: Es una herramienta que te automatiza buscar usuarios contra correos, para esto tendremos dos ficheros, uno con los usuarios a probar y otro con las ips de los servidores para probar, y la herramienta prueba con todos esos usuarios contra esas IPs para ver si se logra conectar con alguno. smtp-user-enum -M -U users.txt -T servers.txt Stealth Scan Herramientas: hping3 -c 1 -s -p 80 x.x.x.x → escaneo del puerto 80 con un paquete syn a la dirección x.x.x.x nmap -s -p 80 x.x.x.x / opcion -packettrace es como un debug que muestra todo lo que hace. nmap 10.11.48.0/24 → Host discovery y si esta levantado hace port scaning. Analiza todos los puertos. nmap -sP x.x.x.x -> para hacer host discovery manda icmp, un ping, un syn y un ack opcion -D para hacer decoy scan y que no te descubran (oculta la identidad del escáner real). nmap -PU 53,65 x.x.x.x para puertos udp estados de puertos en nmap: OPEN, CLOSED, FILTERED, UNFILTERED Apuntes LSI 24 (puerto accesible pero no puede detectar si esta OPEN or CLOSED) OPENFILTERED Y CLOSEFILTERED nmap -O... sirve para fingerprinting de OS nmap admite busquedas con scripts de LUA nbtscan: escaner especifico de netbios, red de microsoft nmap cheatsheet: https://www.stationx.net/nmap-cheat-sheet/ Nmap Scan Techniques nmap 192.168.1.1 - -sS TCP SYN port scan (Default) sS nmap 192.168.1.1 - TCP connect port scan (Default without root -sT sT privilege) nmap 192.168.1.1 - -sU UDP port scan sU nmap 192.168.1.1 - -sA TCP ACK port scan sA nmap 192.168.1.1 - -sW TCP Window port scan sW nmap 192.168.1.1 - -sM TCP Maimon port scan sM Host Discovery -sL nmap 192.168.1.1-3 -sL No Scan. List targets only -sn nmap 192.168.1.1/24 -sn Disable port scanning. Host discovery only. -Pn nmap 192.168.1.1-5 -Pn Disable host discovery. Port scan only. -n nmap 192.168.1.1 -n Never do DNS resolution Service and Version Detection nmap 192.168.1.1 - Attempts to determine the version of the service -sV sV running on port nmap 192.168.1.1 - Enables OS detection, version detection, script -A A scanning, and traceroute OS Detection -O nmap 192.168.1.1 -O Remote OS detection using TCP/IP Apuntes LSI 25 stack fingerprinting -O -osscan- nmap 192.168.1.1 -O - Makes Nmap guess more aggressively guess osscan-guess Spiders, Crawlers y Scrapers Son aplicables a los motores de búsqueda. Se usan en análisis de vulnerabilidades y análisis de mercado. Spidering: Conectarse a un servidor web, recorrer todo el árbol y coger todas las páginas. Ej: Google, analizadores de vulnerabilidades. Crawling: En todo el árbol descargado, se hacen análisis semánticos y sintácticos. Scrapping: Recorre webs buscando información especifica. Ej: los scrappers que buscan por determinadas paginas webs el precio de determinados productos. Hardening Endurecimiento, vinculado a securizar algo. lynis audit system → Herramienta de auditoría de seguridad y sugerencias de cambios de sistemas Linux y Unix. Algunas opciones que da lynis: Coge todos los servicios y les asigna una etiqueta (safe, unsafe u ok), analiza todo un conjunto de variables que están en el *.service, no se centra en el script del service. Te dice si tienes el grub protegido. Te dice si estás desactualizado en el OS. Algunos service deberían correr en SANDBOX (es como una mini maquina virtual), si alguien ataca ese servicio no pueden acceder al resto del sistema. Servicios aislados del resto del SO. libpam-tmpdir: refuerza la seguridad de los temporales de tipo PAM (Pluggable Authentication Modules). apt-listbugs: permite ver qué paquetes de los instalados tienen bugs o vulnerabilidades. needrestart: para saber qué servicios deberían ser reiniciados después de una actualización de paquetes. Apuntes LSI 26 debsecan: reporte de vulnerabilidades CVE en el sistema. debsums: compara los archivos con los hashes en un directorio que almacena estos para ver que no le metieron un bicho siuuu ⚽ 🇵🇹 fail2ban: herramienta para defensa de ataque de password guessing bloqueando direcciones IP. Comando Systemd-analyze security , valores bajos significan servicio seguro. Variables en el.service. ProtectedSystem = full → solo puede leer directorios, no escribirlos. InnaccesiblePath = dir1, dir2… → esos directorios no serán accesibles para el servicio. Comando strace -e trace = servicio.service muestra directorios, librerías y binarios usados por el servicio. /etc/profile → fichero de configuración que se procesa cuando un usuario de identifica contra la máquina. Analizado por lynis. /etc/security/limits.conf → contiene variables con soft limit y hard limit. Ej: variable f_size: limita el tamaño de los ficheros. Más variables revisar: http://psi-udc.blogspot.com/search?q=limits.conf Ficheros de tipo core: volcados de memoria de cuando el sistema casca. PAE (Physical Address Extension): Arquitectura de 32 bits que se puede modificar para direccionar 64 bits. DEP (Data Execution Prevention): Controla la pila como no ejecución. Marca todas las zonas de memoria de datos como no ejecución. /etc/pam.d/common-password viene un montón de cosas y el hash que se va a utilizar para los password. También viene el número de ciclos (rounds) esto quiere decir que hashea N veces la contraseña. Comando change -l lsi → fecha del último cambio de contraseña. Comando passwd -e lsi → define fechas de expiración de password. /etc/shadow fichero donde se guarda el hash resultado de las contraseñas. pam-cracklib, pam-passwdqc & pwquality: Librerías para gestión de calidad de contraseñas → definimos el criterio para la definición de contraseñas. Apuntes LSI 27 Umask 022 a 027 cada vez que un usuario crea un fichero le da permisos rwxr- xr-x (025) cambiar a rwxr-x--- (027). /etc/shells están los diferentes shells en la maquina. TMOUT = 120 cualquier usuario que abra una sesión iterativa con la maquina la mata en esos segundos. /etc/profile: Configuración por defecto de todos los usuarios que se conecten a mi maquina $HOME/.profile: Igual pero para usuario específico. LVM gestión virtual de discos (particionado y almacenamiento). echo 1>/proc/sys/kernel/modules-disabled desactivar el acceso a módulos. /etc/modprobe.d/blacklist.conf hacer blacklist de módulos que no queremos que cargue el kernel. TEMA 4: Ocultación Y Privacidad Consiste en que sea muy difícil llegar al atacante si se le pilla atacando. NAT Redes de ordenadores que usan IPs privadas se conectan a internet con una IP pública. En líneas generales no da ocultación. El administrador de red sabe nuestra IP. Páginas web pueden conocer nuestra IP de dentro de la NAT mediante scripting. Honey Son equipos trampa, máquinas que ponemos de señuelo para que las ataquen y luego monitorizar/atacar por medio de herramientas al atacante. Proxy Máquina intermedia a la que se le hacen peticiones y te las proporciona. En algunas organizaciones tienes que salir a través de un proxy. Podemos navegar a través de un proxy o conectar varios, cuantos más proxies haya más difícil será el rastreo, aquí sí que obtenemos privacidad. Cabecera proxy: Apuntes LSI 28 REMOTE_ADDR = x.x.x.x → Campo con ip de la máquina original. Puede modificarse para que sea la del último proxy. X_FORWARDED_FOR = ip_maquina + ip_proxy1 + ip_proxy2… → va cantando la ruta por todos los proxys que va pasando Web-based Proxies Sitios web que permiten acceder al contenido de terceros sin configuración en el cliente. El usuario se conecta a la web a través del proxy, no directamente al servidor. Proporciona privacidad y confidencialidad puesto que ocultan la IP del usuario. Diseñado para manejar tráfico web. Proxy SockS (Socket Secure) Para todos los servicios (multiservicio). Trabajan a nivel de transporte. Diseñado para diferentes tráficos de red. Puede funcionar con muchos protocolos, que también incluyen HTTP. Proporcionan anonimato y privacidad en línea. Fichero /etc/socks.conf para configurar un proxy socks en linux: direct 127.0.0.1 255.255.255.255 → el tráfico dirigido a localhost no va a través del proxy. direct 10.11.48.0 255.255.254.0 → este tráfico tampoco va a través del proxy. sockd @=x.x.x.x 0.0.0.0 0.0.0.0 → el resto de direcciones van por el proxy, @ donde estará escuchando en proxy Proxy HTTP/HTTPS Para navegación. Solo funcionan con consultas http. Trabajan a nivel de aplicación. Proxy transparente No sirven para ocultación, no dan anonimato. Hacen uso de X_FORWARDED_FOR. Proxy Anónimo Dan anonimato. No usan X_FORWARDED_FOR. REMOTE_ADDR: La dirección IP visible para el servidor de destino será la del propio proxy, no la del cliente original. Apuntes LSI 29 X_FORWARDED_FOR: En un proxy anónimo, esta cabecera podría estar ausente o contener información falsa, y en algunos casos, podría incluir simplemente la dirección IP del propio proxy, sin revelar la dirección IP original del cliente. Proxy alto anonimato Quitan mas cabeceras que pueden ayudar a rastrear. No revelan la ip original del usuario ni mediante el uso de X_FORWARDED_FOR ni de ninguna otra manera. Proxy Ruidoso Hacen uso de X_FORWARDED_FOR pero metiendo ruido para falsificar y que sea mas difícil identificar al usuario. Usar un proxy en linux Meter las siguientes lineas en /etc/profiles export http-proxy = http://x.x.x.x:3128 → software que hace de proxy HTTP → SQUID export https= https://... export ftp-proxy = ftp://...:3128 x.x.x.x es la dirección del proxy y 3128 es el puerto donde estará escuchando el servicio http, ftp en el proxy. El puerto varía dependiendo de la configuración del proxy. 3128 es un puerto común del proxy de código abierto Squid. Crackeo de WPA WPA (Wi-Fi Protected Access) → Protocolo de seguridad que protege acceso a puntos de acceso y cifrado en redes wifi. Uso del algoritmo TKIP (Temporal Key Integrity Protocol) y el algoritmo de cifrado RC4 WPA2 → Usa el protocolo de cifrado AES. Aircrack Herramienta para crackear wifis que trae una serie de utilidades. airmon-ng permite poner una tarjeta wifi en modo monitor. airdump-ng permite capturar trafico (esnifar). aireplay-ng para deautenticar una máquina. aircrack-ng crackeo de handshake e intento de descifrado de contraseña. Apuntes LSI 30 airbase-ng permite crear puntos de acceso falso. Ejemplo para WPA2: 1. airmon-ng start wlan0 2. airdump-ng mon0 → va a sacar todos los punto de acceso al alcance con la siguiente info: BSSID(MAC) CANAL NOMBRE (ESSID) 3. airdump-ng --CANAL -lossid -w capture mon0 → capture es un fichero donde se guardarán los paquetes capturados. 4. aireplay-ng -0 1 -a -c mon0 → echamos al equipo de la wifi y automáticamente se vuelve a conectar → ya tenemos el handshake. 5. Una vez tenemos el handshake comenzamos el crackeo: airplay-ng -w dicc capture → dicc todo tipo de diccionario con crunch para especificar patrones de crackeo. 4 way Handshake (WPA/WPA2) Apuntes LSI 31 KRACK ATTACK "Key Reinstallation Attacks” vulnerabilidad del protocolo Wi-Fi WPA2. Ataque de reinstalación de claves, engaña al cliente para que re-instale una clave ya usada. Requiere crear un punto de acceso falso MITM. 1. Crea un AP falso (MITM) que se situará entre el STA y PA al que se conectará el cliente. 2. 4 way handshake → bloqueamos el ACK (PA → STA) del 4º mensaje. 3. El cliente se ve obligado a reenviar el mensaje 3. 4. Capturamos el mensaje 3 donde se encuentra la información para la autenticación. 5. Se hace un RST de los números aleatorios, se puede inyectar, descifrar o falsear la paquetería. WPA 3 Cambia el handshake. Usa un algoritmo para autenticación de claves explícitas (ya usado en SSH). Incrementa el tamaño de la clave de cifrado de 128 bits → 192 bits. Renegocia una clave cada cierto tiempo. No funciona la deautenticación. Apuntes LSI 32 Tampoco funciona el Krack Attack. WIFITE Herramienta de crackeo para dummies. WPS WPS (Wi-Fi Protected Setup) fue un protocolo diseñado para facilitar la configuración de dispositivos en una red Wi-Fi mediante la introducción de un PIN de 7 dígitos. Gran cagada → código para enlazarte con 7 dígitos → 10⁷ combinaciones a probar. Sin embargo los programadores decidieron que se comprobasen primero los primeros 4 dígitos y después los otros 3, por lo que las 10 millones de combinaciones se convirtieron en 11000, fácilmente crackeable en 2 horas. Fluxion Creación de puntos de acceso falsos. Saca una página que pide que meta la PSK (clave wifi) y se queda con ella. Hashcat Crackeo de contraseñas hasheadas. Crackeo de Passwords: El ataque tiene como objetivo principalmente, «romper» la contraseña de un usuario. Es decir, consiste en romper cifrados, de forma automatizada, para obtener las credenciales de un usuario. /etc/shadow Contiene todos los usuarios y su password hasheado. Importante lo de separar con “:” Apuntes LSI 33 lsi:$$ SALT$ hash salteado password :... parametros lsi → usuario → función que se utiliza para hashear el password. SALT → caracteres aleatorios en base 64. Se usa para que no exista correspondencia directa entre password y hash, para que un mismo password en distintas máquinas no tenga el mismo hash y dificulte el crackeo. hash salteado password → sha512 ( (password + salt) + salt ) Herramientas: HashCat Cain&Abel John the ripper $ apt install john # Fusión de dos ficheros en 1 para que sea mas facil trabajar $ unshadow /etc/passwd /etc/shadow > fichero # Uso de diccionario y distintas alteraciones (mayus, minus.. $./john --word list=diccionario -rules fichero # -i:all -> ataque por fuerza bruta con alfabeto probando todo $./john --wordlist=diccionario -rules -i:all fichero Apuntes LSI 34 Herramientas para generar y tunear diccionarios: CWL: herramienta para preparar diccionarios mediante spidering. Mutator: Genera nuevos diccionarios mediante mutación de otros. Crunch: genera diccionarios personalizados basados en criterios específicos del usuario. TheHardvester: Saca direcciones de correo electrónico de un dominio. Para obtener Logins de máquinas de muchos usuarios. Herramientas para identificar función hash: hash-identifier hash-id FindMyHash: Busca en una BBDD si un hash ya ha sido roto. Password Guessing Se basa en intentar «adivinar» una contraseña, a partir de la automatización de intentos, haciendo uso de los denominados diccionarios. Es una técnica muy simple y que hoy en día, es prácticamente inútil. Van contra servicios de autenticación. Hay que usar buenos diccionarios para probar contraseñas. OJO. Los ataques pueden quedar registrados en los Logs. Se pueden usar captchas, pero hay herramientas de resolución de captchas. Servicios pueden usar filtros de protección: Bloqueos por IP tras N intentos. Bloqueos por usuario tras N intentos. Hay que mandar los passwords hasta N-1 intentos (N = nº de intentos para bloqueo), para no ser bloqueados. También se puede combinar ir cambiando el user e ir probando para cada uno las N-1 contraseñas. Herramientas Medusa Apuntes LSI 35 medusa -d → muestra todos los módulos para hacer ataques PassGuessing. medusa -M ssh -q → módulos para ssh. medusa -h 10.11.48.49 -u lsi -P p.txt -M ssh -j → abre conexiones contra la ip usando el modulo SSH y usando ese diccionario (p.txt). N-crack Hydra Protección IPtables: Reglas Hash-limit, deja limitar la cantidad de intentos por minuto. Fail2Ban: Detecta y para ataques de PG. OSSEC: Es un HIPS → Host Intrusion Prevention System. Como proteger el GRUB en linux 1. grub-mkpasswd-pbkdf2 → Le metes una contraseña y te devuelve un hash. 2. Modificas /etc/grub.d/40_custom y metes al final del archivo set superuser=root passwd-pbkdf2 root 3. A partir de ahora el GRUB pedirá la contraseña que coincida con el hash. Extras y Curiosidades Ataque Tempest Ataques que se basan en el ruido que genera la máquina. Este tipo de ataque se centra en la radiación electromagnética emitida por dispositivos electrónicos, como computadoras y equipos de comunicación, y busca aprovechar estas emisiones para obtener información confidencial, como claves de cifrado. Curiosidades Soluciones al cambio de compuesto de soldado: REBALLING: Resoldar placas con soldaduras defectuosas. REFLOW: Aplicar calor a la placa para que se arreglaran las soldaduras defectuosas. Apuntes LSI 36 DNS Leaks Fugas de DNS cuando el tráfico de información de dominio podría revelarse a terceros. Nos proporciona consejos para evitar las fugas, como el uso de VPNs y configurar los firewalls para que el tráfico que no vaya por esa VPN sea dropeado. Lightbeam Addon para Firefox, nos permite ver cómo las webs usan nuestra información gráficamente. Borrado de información Es fácil recuperar archivos borrados con herramientas forenses, inclusive hay herramientas que recuperan información de la RAM. El borrado seguro (sobreescrituras en disco) de archivos hace que no sea posible recuperarlos. El Borrado más seguro es la destrucción total del hardware. Borrado seguro Linux srm shred wipe dd if=(/dev/random) of=(/dev/sbd) → sobreescritura de todo el disco sfill: limpia la parte libre del disco. sswap: borrado seguro de la partición de swap del disco. smem: borrado seguro de la RAM. Windows Eraser Con el accounting activado queda registrada toda la información sobre lo que se ha hecho en la máquina, los ficheros de log dejan traceado desde una máquina. Usando el comando history se podría saber el histórico de comandos usados. Redes de Anonimato (Nodos TOR) Apuntes LSI 37 Formada por equipos de personas desinteresadas que ceden un poco de su procesador para formar parte de la red de anonimato. Onion proxy: Intermediario entre la red TOR y mi máquina. Te enrutan hacia los nodos TOR. Solo se conoce el nodo siguiente y el anterior. Mínimo 3 nodos TOR (Onion routers). Los selecciona el onion proxy usando un directorio público que contiene todos los onion routers. La única IP que se ve en destino es la del exit node. Pero la máquina de destino sí puede saber que accedes desde la red TOR y no permitirte el acceso. Los distintos nodos tienen una clave pública y una privada. Cada uno de los nodos TOR descifra la info del paquete con su clave privada y obtiene la info del siguiente nodo. Exit node tiene tu paquetería. Apuntes LSI 38 No es un cifrado extremo a extremo. Si el sitio web que vas a acceder es HTTP no se puede conseguir un cifrado extremo extremo, porque el exit node tiene tu paquetería. Se conseguiría cifrado extremo a extremo si usase HTTPS. Uso de conexiones TLS (Transport Layer Security) securizadas entre nodos: Una conexión TLS es lo que normalmente usamos al establecer una clave HTTPS (o TLS), securizando y cifrando mediante una clave de sesión. Así cada par de máquinas tendrá una conexión TLS donde todo va cifrado. TAIL OS Sistema operativo basado en Linux torificado. Todas sus conexiones van por la red TOR. WHONIX Distribución de sistema operativo basada en Debian que nos permite montar un router virtual con una serie de máquinas virtuales configuradas por ese gateway para que vayan por la red Tor. Whonix utiliza dos máquinas virtuales (VM) para lograr esto: una llamada "Gateway" (puerta de enlace) y otra llamada "Workstation" (estación de trabajo)..onion Pseudodominio de la red TOR para acceder a todo tipo de servicio de la red TOR. Redirige a máquinas ocultas. Ej: http://eqt5g4fuenphqinx.onion/ Otras redes de anonimato Freenet J.A.P I2P (Invisible Internet Project) Dark WEB Todo lo que no puede indexar un motor como, por ejemplo Google. La red TOR es un ejemplo de dark web. Encadenación de proxies de forma directa http://proxy:puerto/http://proxy2:puerto/http://... Apuntes LSI 39 http://www.google.com/translate?lanepain=es|en&u=http://…. → Esta segunda opción es usando el traductor de Google como intermediario para solicitar el contenido de otra URL. ¿Cómo saltarnos un firewall? (Pregunta de examen) Queremos conectarnos a un servidor de juegos desde nuestra máquina de trabajo, pero el firewall filtra la conexión por el puerto 22 y el puerto 3128. 1. Cambiamos en nuestra máquina de casa que la conexión ssh se hace por el puerto 443 (https) porque el firewall no deja salir paquetería hacia el puerto 22 y además así el firewall al pensar que es https no revisa el paquete porque va cifrado. Importante destacar que va cifrado es por ser una conexión ssh. 2. Desde la máquina de trabajo nos conectamos por ssh con la máquina de casa, forwardeando nuestro puerto local 3128 de casa con el puerto 3128 de la máquina de juegos. 3. Ahora con la conexión abierta por ssh con nuestra casa, desde la máquina del trabajo vemos en nuestro puerto 3128 el puerto del servidor de videojuegos. Apuntes LSI 40 IMPORTANTE La opción -L de ssh funciona de la siguiente manera: -L [bind_address:]port:host:hostport user@host Si NO se especifica [bind_address:], es decir, usamos port:host:hostport user@host, estamos forwardeando únicamente al localhost:port de nuestra máquina. Apuntes LSI 41 Si ponemos *:port:host:hostport user@host o :port:host:hostport user@host, estamos forwardeando a todas las interfaces de nuestra máquina en el port especificado. Si ponemos IP_de_alguna_de_nuestras_interfaces:port:host:hostport user@host, forwardeamos solo a esa IP en el port especificado. El host:hostport no tiene porque ser un servicio corriendo en la maquina host. Ej: #Hacemos un nslookup lsi@debian:~$ nslookup www.neverssl.com Server: 10.8.12.49 Address: 10.8.12.49#53 Non-authoritative answer: Name: www.neverssl.com Address: 34.223.124.45 Name: www.neverssl.com Address: 2600:1f13:37c:1400:ba21:7165:5fc7:736e #Hacemos el forwarding por ssh ssh -L 10080:34.223.124.45:80 [email protected] #Desde otra terminal de la misma maquina donde lanzamos el fo lynx localhost:10080 #El navegador nos muestra www.neverssl.com a través de localho ¿Cómo saltarnos un proxy? Corkscrew → Permite saltarse proxies HTTP. Tunelizador con SSH a través de un proxy. Ese proxy solo resuelve peticiones HTTP. Para que esto funcione el servidor proxy tiene que tener el HTTP CONNECT METHOD, que forwardeará conexiones TCP. Port Knocking Consiste en tener un servicio tirado y configurar una secuencia de SYN y ACK en determinados puertos. Esto levanta el puerto que queremos entrar y configurara de Apuntes LSI 42 ser necesario el IPtables y los wrappers para que dejen pasar a esa máquina. Al terminar hay que cerrar la sesión. Configuración en el fichero /etc/knockd.conf: [openssh] sequence = 7000, 7015, 9001 seq_time = 10 //segundos tcpflags = SYN command = iptables -A INPUT -s %IP% -y ACCEPT sys start ssh [closessh] sequence = 6000, 6015, 9018 Conectarse y cerrar la sesión: knockd x.x.x.x 7000 7015 9001 ssh x.x.x.x knockd x.x.x.x 6000,6015,9018 #cerrar la sesión TEMA 5: Interceptación Sniffing De: Trafico Seguro: Información cifrada → HTTPS Trafico Inseguro: Información no cifrada → HTTP, FTP Se puede usar para robo de información. También se puede usar para un propósito bueno como auditorias de seguridad de red, análisis forenses post- mortem, esto es ver lo que ha hecho una persona en una máquina que ya ha muerto. Se hace sobre ficheros.pcap (los de wireshark). Mirrorear puertos (sniffing sano): Un port-mirror nos sirve para poder capturar tráfico que entra y sale de una interfaz sobre un Switch. La captura se realiza conectando un sniffer (wireshark por ejemplo) en una interfaz X llamada "mirror". Método Basic: Método de autenticación no seguro. Se pasan las credenciales por HTTP. Codifica la contraseña en base 64 y luego usa HTTPS (usando la contraseña Apuntes LSI 43 para cifrar) por dedajo para que la información vaya cifrada. VLANs Actualmente tenemos redes de medios switcheados, no hay problemas de ancho de banda al tener switches. De estos medios surgieron las VLAN, las máquinas no tienen que competir por el ancho de banda. Una VLAN es básicamente una extensión. Podemos tener un conmutador de red (switch) dónde cada puerto se puede asignar a una VLAN. Redes lógicas independientes en una misma red física. Permite tener máquinas pertenecientes a la misma subred en ubicaciones diferentes, antes una misma subred tenían que compartir medio físico (mismo router), ahora tú puedes tener una máquina aquí y otra en Madrid y que ambas pertenezcan a la misma subred. EJ: Un conmutador en la FIC: 3 puertos la VLAN 1, en otros la VLAN 2. Otro conmutador en otro edificio separado geográficamente por routers de por medio tener una serie de puertos pertenecientes a la VLAN 1. Se gestionan con protocolos como el 802.1Q: Este protocolo nos permite usar TRUNCK PORTS, son puertos que propagan los paquetes taggeados por su identificador de VLAN. Cuando las máquinas de la VLAN ven el paquete taggeado saben que es para ellas. Permite a los switches distinguir entre las VLANS de sus puertos. Man In The Midle (MITM) Es un ataque cibernético en el que un tercero intercepta y posiblemente altera la comunicación entre dos partes sin su conocimiento. El atacante actúa como un intermediario no autorizado para obtener acceso a información confidencial, como contraseñas o datos sensibles. Apuntes LSI 44 YERSINIA Herramienta de ataque en capa 2. Principales protocolos que ataca: STP (Spanning Tree Protocol): organiza los backbones de la red para evitar bucles en los paquetes. Habla por tramas BPDU. Convierte el grafo del backbone en un árbol para evitar bucles. Ataque en STP: Hablar STP y convertirte en nodo raíz, con lo cual te llegará todo el tráfico, si lo dropeas estarías haciendo un DoS. Protección: Root bridge guard → donde pueden y no pueden ser root bridge. BPDU Guard → Filtrar puertos por donde no puede haber tramas BPDU. DTP (Dynamic Trunking Protocol): negociación automática de enlaces de troncal entre switches. 802.1.Q Switch Spoofing → ataque Ataque con YERSINIA. Nos hacemos pasar por un switch. Envío de tramas etiquetadas con distintas VLANs. Nos saltamos los firewalls (de capa 3) al pasar paquete etiquetado y capturamos el tráfico de otras VLANs. Protección: Que solo los puertos que nosotros queremos puedan taggear tramas. Lo hacemos desde el conmutador. Apuntes LSI 45 Double tagging → ataque El doble tagging es una técnica que implica emitir tramas desde una máquina con doble etiquetado de VLAN. En este proceso, se añade un primer etiquetado correspondiente a la propia VLAN del emisor y se agrega un segundo etiquetado correspondiente a otra VLAN. El objetivo es eludir la protección contra spoofing en el switch. Cuando la trama llega al switch, este la interpreta como una comunicación legítima dentro de la VLAN del emisor, la propaga a otros conmutadores y retira la primera etiqueta. Posteriormente, al llegar a otros conmutadores, es probable que interpreten la segunda etiqueta y redirijan la trama a otra VLAN. ARP SPOOFING Consiste en enviar mensajes ARP (Address Resolution Protocol) falsos a la Ethernet. Normalmente la finalidad es asociar la dirección MAC del atacante con la dirección IP de otro nodo (el nodo atacado), como por ejemplo el default gateway. Si no funciona se pueden usar ICMP redirect o MAC flooding. ICMP Redirect ICMP se utiliza para informar a un host en una red de que debe actualizar su tabla de enrutamiento. Si las máquinas aceptan estos paquetes consigues que las máquinas te configuren como default router, así el tráfico hacia afuera pasa por ti. Normalmente los tragan las máquinas pero no el router, por lo tanto estamos hablando de un HALF MITM. Ataque por ICMP redirect: ettercap -M icmp mac_router/ip_router// /ip_maquina_atacar// Defendernos de ICMP redirect: En /proc/sys/net/ipv4/conf/all/ :../accept_redirect → Aceptar o no redirects.../secure_redirects → Solo para aceptar de máquinas confiables.../send_redirects → Dejar o no a mi máquina mandar redirects. En /etc/sysctl.conf: → Dando valores 0 (deshabilitar) o 1 (habilitar) net.ipv4.all.accept_redirect = net.ipv4.all.serve_redirects = Apuntes LSI 46 net.ipv4.all.send_redirects = net.ipv4.all.accept_source_routing = MAC Flooding o CAM Flooding A nivel de conmutador, sólo funciona en algunos conmutadores. Si a algunos conmutadores les lleno la memoria (inundando vía MACs falsas llenamos sus tablas CAM) pasan a funcionar en modo HUB (medio compartido, todos los paquetes a todos los puertos, interfaz de red en modo promiscuo) tenemos todo el tráfico. DHCP SPOOFING Ataque con ettercap: ettercap -Tq -M dhcp: 10.11.48.10-25,31/255.255.255.254.0// DNS /// Interceptamos la conexión de un cliente DHCP (Dynamic Host Configuration Protocol) y como servidor nos ponemos como su default router. Se le pasa un rango de IPs que será el rango de máquinas que interceptemos. Half MITM, ya que la máquina nos mandará el tráfico pero, a la vuelta el router se lo enviará directamente a la máquina atacada. DHCP Snooping → Defensa Si configuramos un conmutador como DHCP Snooping True, para bloquear los paquetes DHCP en los puertos que no sean realmente DHCP. Port Stealing → Robo de puertos Los conmutadores conocen las MACs de cada entrada/puerto para direccionar las tramas. Normalmente los conmutadores hacen la asignación de Puertos-MAC de forma dinámica. Flood de paquetería hacia una MAC → el conmutador nos da el puerto a nosotros → esnifamos → devolvemos el puerto → forwardeamos. Yo si por ejemplo quiero robarle el tráfico a una máquina yo lo que hago en otro puerto que es al que estaré yo conectado, floodeo un montón de paquetería con MAC origen la de la otra máquina y entonces el conmutador dirá, ostia que esa MAC ya no está en el puerto X, está en el Y, y lo cambiará en la tabla, y por lo tanto todo Apuntes LSI 47 el tráfico que le llega a esa MAC el conmutador en vez de mandarlo por su puerto correspondiente a la máquina atacada, lo enviará por mi puerto hacia mí. ettercap -M port:[remote| tree] /x.x.x.x// [/x.x.x.x//] Example: The targets are: /10.0.0.1/ /10.0.0.15/ You will intercept and visualize traffic between 10.0.0.1 and 10.0.0.15, but you will receive all the traffic for 10.0.0.1 and 10.0.0.15 too. The target is: /10.0.0.1/ You will intercept and visualize all the traffic for 10.0.0.1. NDP (Neighbor Discovery Protocol) Protocolo de descubrimiento de vecinos, este es el protocolo parejo al ARP para el ipv6. Usamos el NDP que hace uso de paquetes icmp y que manda paquetes a una dirección multicast. ettercap -M ndp:[remote, oneway] //fe80:…/ … SNDP (Secure Neighbor Discovery Protocol) Es el NDP (IPv6) pero securizado mediante PKI (Public Key Infrastructure). Securiza la obtención de las MACs, dificultando más los MITM. DNS SPOOFING Falsear resoluciones DNS. Podemos ejecutar un ettercap con un ARP Spoofing clásico y con el plugin -P dns_spoof, así que en ese MITM las resoluciones DNS que nos pasen las cambiarán por las del fichero etter.dns. ¿Cómo protegernos? DNSSEC: Proporciona autenticación e integridad. Si queremos también cifrado, hay que añadir DOT → DNS over TLS, es decir cifra la comunicación con TLS (Transport Layer Security). Apuntes LSI 48 Herramienta EVILGRADE Troyanización de utilidades a la hora de hacer updates del SOs. Hay que estar haciendo un MITM. Esto es lo que Nino cometo de un pavo que en practicas hackeo un monton de maquinas y lo dejo para ver con cuantas se podia hacer al final del cuatri. Cosas de ARP arp -a → tabla arp arp -d ip → borra entrada de la tabla arp -s ip mac → fija esa ip a esa mac en la tabla ARPTABLES → Reglas y filtros a nivel de capa 2 arptables -A input --sourcemac -j drop ip link set dev ens33 arp off → tira arp a nivel de kernel en mi maquina IPS SNORT → puede vigilar el tema de ARP Spoofing nast -c → barrido red ip-mac si cambia la mac nos avisa. Con ettercap plugin -P run_flood: Floodeardor de paquetes en la red con ettercap. Le mete una carga bestial al conmutador de red. Protección: UNICAST FLOODING PROTECTION -> vigila la tasa de floodeo en los puertos para que no lo puteen, si alguno lo esta floodeando le baja el ritmo. Port Span/Port Mirroring Se puede tener un firewall de nueva generación o algo más “casero”, como tener Port Spam/Port Mirroring que copiará el tráfico de esos puertos a otros. Podríamos conectar este puerto a un PC con un IPS como snort, de forma que va a estar procesado en paralelo estos paquetes. Se puede provocar un cuello de botella, para esto se usa un trunk port (bonding de red) (IMPORTANTE estos trunk port son distintos a los del protocolo 802.1Q (VLANs)), una agrupación de puertos de red para incrementar los anchos de banda para atender mejor la carga, además obtenemos más tolerancia a fallos. Si muere una tarjeta funciona todo igual, quedan más. Apuntes LSI 49 Un bound lo que hace es poner dos tarjetas de red a la misma red, y pongo dos tarjetas de red trabajando con el mismo interface y misma ip, con esto consigo mejor ancho de banda, eficiencia y tolerancia a fallos. Tipos de Bounding/Trunk BOND 0 → ROUND ROBIN → se reparte la paquetería entre las dos. BOND 1 → ACTIVE-BACKUP → Funciona 1 hasta que casca y pasa a funcionar 2. BOND 2 → Balance XOR → (MAC origen XOR MAC destino)mod nº interfaces. BOND 3 → Broadcast → todos los paquetes salen por todos. BOND 4 → 802.3ad → es un estándar, nos da más velocidad y alta disponibilidad. BOND 5 → balance-tlb = en envío manda paquetes según la carga de los interfaces. BOND 6 → balance-alb = En envío manda paquetes según carga de interfaces. En recepción hace lo mismo combinando MAC destino. apt install ifenslave echo bounding >> /etc/modules #cargar el modulo modprobe bounding lsmod | grep bounding #En /etc/network/interfaces meter ifaces bound0 inet static address 10.11.x.x netmask ---- gateway ---- slaves ens33 ens34 ens35 bond_mode 0 (el que necesite) abajo caracteristicas especificas del bounding DHCP Snooping Protección contra DHCP Spoofing. Apuntes LSI 50 Hacer que un conmutador solo acepte por un puerto tramas DHCP y validación y seguimiento de los mensajes DHCP. Port Security Mecanismo de seguridad a nivel de conmutador. El conmutador solo deja registrar una MAC por puerto. Esos puertos los va a tener en modo shutdown → Lo que hace si detecta una MAC que no es la que tiene registrada es dropear los paquetes, le hará un disable al puerto y mediante SNMP nos notificará. Podemos seleccionar un puerto con Port Security, otro sin él y podemos tener distintas configuraciones en distintos puertos Otros modos: violation-protect → Dropea paquetería, no hace snmp y no desactiva el puerto. violation-restrict → Dropea paquetería, hace snmp y no desactiva puerto. TAP (Test Access Ports) Dispositivos hardware de red. Se suelen colocar entre el border router y el FW. Esnifa el trafico que entra y sale de nuestra organización. Son cajas negras pasivas. Mirrorean el tráfico a sistemas de análisis de paquetes. Si los apagas sigue fluyendo el tráfico por él entre el router y el firewall. Apuntes LSI 51 Firewall de nueva generación Trabajan desde capa 2 a capa 7. Se centran mucho en la protección de los hypervisores (Gestión de las máquinas virtuales). Vigila también el flujo de las máquinas virtuales de los hypervisores. Autenticación. Detección de Malware → tienen que tener sistemas muy potentes de cifrado y descifrado. En el firewall termina el tráfico https lo analiza y lo reenvía a la máquina dentro de la organización. Dan servicio de VPN. Se suelen montar redundados en modo cluster. Tienen sistemas de detección y prevención de intrusiones. Sistemas de control inspection. Sistemas de defensa contra DoS y DDoS. Sistema de correlación de logs. Empresas que comercializan estas mamadas meriyen : Check POint, Cisco, Force Point, Fort Gate, Palo Alto. SOC (Centro de operaciones de seguridad) Componente crítico en la infraestructura de seguridad de una organización. Se basa en tres pilares: SIEM → System Information & Event Management → correlacionar y analizar logs. Ej. Splunk. EDR → Endpoint Detection and Response → son agentes que están pensados para la detección y defensa de máquinas. Gestión de los agentes de seguridad que corren en todas las máquinas de nuestra organización. Se centra en la seguridad de los puntos finales (endpoints). NDR → Network Detection and Respose → Se alimentan del TAP. Procesan todo tipo de datos de la red. Apuntes LSI 52 Plugins con ettercap sslstrip → Ciberataque que trata de hacerse con los datos de un usuario cuando accede a una dirección web protegida mediante un certificado SSL/TLS, es decir, cuando estamos utilizando el protocolo de la capa de aplicación HTTPS. Mete HTTP en claro pero de forma que el cliente vea que se está usando HTTPS, y no puede haber problema de certificado. Protección: Protocolo HSTS: Obliga a que todas las comunicaciones siempre funcionen sobre HTTPS. Cuando nos conectamos al servidor por primera vez nos manda un token para el repositorio de HSTS, y nos valdrá para protegernos de herramientas de suplantación como SSLStrip. sslstrip2 → versión mejorada de sslstrip. Sidejacking Secuestro de sesión o secuestro de cookies → Uso de credenciales de identificación no autorizadas para secuestrar una sesión web válida de forma remota. Permitiendo autenticación por cookie, configuración de perfiles, etc. Cookies Las cookies son strings que los sitios web almacenan en tu dispositivo. Estos archivos contienen información sobre tus interacciones con el sitio, como preferencias, datos de inicio de sesión o información de seguimiento. Las cookies se utilizan para mejorar la experiencia del usuario y permitir que los sitios recuerden información importante sobre ti. Tamaño de las cookies máximo 4KB. Supercookie: Tipo de cookie que es difícil de eliminar y puede rastrear la actividad del usuario en línea de manera persistente. Cookie persistente: Permanece en el dispositivo del usuario durante un período más prolongado, almacenando información a largo plazo, como preferencias y datos de inicio de sesión. Apuntes LSI 53 Zombie cookie: Una cookie que se regenera automáticamente incluso después de ser eliminada, a menudo utilizando otras técnicas para persistir en el dispositivo del usuario. Uso de HSTS como cookies: Se emplean flags de la especificación HSTS para guardar un identificador que le permita al sitio reconocer al usuario desde cualquier web. Alternativas a las cookies con HTML5 Webstorage, permite almacenar en memoria del navegador elementos del tipo clave-valor, vale durante la sesión. Sessionstorage y Localstorage donde los datos son persistentes, se almacenará información y esta seguirá en las siguientes visitas, funciona como una cookie. Una ventaja es el tamaño, que en localstorage es mucho mayor, y además no tienen fecha de expiración como las cookies. TEMA 6: DoS, DDoS y BotNets DoS (Denial of Service) A nivel lógico Una determinada vulnerabilidad que explotándola provoca una denegación de servicio. Solución → Parcheo y buena configuración de la máquina. Inundación Ataques con muchas conexiones y alta paquetería que tiran abajo una máquina o servicio. Factor de amplificación (FA): nº de maquinas que se utilizan para la inundación. Tipos: Directo: ip origen → ip destino Inyectan directamente, no tiene por qué ser desde tu máquina. Puedes atacar mediante ip spoofing. Apuntes LSI 54 Reflectivo: Inyectan paquetería. La ip origen es la máquina que queremos inundar, el destino son las demás máquinas. Las máquinas destino van a responder a la máquina víctima, y los FA van a incrementarse secuencialmente. Si empleamos un firewall de control de estado podría ayudarnos ya que dropea todo (la víctima no ha iniciado el SYN de las conexiones). Si el ataque es desde dentro de la organización si estamos jodidos. Ataques clásicos: Smurf attack: ICMP Echo Request con IP Origen la máquina que quiero floodear y destino broadcast. Protección: /proc/sys/net/ipv4/icmp_echo_ignore_broadcast = 1 → no responde a paquetes con dirección Broadcast. /proc/sys/net/ipv4/icmp_echo_ignore_all = 1 ->para que no responda ping rp_filter -> utilidad para "proteger" ip spoofing. Verifica que la dirección del paquete sea accesible desde esa interfaz de red. Fraggle attack: igual que smurf pero a nivel UDP, por tanto si hay un firewall de control de estado tiene muchas más posibilidades de saltarlo. Herramientas de inyección de paquetes: hping3 scapy packit BotNets Redes de bots. Maquinas infectadas. Sirven para hacer ataques, especialmente DDoS. Se comercializan para contratar el servicio. SYN-FLOOD Nuestras máquinas tienen un TCB: Transmission Control Block. Pila dónde se almacena la info de las conexiones abiertas de nuestra máquina. Acceso secuencial. Con un TCB muy grande puede afectar al rendimiento. Apuntes LSI 55 SYN flood llena las entradas antes de que salten los timeouts (SYN - SYN/ACK y aquí empieza el timeout, si se acaba antes del ACK se cierra la conexión). Si se llena la pila está muerta a nivel de red, no acepta nuevas conexiones. Configuración para defendernos /proc/sys/net/ipv4/tcp_max_syn_blocklog → Tamaño de la TCB, por defecto 128. Si se aumenta demasiado puede repercutir en la eficiencia. /proc/sys/net/ipv4//tcp_synack_retries → Timeout, defecto 5s. Si ponemos un timeout muy pequeño nos podemos hacer un DoS a nosotros mismos. SYN COOKIES→/proc/sys/net/ipv4/tcp_syn_cookies → 1 para activarla. Cuando la TCB se llena, se genera un número de secuencia que codifica o hashea la dirección IP de origen, la dirección IP de destino y el puerto. Este número de secuencia se utiliza para realizar un handshake, y al recibir la respuesta ACK, se puede reconstruir la información esencial de origen, destino y puerto sin depender directamente de la TCB, ya que la información se extrae del número de secuencia de los paquetes. SYN Proxies Todas las conexiones las intercepta el proxy, captando los SYNs, realizando el handshake y luego pasándole la conexión a la IP real. UDP-FLOOD Muchas veces los firewalls de las organizaciones no gestionan control de estado UDP, por tanto se podría hacer un reflectivo contra determinados puertos. UDP-flood → Herramienta simple por línea de comandos que puede crea