Bienvenidos a este capítulo de este Curso de redes para hackers – Ataque y Defensa a Protocolos. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.
Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.
En esta guía veremos desde cero un tema tan amplio como son las redes informáticas y lo haremos desde el punto de vista del hacking y la ciberseguridad.
Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Interacción de Cliente y Servidor
Diariamente utilizamos los servicios disponibles en las redes y en internet para comunicarnos con otras personas y realizar tareas de rutina. Pocas veces pensamos en los servidores, clientes y dispositivos de redes necesarios para poder recibir un correo electrónico, actualizar nuestro estado en los medios sociales o buscar las mejores ofertas en una tienda en línea.
La mayoría de las aplicaciones de internet más comunes se basa en interacciones complejas entre diversos servidores y clientes. El término servidor hace referencia a un host que ejecuta una aplicación de software que proporciona información o servicios a otros hosts que están conectados a la red.
Un ejemplo conocido de dicha aplicación es un servidor Web. Hay millones de servidores conectados a Internet que proporcionan servicios como sitios web, correo electrónico, transacciones financieras, descargas de música, etc. Un factor fundamental para permitir el funcionamiento de estas interacciones complejas es que todos emplean estándares y protocolos acordados.
Un navegador web, como Chrome o Firefox, es un ejemplo de software de cliente. Una única PC también puede ejecutar varios tipos de software de cliente. Por ejemplo, un usuario puede consultar el correo electrónico y ver una página web mientras envía mensajes instantáneos y escucha una transmisión de audio. La tabla enumera tres tipos comunes de software de servidor.
Tipo | Descripción |
Correo electrónico | El servidor de correo electrónico ejecuta el software del servidor de correo electrónico. Los clientes utilizan software de cliente de correo, como Microsoft Outlook, para acceder al correo electrónico en el servidor. |
Web | El servidor web ejecuta software de servidor web. Los clientes usan software de navegador, como Chrome o Firefox, para acceder a páginas web en el servidor. |
Archivo | El servidor de archivos almacena archivos de usuario y empresariales en una ubicación central. Los dispositivos cliente acceden a estos archivos con software cliente como el Explorador de Archivos de Windows. |
Interacciones de IP de Cliente y Servidor Web URI, URN, y URL
Los recursos web y los servicios web, como las API RESTful, se identifican mediante un Identificador Uniforme de Recursos (Uniform Resource Identifier, URI). Un URI es una cadena de caracteres que identifica un recurso de red específico. Como se muestra en la figura, un URI tiene dos especializaciones:
- Nombre uniforme de recurso (URN) – Identifica solo el espacio de nombres del recurso (página web, documento, imagen, etc.) sin referencia al protocolo.
- Localizador uniforme de recursos (URL) – Define la ubicación de red de un recurso específico en la red. Las URL HTTP o HTTPS se utilizan normalmente con los navegadores web. Otros protocolos como FTP, SFTP, SSH y otros pueden usarse como URL. Una URL que usa SFTP podría tener el siguiente aspecto: sftp://sftp.example.com.
Estas son las partes de un URI, tal y como se muestra en la figura:
- Protocolo/esquema – HTTPS u otros protocolos como FTP, SFTP, mailto y NNTP
- Nombre de host – www.example.com
- Ruta y nombre de archivo – /author/book.html
- Fragmento – #página155
Partes de un URI
Servicios de Aplicaciones de Red
¿Cuáles son los servicios de Internet más comunes que utiliza periódicamente? Para la mayoría de las personas, la lista incluye servicios como búsquedas en Internet, sitios de redes sociales, transmisión de vídeo y audio, sitios de compras en línea, correo electrónico y mensajería. Cada uno de estos servicios depende de los protocolos de la suite de protocolos TCP/IP para transmitir de manera confiable la información entre los clientes y los servidores.
Algunos de los servidores más comunes que proporcionan estos servicios se muestran en la figura. En la tabla se muestra una breve descripción de cada servicio.
1 HTTP
HTTP significa Protocolo de transferencia de hipertexto. Es un protocolo utilizado para acceder a los datos de la World Wide Web (www). El protocolo HTTP se puede utilizar para transferir datos en forma de texto simple, hipertexto, audio, vídeo, etc.
Este protocolo se conoce como Protocolo de Transferencia de Hipertexto por su eficiencia que nos permite utilizarlo en un entorno de hipertexto donde hay saltos rápidos de un documento a otro documento.
HTTP es similar a FTP, ya que también transfiere archivos de un host a otro. Sin embargo, HTTP es más simple que FTP, ya que HTTP utiliza solo una conexión, es decir, no hay ninguna conexión de control para transferir los archivos. Se utiliza HTTP para transportar los datos en formato similar a MIME.
El protocolo HTTP es similar al protocolo SMTP, ya que los datos se transfieren entre el cliente y el servidor. El protocolo HTTP se diferencia del protocolo SMTP en la forma en que se envían los mensajes del cliente al servidor y del servidor al cliente. Los mensajes SMTP se almacenan y reenvían, mientras que los mensajes HTTP se entregan inmediatamente.
Comprensión del Protocolo HTTP desde el punto de vista del hacker
HTTP es un protocolo basado en texto que sigue un modelo cliente-servidor. Un cliente (generalmente un navegador web) envía una solicitud HTTP a un servidor, que responde con el recurso solicitado, como una página web o un archivo. Las solicitudes y respuestas HTTP consisten en varios componentes, incluidos métodos (GET, POST, PUT, DELETE, etc.), cabeceras y cuerpos de mensaje.
HTTP s el protocolo fundamental para la comunicación en la web. Permite la transferencia de datos entre un navegador web y un servidor, facilitando la entrega de páginas web y otros recursos. Debido a su omnipresencia y a su papel crítico en la infraestructura de la web, HTTP es un objetivo común para una amplia gama de ataques cibernéticos. En este artículo, exploraremos en detalle los ataques más comunes dirigidos al protocolo HTTP y las estrategias efectivas para defenderse contra ellos.
Utilizado para la transferencia de hipertexto, como páginas web, entre el servidor web y el cliente (navegador).
Vulnerabilidades:
- Intercepción y Eavesdropping: Como no es seguro, los datos transmitidos pueden ser interceptados y leídos por terceros maliciosos.
- Man-In-The-Middle (MITM): Susceptible a ataques donde un atacante puede interceptar y posiblemente modificar la comunicación.
- Phishing: Uso de páginas web falsas en HTTP o HTTPS para engañar a los usuarios y robar credenciales.
Estrategias de Defensa
- Forzar HTTPS: Configurar los servidores web para redirigir automáticamente todo el tráfico HTTP a HTTPS.
Evolución de HTTP
Fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, siendo el más importante de ellos el RFC 2616 que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse.
HTTP es un protocolo sin estado, por lo que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de sesión, y también permite rastrear usuarios, ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.
Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. El cliente (se le suele llamar “agente de usuario”, del inglés user agent) realiza una petición enviando un mensaje, con cierto formato al servidor.
El servidor (al que es común llamarle servidor web) le envía un mensaje de respuesta. Ejemplos de cliente son los navegadores web y las arañas web (también conocidas por su término inglés, webcrawlers).
HTTP es la base de cualquier intercambio de datos en la Web, y un protocolo de estructura cliente-servidor, esto quiere decir que una petición de datos es iniciada por el elemento que recibirá los datos (el cliente), normalmente un navegador Web. Así, una página web completa resulta de la unión de distintos sub-documentos recibidos, como, por ejemplo: un documento que especifique el estilo de maquetación de la página web (CSS), el texto, las imágenes, vídeos, scripts, etc…
Arquitectura de los sistemas basados en HTTP
Clientes y servidores se comunican intercambiando mensajes individuales (en contraposición a las comunicaciones que utilizan flujos continuos de datos). Los mensajes que envía el cliente, normalmente un navegador Web, se llaman peticiones, y los mensajes enviados por el servidor se llaman respuestas.
HTTP es un protocolo ampliable, que ha ido evolucionando con el tiempo. Es lo que se conoce como un protocolo de la capa de aplicación, y se transmite sobre el protocolo TCP, o el protocolo encriptado TLS (en-US), aunque teóricamente podría usarse cualquier otro protocolo fiable.
Gracias a que es un protocolo capaz de ampliarse, se usa no solo para transmitir documentos de hipertexto (HTML), si no que además, se usa para transmitir imágenes o vídeos, o enviar datos o contenido a los servidores, como en el caso de los formularios de datos. HTTP puede incluso ser utilizado para transmitir partes de documentos, y actualizar páginas Web en el acto.
HTTP es un protocolo basado en el principio de cliente-servidor: las peticiones son enviadas por una entidad: el agente del usuario (o un proxy a petición de uno). La mayoría de las veces el agente del usuario (cliente) es un navegador Web, pero podría ser cualquier otro programa, como por ejemplo un programa-robot, que explore la Web, para adquirir datos de su estructura y contenido para uso de un buscador de Internet.
Cada petición individual se envía a un servidor, el cuál la gestiona y responde. Entre cada petición y respuesta, hay varios intermediarios, normalmente denominados proxies (en-US), los cuales realizan distintas funciones, como: gateways o caches.
En realidad, hay más elementos intermedios, entre un navegador y el servidor que gestiona su petición: hay otros tipos de dispositivos: como routers, modems … Es gracias a la arquitectura en capas de la Web, que estos intermediarios, son transparentes al navegador y al servidor, ya que HTTP se apoya en los protocolos de red y transporte. HTTP es un protocolo de aplicación, y por tanto se apoya sobre los anteriores. Aunque para diagnosticar problemas en redes de comunicación, las capas inferiores son irrelevantes para la definición del protocolo HTTP .
Cliente: el agente del usuario
El agente del usuario, es cualquier herramienta que actué en representación del usuario. Esta función es realizada en la mayor parte de los casos por un navegador Web. Hay excepciones, como el caso de programas específicamente usados por desarrolladores para desarrollar y depurar sus aplicaciones.
El navegador es siempre el que inicia una comunicación (petición), y el servidor nunca la comienza (hay algunos mecanismos que permiten esto, pero no son muy habituales).
Para poder mostrar una página Web, el navegador envía una petición de documento HTML al servidor. Entonces procesa este documento, y envía más peticiones para solicitar scripts, hojas de estilo (CSS), y otros datos que necesite (normalmente vídeos y/o imágenes). El navegador, une todos estos documentos y datos, y compone el resultado final: la página Web. Los scripts, los ejecuta también el navegador, y también pueden generar más peticiones de datos en el tiempo, y el navegador, gestionará y actualizará la página Web en consecuencia.
Una página Web, es un documento de hipertexto (HTTP), luego habrá partes del texto en la página que puedan ser enlaces (links) que pueden ser activados (normalmente al hacer click sobre ellos) para hacer una petición de una nueva página Web, permitiendo así dirigir su agente de usuario y navegar por la Web. El navegador, traduce esas direcciones en peticiones de HTTP, e interpretara y procesará las respuestas HTTP, para presentar al usuario la página Web que desea.
El servidor Web
Al otro lado del canal de comunicación, está el servidor, el cual «sirve» los datos que ha pedido el cliente. Un servidor conceptualmente es una unica entidad, aunque puede estar formado por varios elementos, que se reparten la carga de peticiones, (load balancing), u otros programas, que gestionan otros computadores (como cache, bases de datos, servidores de correo electrónico, …), y que generan parte o todo el documento que ha sido pedido.
Un servidor no tiene que ser necesariamente un único equipo físico, aunque si que varios servidores pueden estar funcionando en un único computador. En el estándar HTTP/1.1 y Host , pueden incluso compartir la misma dirección de IP.
Proxies
Entre el cliente y el servidor, además existen distintos dispositivos que gestionan los mensajes HTTP. Dada la arquitectura en capas de la Web, la mayoria de estos dispositivos solamente gestionan estos mensajes en los niveles de protocolo inferiores: capa de transporte, capa de red o capa física, siendo así transparentes para la capa de comunicaciones de aplicación del HTTP, además esto aumenta el rendimiento de la comunicación. Aquellos dispositivos, que sí operan procesando la capa de aplicación son conocidos como proxies. Estos pueden ser transparentes, o no (modificando las peticiones que pasan por ellos), y realizan varias funciones:
- caching (la caché puede ser pública o privada, como la caché de un navegador)
- filtrado (como un anti-virus, control parental, …)
- balanceo de carga de peticiones (para permitir a varios servidores responder a la carga total de peticiones que reciben)
- autentificación (para el control al acceso de recursos y datos)
- registro de eventos (para tener un histórico de los eventos que se producen)
Características de HTTP:
Independiente del medio
el protocolo HTTP es independiente del medio, ya que los datos se pueden enviar siempre que tanto el cliente como el servidor sepan cómo manejar el contenido de los datos. Es necesario que tanto el cliente como el servidor especifiquen el tipo de contenido en el encabezado de tipo MIME.
HTTP es sencillo
Incluso con el incremento de complejidad, que se produjo en el desarrollo de la versión del protocolo HTTP/2, en la que se encapsularon los mensajes, HTTP esta pensado y desarrollado para ser leído y fácilmente interpretado por las personas, haciendo de esta manera más facil la depuración de errores, y reduciendo la curva de aprendizaje para las personan que empieza a trabajar con él.
HTTP es extensible
Presentadas en la versión HTTP/1.0, las cabeceras de HTTP, han hecho que este protocolo sea fácil de ampliar y de experimentar con él. Funcionalidades nuevas pueden desarrollarse, sin más que un cliente y su servidor, comprendan la misma semántica sobre las cabeceras de HTTP.
HTTP es un protocolo con sesiones, pero sin estados
HTTP es un protocolo sin estado, es decir: no guarda ningún dato entre dos peticiones en la mísma sesión. Esto crea problemáticas, en caso de que los usuarios requieran interactuar con determinadas páginas Web de forma ordenada y coherente, por ejemplo, para el uso de «cestas de la compra» en páginas que utilizan en comercio electrónico.
Pero, mientras HTTP ciertamente es un protocolo sin estado, el uso de HTTP cookies, si permite guardar datos con respecto a la sesión de comunicación. Usando la capacidad de ampliación del protocolo HTTP, las cookies permiten crear un contexto común para cada sesión de comunicación.
HTTP es un protocolo sin estado, ya que tanto el cliente como el servidor se conocen entre sí solo durante la solicitud actual. Debido a esta naturaleza del protocolo, tanto el cliente como el servidor no retienen la información entre las distintas solicitudes de las páginas web.
HTTP y conexiones
Una conexión se gestiona al nivel de la capa de trasporte, y por tanto queda fuera del alcance del protocolo HTTP. Aún con este factor, HTTP no necesita que el protocolo que lo sustenta mantenga una conexión continua entre los participantes en la comunicación, solamente necesita que sea un protocolo fiable o que no pierda mensajes (como mínimo, en todo caso, un protocolo que sea capaz de detectar que se ha pedido un mensaje y reporte un error). De los dos protocolos más comunes en Internet, TCP es fiable, mientras que UDP, no lo es. Por lo tanto HTTP, se apoya en el uso del protocolo TCP, que está orientado a conexión, aunque una conexión continua no es necesaria siempre.
En la versión del protocolo HTTP/1.0, habría una conexión TCP por cada petición/respuesta intercambiada, presentando esto dos grandes inconvenientes: abrir y crear una conexión requiere varias rondas de mensajes y por lo tanto resultaba lento. Esto sería más eficiente si se mandaran varios mensajes.
Para atenuar estos inconvenientes, la versión del protocolo HTTP/1.1 presentó el ‘pipelining’ y las conexiones persistentes: el protocolo TCP que lo transmitía en la capa inferior se podía controlar parcialmente, mediante la cabecera ‘Connection’. La versión del protocolo HTTP/2 fue más allá y usa multiplexación de mensajes sobre un única conexión, siendo así una comunicación más eficiente.
Todavía hoy se sigue investigando y desarrollando para conseguir un protocolo de transporte más conveniente para el HTTP. Por ejemplo, Google está experimentado con QUIC, que se apoya en el protocolo UDP y presenta mejoras en la fiabilidad y eficiencia de la comunicación.
Protocolo sin conexión: HTTP es un protocolo sin conexión. El cliente HTTP inicia una solicitud y espera una respuesta del servidor. Cuando el servidor recibe la solicitud, la procesa y envía la respuesta al cliente HTTP, tras lo cual el cliente desconecta la conexión. La conexión entre el cliente y el servidor existe únicamente durante el tiempo de solicitud y respuesta actual.
Transacciones HTTP
La figura anterior muestra la transacción HTTP entre el cliente y el servidor. El cliente inicia una transacción enviando un mensaje de solicitud al servidor. El servidor responde al mensaje de solicitud enviando un mensaje de respuesta.
Cuando un cliente web recibe una dirección IP de un servidor web, el explorador cliente utiliza esa dirección IP y el puerto 80 para solicitar servicios web. Esta solicitud se envía al servidor mediante el protocolo de transferencia de hipertexto (HTTP, Hypertext Transfer Protocol).
Cuando el servidor recibe una solicitud del puerto 80, responde la solicitud del cliente y le envía la página Web. El contenido de la información de una página Web se codifica utilizando lenguajes de “etiquetas” especializados. La codificación del Lenguaje de Marcado de Hipertexto (HTML) indica al navegador cómo formatear la página web y qué gráficos y fuentes usar. HTML es el lenguaje más utilizado.
Flujo de HTTP
Cuando el cliente quiere comunicarse con el servidor, tanto si es directamente con él, o a través de un proxy intermedio, realiza los siguientes pasos:
- Abre una conexión TCP: la conexión TCP se usará para hacer una petición, o varias, y recibir la respuesta. El cliente pude abrir una conexión nueva, reusar una existente, o abrir varias a la vez hacia el servidor.
- Hacer una petición HTTP: Los mensajes HTTP (previos a HTTP/2) son legibles en texto plano. A partir de la versión del protocolo HTTP/2, los mensajes se encapsulan en franjas, haciendo que no sean directamente interpretables, aunque el principio de operación es el mismo.HTMLCopy to ClipboardGET / HTTP/1.1 Host: developer.mozilla.org Accept-Language: fr
- Leer la respuesta enviada por el servidor:HTMLCopy to ClipboardHTTP/1.1 200 OK Date: Sat, 09 Oct 2010 14:28:02 GMT Server: Apache Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT ETag: “51142bc1-7449-479b075b2891b” Accept-Ranges: bytes Content-Length: 29769 Content-Type: text/html <!DOCTYPE html… (here comes the 29769 bytes of the requested web page)
- Cierre o reuso de la conexión para futuras peticiones.
Si está activado el HTTP pipelining, varias peticiones pueden enviarse sin tener que esperar que la primera respuesta haya sido satisfecha. Este procedimiento es difícil de implementar en las redes de computadores actuales, donde se mezclan software antiguos y modernos. Así que el HTTP pipelining ha sido substituido en HTTP/2 por el multiplexado de varias peticiones en una sola trama
Mensajes
Los mensajes HTTP son en texto plano, lo que lo hace más legible y fácil de depurar. Sin embargo, esto tiene el inconveniente de hacer los mensajes más largos. Los mensajes tienen la siguiente estructura:
- Línea inicial (termina con retorno de carro y un salto de línea) con
- Para las peticiones: la acción requerida por el servidor (método de petición) seguido de la URL del recurso y la versión HTTP que soporta el cliente.
- Para respuestas: La versión del HTTP usado seguido del código de respuesta (que indica qué ha pasado con la petición seguido de la URL del recurso) y de la frase asociada a dicho retorno.
- Las cabeceras del mensaje que terminan con una línea en blanco. Son metadatos. Estas cabeceras le dan gran flexibilidad al protocolo.
- Cuerpo del mensaje. Es opcional. Su presencia depende de la línea anterior del mensaje y del tipo de recurso al que hace referencia la URL. Típicamente tiene los datos que se intercambian cliente y servidor. Por ejemplo para una petición podría contener ciertos datos que se quieren enviar al servidor para que los procese. Para una respuesta podría incluir los datos que el cliente ha solicitado.
Los mensajes HTTP son de dos tipos: solicitud y respuesta. Ambos tipos de mensajes siguen el mismo formato.
Mensaje de solicitud: el mensaje de solicitud lo envía el cliente y consta de una línea de solicitud, encabezados y, a veces, un cuerpo.
Peticiones
Un ejemplo de petición HTTP:
Una petición de HTTP, está formado por los siguientes campos:
- Un método HTTP, normalmente pueden ser un verbo, como: GET, POST o un nombre como: OPTIONS (en-US) o HEAD (en-US), que defina la operación que el cliente quiera realizar. El objetivo de un cliente, suele ser una petición de recursos, usando GET, o presentar un valor de un formulario HTML (en-US), usando POST, aunque en otras ocasiones puede hacer otros tipos de peticiones.
- La dirección del recurso pedido; la URL del recurso, sin los elementos obvios por el contexto, como pueden ser: sin el protocolo (http://), el dominio (aquí developer.mozilla.org), o el puerto TCP (aquí el 80).
- La versión del protocolo HTTP.
- Cabeceras HTTP opcionales, que pueden aportar información adicional a los servidores.
- O un cuerpo de mensaje, en algún método, como puede ser POST, en el cual envía la información para el servidor.
Mensaje de respuesta: el mensaje de respuesta lo envía el servidor al cliente y consta de una línea de estado, encabezados y, a veces, un cuerpo.
Respuestas
Un ejemplo de repuesta:
Las respuestas están formadas por los siguientes campos:
- La versión del protocolo HTTP que están usando.
- Un código de estado, indicando si la petición ha sido exitosa, o no, y debido a que.
- Un mensaje de estado, una breve descripción del código de estado.
- Cabeceras HTTP, como las de las peticiones.
- Opcionalmente, el recurso que se ha pedido.
El protocolo HTTP no es un protocolo seguro; la información podría ser fácilmente interceptada por otros usuarios a medida que los datos se envían a través de la red. Para garantizar la seguridad de los datos, HTTP se puede utilizar con protocolos de transporte seguros. Las solicitudes de HTTP se envían al puerto 443.
These requests use https in the site address in the browser, rather than http. Hay muchos servidores web y clientes web diferentes disponibles. El protocolo HTTP y los estándares HTML hacen posible que estos servidores y clientes de diferentes fabricantes funcionen juntos sin problemas.
Localizador uniforme de recursos (URL)
- Un cliente que quiere acceder a un documento en internet necesita una dirección y para facilitar el acceso a los documentos, el HTTP utiliza el concepto de Localizador Uniforme de Recursos (URL).
- El Localizador Uniforme de Recursos (URL) es una forma estándar de especificar cualquier tipo de información en Internet.
- La URL define cuatro partes: método, computadora host, puerto y ruta.
- Método: El método es el protocolo que se utiliza para recuperar el documento de un servidor. Por ejemplo, HTTP.
- Host: El host es el equipo donde se almacena la información y al equipose le asigna un alias. Las páginas web se almacenan principalmente en los PCs y a estos se les asigna un alias que comienza con los caracteres “www”. Este campo no es obligatorio.
- Puerto: La URL también puede contener el número de puerto del servidor, pero es un campo opcional. Si se incluye el número de puerto, debe ir entre el host y la ruta y debe estar separado del host por dos puntos.
- Ruta: Ruta es la ruta del archivo donde se almacena la información. La ruta en sí contiene barras que separan los directorios de los subdirectorios y archivos.
¿Qué se puede controlar con HTTP?
La característica del protocolo HTTP de ser ampliable, ha permitido que durante su desarrollo se hayan implementado más funciones de control y funcionalidad sobre la Web: caché o métodos de identificación o autentificación fueron temas que se abordaron pronto en su historia. Al contrario la relajación de la restricción de origen solo se ha abordado en los años de la década de 2010.
Elementos que se pueden controlar con el protocolo HTTP
- Cache El como se almacenan los documentos en la caché, puede ser especificado por HTTP. El servidor puede indicar a los proxies y clientes, que quiere almacenar y durante cuanto tiempo. Aunque el cliente, también puede indicar a los proxies de caché intermedios que ignoren el documento almacenado.
- Flexibilidad del requisito de origen Para prevenir invasiones de la privacidad de los usuarios, los navegadores Web, solamente permiten a páginas del mismo origen, compartir la información o datos. Esto es una complicación para el servidor, asi que mediante cabeceras HTTP, se puede flexibilizar o relajar esta división entre cliente y servidor
- Autentificación Hay páginas Web, que pueden estar protegidas, de manera que solo los usuarios autorizados puedan acceder. HTTP provee de servicios básicos de autentificación, por ejemplo mediante el uso de cabeceras como: WWW-Authenticate, o estableciendo una sesión especifica mediante el uso de HTTP cookies.
- Proxies y tunneling (en-US) Servidores y/o clientes pueden estar en intranets y esconder así su verdadera dirección IP a otros. Las peticiones HTTP utilizan los proxies para acceder a ellos. Pero no todos los proxies son HTTP proxies. El protocolo SOCKS, por ejemplo, opera a un nivel más bajo. Otros protocolos, como el FTP, pueden ser servidos mediante estos proxies.
- Sesiones El uso de HTTP cookies permite relacionar peticiones con el estado del servidor. Esto define las sesiones, a pesar de que por definición el protocolo HTTP es un protocolo sin estado. Esto es muy útil no sólo para aplicaciones de comercio electrónico, sino también para cualquier sitio que permita configuración al usuario.
Ataque y Defensa del Protocolo HTTP
Todo el mundo se beneficia de la increíble variedad de páginas web que hay en Internet: encontramos ocio, información, inspiración y servicios en cantidades aparentemente ilimitadas. Por desgracia, no todas las páginas son benignas: como en el mundo analógico, hay empresarios con dobles intenciones, delincuencia y crimen organizado. De esta manera, por ejemplo, un usuario de la banca en línea puede ser engañado por una página web fraudulenta para obtener los datos de acceso a sus cuentas, o alguien puede instalar un punto de acceso wifi público para espiar la comunicación entre dos o más personas.
A principio, todo el tráfico de datos de Internet se gestionaba abiertamente, en texto plano y fácil de hackear. El protocolo HTTP media la comunicación entre el cliente (navegador) y el servidor web sin cifrar, lo que facilita las actividades criminales, como el espionaje de metadatos o los ataques man-in-the-middle.
El protocolo HTTPS se desarrolló para que la navegación web sea más segura. Te contamos en qué consiste y cómo funciona.
El protocolo HTTP, aunque fundamental para la web, está expuesto a una variedad de ataques que pueden comprometer la seguridad de las aplicaciones y los usuarios. Desde ataques Man-in-the-Middle y XSS hasta CSRF e inyección de comandos, los hackers tienen múltiples vectores para explotar vulnerabilidades en aplicaciones basadas en HTTP. Sin embargo, mediante la implementación de medidas de defensa sólidas como el uso de HTTPS, la validación de entradas y la autenticación multifactor, es posible proteger las aplicaciones web y mitigar los riesgos asociados con estos ataques.
1. Ataques Man-in-the-Middle (MitM)
Los ataques MitM ocurren cuando un atacante intercepta y posiblemente altera la comunicación entre un cliente y un servidor. En el contexto de HTTP, un atacante puede interceptar solicitudes y respuestas, leer datos no cifrados, o inyectar contenido malicioso.
Métodos de Ejecución:
- Sniffing: El atacante escucha el tráfico HTTP en la red para capturar datos sensibles, como credenciales de usuario.
- Inyección de Contenido: Modificación de las respuestas del servidor para incluir código malicioso, como scripts que ejecuten acciones no deseadas en el navegador de la víctima.
Consecuencias:
- Robo de Información Sensible: El atacante puede capturar contraseñas, cookies de sesión y otra información crítica.
- Suplantación de Identidad: El atacante puede hacerse pasar por el servidor o el cliente, llevando a cabo acciones maliciosas en nombre de la víctima.
- Propagación de Malware: Inyectar malware en páginas web que luego son descargadas y ejecutadas por el navegador del usuario.
Defensa Contra Ataques MitM:
- Cifrado con HTTPS: Implementar HTTPS para cifrar las comunicaciones entre el cliente y el servidor, lo que evita que los atacantes puedan leer o modificar el contenido.
- HSTS (HTTP Strict Transport Security): Forzar el uso de HTTPS en todas las comunicaciones con un servidor, impidiendo ataques de downgrade a HTTP no cifrado.
- Certificados de Validación Extendida (EV): Utilizar certificados SSL/TLS que proporcionen una validación más estricta de la identidad del servidor, dificultando la suplantación por parte de atacantes.
2. Ataques Cross-Site Scripting (XSS)
Los ataques XSS ocurren cuando un atacante inyecta código JavaScript malicioso en una página web a través de entradas no validadas. Cuando otros usuarios acceden a la página comprometida, el script se ejecuta en su navegador, permitiendo al atacante robar datos, secuestrar sesiones o redirigir a sitios maliciosos.
Métodos de Ejecución:
- XSS Reflejado: El código malicioso es enviado al servidor como parte de una solicitud y se refleja en la respuesta, ejecutándose en el navegador de la víctima.
- XSS Persistente: El código malicioso se almacena en el servidor (por ejemplo, en una base de datos) y se sirve a varios usuarios cuando acceden a la página comprometida.
- XSS Basado en DOM: El ataque se ejecuta manipulando el Document Object Model (DOM) en el navegador, sin necesidad de interacción con el servidor.
Consecuencias:
- Robo de Cookies de Sesión: Permite al atacante secuestrar la sesión de la víctima y hacerse pasar por ella en el sitio web comprometido.
- Suplantación de Identidad: El atacante puede realizar acciones en nombre de la víctima, como enviar mensajes o realizar transacciones.
- Redirección Maliciosa: Los usuarios pueden ser redirigidos a sitios web maliciosos que intentan robar más información o instalar malware.
Defensa Contra XSS:
- Validación y Saneamiento de Entradas: Asegurar que todas las entradas de usuario sean validadas y saneadas para eliminar cualquier código malicioso antes de procesarlo o almacenarlo.
- Codificación de Salida: Codificar los datos antes de mostrarlos en la página web para prevenir que el navegador interprete datos de usuario como código ejecutable.
- Content Security Policy (CSP): Implementar CSP para limitar las fuentes de contenido que pueden ser cargadas en la página web, reduciendo el riesgo de ejecución de scripts maliciosos.
3. Ataques Cross-Site Request Forgery (CSRF)
CSRF es un ataque en el que un atacante engaña a un usuario autenticado para que ejecute una acción no deseada en un sitio web en el que está autenticado. El atacante envía una solicitud maliciosa que el sitio web cree que proviene de un usuario legítimo, permitiendo que el atacante realice acciones como cambiar configuraciones de cuenta o realizar transacciones.
Métodos de Ejecución:
- Enlaces Maliciosos: El atacante induce a la víctima a hacer clic en un enlace que envía una solicitud a un sitio web en el que la víctima está autenticada.
- Formularios Automáticos: El atacante utiliza un formulario HTML que se envía automáticamente cuando la víctima visita una página maliciosa.
Consecuencias:
- Compromiso de Cuentas: El atacante puede cambiar la configuración de la cuenta de la víctima, como la dirección de correo electrónico o la contraseña.
- Transferencias Financieras No Autorizadas: En sitios web bancarios, un atacante podría realizar transferencias de dinero a cuentas bajo su control.
- Publicación de Contenido Malicioso: El atacante puede hacer que la víctima publique mensajes o contenido malicioso en su nombre.
Defensa Contra CSRF:
- Tokens CSRF: Utilizar tokens únicos y secretos que deben acompañar cada solicitud que realice el usuario autenticado. Estos tokens son verificados por el servidor antes de que se procese la solicitud.
- Referer Header Check: Verificar que las solicitudes provengan de la misma fuente que las páginas desde donde fueron generadas, asegurando que no provienen de un dominio malicioso.
- Autenticación Multifactor (MFA): Implementar MFA para acciones críticas, lo que añade una capa adicional de seguridad que los atacantes no pueden eludir solo con un ataque CSRF.
4. Inyección de Comandos
Los ataques de inyección de comandos ocurren cuando un atacante introduce comandos maliciosos en una entrada que es ejecutada por el servidor. Este tipo de ataque es posible cuando las aplicaciones web ejecutan comandos del sistema operativo basados en entradas de usuario sin una validación adecuada.
Métodos de Ejecución:
- Entradas Manipuladas: El atacante envía datos que incluyen comandos del sistema operativo, como
; rm -rf /
, a través de formularios web o URLs. - Inyección a través de Parametrización: Si un parámetro en una solicitud HTTP no está adecuadamente protegido, un atacante puede modificarlo para ejecutar comandos.
Consecuencias:
- Compromiso del Sistema: El atacante puede obtener acceso no autorizado al servidor, ejecutar comandos arbitrarios, y tomar control del sistema.
- Pérdida de Datos: Comandos maliciosos pueden borrar o modificar datos críticos en el servidor.
- Puerta Trasera: El atacante podría instalar una puerta trasera para mantener acceso persistente al sistema comprometido.
Defensa Contra la Inyección de Comandos:
- Validación de Entradas: Asegurar que todas las entradas de usuario sean estrictamente validadas y saneadas antes de su uso.
- Uso de APIs Seguras: Siempre que sea posible, utilizar APIs seguras que no permitan la ejecución directa de comandos del sistema operativo.
- Menor Privilegio: Configurar el entorno del servidor para que las aplicaciones web solo tengan los permisos mínimos necesarios, limitando la capacidad de un atacante para ejecutar comandos.
Para saber más debes leer…
El protocolo HTTP, aunque fundamental para la web, está expuesto a una variedad de ataques que pueden comprometer la seguridad de las aplicaciones y los usuarios. Desde ataques Man-in-the-Middle y XSS hasta CSRF e inyección de comandos, los hackers tienen múltiples vectores para explotar vulnerabilidades en aplicaciones basadas en HTTP.
Sin embargo, mediante la implementación de medidas de defensa sólidas como el uso de HTTPS, la validación de entradas y la autenticación multifactor, es posible proteger las aplicaciones web y mitigar los riesgos asociados con estos ataques.
Herramientas HTTP
INICIAR EL SERVIDOR WEB PYTHON EN EL PUERTO 2305: |
---|
# python3 -m http.server 2305 |
OPCIONES ÚTILES DE CURL: |
---|
-k: Accept untrusted certificates |
-d “foo=bar”: HTTP POST data |
-H: “Foo: Bar”: HTTP header |
-I: Perform HEAD request |
-L: Follow redirects |
-o foobar.html: Write output file |
–proxy http://127.0.0.1:8080: Set proxy |
REALIZAR SOLICITUD HTTP: |
---|
# curl http://10.5.23.42:2305/?foo=bar |
ESCANEAR EN BUSCA DE ARCHIVOS/APLICACIONES/CONFIGURACIONES COMUNES: |
---|
# nikto -host https://example.net |
NUMERAR DIRECTORIO COMÚN/NOMBRES DE ARCHIVO: |
---|
# gobuster dir -k -u |
https://example.net -w |
/usr/share/wordlists/dirb/common.txt |
2 HTTPS
HTTPS son las siglas de Hypertext Transfer Protocol Secure (en español, protocolo seguro de transferencia de hipertexto). En cierto sentido, el protocolo de transferencia es el lenguaje en el que el cliente web ―generalmente el navegador― y el servidor web se comunican entre sí. HTTPS es una versión del protocolo de transferencia que utiliza un cifrado seguro para la comunicación.
Finalidad de HTTPS
HTTPS cumple las siguientes dos funciones:
La comunicación entre el cliente web y el servidor web está cifrada. Mediante este sistema, se evita que un tercero no autorizado tenga acceso los datos, por ejemplo, observando el tráfico de la red wifi.
El servidor web se autentica enviando un certificado al navegador justo al comienzo de la transmisión de datos, que garantiza la fiabilidad del dominio. Esta medida ayuda a combatir el fraude por parte de páginas web falsas.
Diferencias entre HTTP y HTTPS
¿En qué se diferencian HTTP y HTTPS? La respuesta es simple, técnicamente no se diferencian en nada. El protocolo en sí, es decir, la sintaxis, es idéntica en ambas variantes.
Sin embargo, HTTPS utiliza un protocolo de transmisión especial, denominado SSL/TLS. No es el protocolo en sí el que ofrece más seguridad, sino el tipo de transferencia. Para que lo entiendas mejor, considera la siguiente analogía:
- Dos personas están hablando por teléfono.
- Utilizan un lenguaje común para comunicarse: HTTP.
- La conexión telefónica a través de la cual se realiza la llamada no está cifrada en el caso de HTTP. Con HTTPS, la comunicación está protegida frente a terceros.
La siguiente tabla resume las diferencias más importantes desde la perspectiva del usuario:
HTTP | HTTPS | |
Transmisión | Sin cifrar | Cifrada |
Certificado | No | Sí |
Número de puerto | 80 | 443 |
Direccionamiento en el URL | http:// | https:// |
Todos los navegadores web actuales advierten al usuario cuando accede a una página web bajo el protocolo HTTP.
Así se identifica el protocolo de seguridad en la barra de direcciones de los diferentes navegadores. Si haces clic en el icono que figura a la izquierda de la barra de direcciones, obtendrás más información:
Al hacer clic en el icono, se abre un cuadro de información. Dependiendo del navegador y la configuración de seguridad, el software incluso se negará a abrir las páginas web no seguras o mostrará una advertencia en su lugar.
¿Cómo funciona HTTPS?
No es HTTP en sí mismo el responsable de la seguridad, sino el protocolo de transferencia subyacente. ¿Cuál es la diferencia?
El protocolo HTTP solo regula cómo debe estructurarse el contenido que el navegador y el servidor web intercambian entre sí. El protocolo de transferencia, en cambio, indica cómo se transfieren los flujos de datos entre los equipos. Por ejemplo, asegura que no se pierdan paquetes de datos. El protocolo de transferencia estándar, que también es el que utiliza HTTP, es TCP o Transmission Control Protocol (protocolo de control de transmisión).
Existe una extensión de este protocolo de transferencia que cifra los flujos de datos: se denomina TLS (anteriormente, SSL). Todos los datos que se transmitan mediante este protocolo se cifran de tal manera que solo el destinatario real (el navegador o el servidor web) pueden acceder al contenido transferido.
Cuando un URL empieza con https://, el navegador añade automáticamente el número de puerto 443. Este número le indica al equipo receptor que debe comunicarse a través de TLS/SSL.
Por qué es importante el cifrado HTTPS
La capacidad de los hackers para espiar y manipular páginas web no deja de aumentar. Por ello, es importante cifrar los flujos de datos, especialmente en las redes de libre acceso, como los puntos de conexión wifi pública.
HTTPS es el nuevo estándar. Como ya hemos mencionado, las páginas web que no tienen el certificado son destacadas negativamente o bloqueadas por los navegadores actuales. Además, es probable que HTTPS tenga un efecto positivo en el posicionamiento en Google, aun cuando Google todavía no lo ha reconocido expresamente.
En Europa, el Reglamento General de Protección de Datos (RGPD) estipula que las páginas web deben mantenerse actualizadas en términos de seguridad, por lo que todas deberían estar en HTTPS.
Principales Ataques contra HTTPS
HTTPS (Hypertext Transfer Protocol Secure) es una versión segura de HTTP que utiliza SSL/TLS para cifrar las comunicaciones entre un navegador y un servidor. Aunque HTTPS mejora significativamente la seguridad, no está exento de vulnerabilidades. Este artículo explora en profundidad los ataques dirigidos a HTTPS y las estrategias para defenderse contra ellos.
HTTPS protege la confidencialidad e integridad de los datos transmitidos en la web mediante el cifrado. Funciona utilizando el protocolo SSL/TLS, que cifra los datos antes de que sean transmitidos entre el cliente y el servidor. HTTPS también proporciona autenticación mediante certificados digitales, asegurando que el cliente esté comunicándose con el servidor legítimo.
1. Ataques Man-in-the-Middle (MitM)
Los ataques MitM contra HTTPS ocurren cuando un atacante intercepta la conexión entre el cliente y el servidor, intentando descifrar o manipular los datos. Aunque el cifrado de HTTPS dificulta estos ataques, los atacantes pueden usar varias técnicas para debilitar o evitar el cifrado.
Métodos de Ejecución:
- Ataques de Downgrade: Obligar a las partes a utilizar una versión más débil de TLS o SSL, o incluso HTTP en lugar de HTTPS.
- Certificados Falsificados: Utilizar certificados falsos o comprometidos para hacerse pasar por un servidor legítimo.
Consecuencias:
- Robo de Información Sensible: Si el atacante logra descifrar la conexión, puede acceder a datos sensibles como contraseñas y números de tarjetas de crédito.
- Manipulación de Datos: El atacante puede modificar las respuestas del servidor antes de que lleguen al cliente, inyectando contenido malicioso.
Defensa Contra MitM:
- Implementación de HSTS: Forzar el uso de HTTPS en todas las comunicaciones con el servidor para evitar ataques de downgrade.
- Certificados SSL/TLS de Alta Calidad: Utilizar certificados emitidos por autoridades de certificación de confianza, y asegurarse de que los certificados sean actualizados y protegidos contra compromisos.
- Monitoreo de la Cadena de Certificados: Asegurarse de que el certificado presentado por el servidor es el correcto, utilizando mecanismos como el certificado de transparencia y la validación extendida.
2. Ataques de Poodle (Padding Oracle On Downgraded Legacy Encryption)
POODLE es un ataque que explota una vulnerabilidad en el protocolo SSL 3.0, permitiendo a los atacantes descifrar pequeñas cantidades de datos cifrados por HTTPS. El ataque se basa en obligar a un cliente y un servidor a degradar su comunicación a SSL 3.0, lo que es posible si ambas partes aún lo soportan.
Métodos de Ejecución:
- Forzado de Degradación: El atacante manipula la negociación de TLS para forzar a las partes a usar SSL 3.0, luego explota la vulnerabilidad POODLE en este protocolo.
Consecuencias:
- Descifrado de Datos: El atacante puede descifrar datos cifrados, como cookies de sesión, y usarlos para secuestrar sesiones.
- Compromiso de la Seguridad: Cualquier dato transmitido en la sesión degradada a SSL 3.0 puede estar comprometido.
Defensa Contra POODLE:
- Deshabilitación de SSL 3.0: Configurar servidores y navegadores para no soportar SSL 3.0, forzando el uso de versiones más seguras de TLS.
- Uso Exclusivo de TLS 1.2 y Superior: Asegurarse de que tanto los servidores como los clientes utilicen únicamente versiones modernas y seguras de TLS.
3. Ataques de Renegociación SSL/TLS
La renegociación SSL/TLS es una característica que permite a un cliente y un servidor renegociar los parámetros de seguridad en medio de una sesión. Sin embargo, en versiones anteriores de TLS, esto puede ser explotado por un atacante para inyectar comandos maliciosos en la sesión cifrada.
Métodos de Ejecución:
- Inyección de Comandos: El atacante interrumpe la sesión original, inyecta su propio contenido durante la renegociación, y continúa la sesión con el servidor creyendo que es parte de la sesión original.
Consecuencias:
- Ejecución de Comandos No Autorizados: El atacante puede ejecutar comandos en nombre del cliente, lo que podría incluir la inyección de solicitudes maliciosas.
- Compromiso de la Integridad de la Comunicación: Los datos transmitidos durante y después de la renegociación pueden estar comprometidos.
Defensa Contra la Renegociación SSL/TLS:
- Deshabilitación de la Renegociación: Desactivar la renegociación SSL/TLS en servidores y clientes si no es estrictamente necesaria.
- Actualización a TLS Moderno: Utilizar versiones de TLS que solucionen este problema, como TLS 1.3, que elimina la renegociación insegura.
4. Ataques BEAST (Browser Exploit Against SSL/TLS)
BEAST es un ataque criptográfico que explota una vulnerabilidad en las versiones anteriores de TLS (1.0 y 1.1) que permite a los atacantes descifrar cookies HTTP protegidas por HTTPS.
Métodos de Ejecución:
- Inyección de Scripts: El atacante inyecta un script en el navegador de la víctima que permite interceptar y descifrar los bloques de datos cifrados enviados al servidor.
Consecuencias:
- Secuestro de Sesiones: Al descifrar cookies de sesión, el atacante puede tomar el control de las sesiones de los usuarios.
- Compromiso de la Seguridad: Cualquier dato cifrado con TLS 1.0 o 1.1 está en riesgo de ser descifrado por un atacante.
Defensa Contra BEAST:
- Actualización a TLS 1.2 o Superior: Configurar servidores y navegadores para que utilicen TLS 1.2 o versiones superiores, que no son vulnerables a BEAST.
- Uso de Modo Galois/Counter (GCM): Implementar cifrados con modos de operación GCM en lugar de CBC (Cipher Block Chaining), que es vulnerable a BEAST.
5. Ataques CRIME (Compression Ratio Info-leak Made Easy)
CRIME es un ataque que explota la compresión de datos en HTTPS para extraer información sensible, como cookies de autenticación. Este ataque es efectivo contra el uso de compresión tanto en la capa SSL/TLS como en la capa de la aplicación HTTP.
Métodos de Ejecución:
- Manipulación de Entradas: El atacante envía datos manipulados junto con datos sensibles en la misma solicitud y observa el tamaño de la respuesta comprimida para deducir el contenido de los datos sensibles.
Consecuencias:
- Robo de Cookies y Credenciales: Al descifrar cookies de autenticación, el atacante puede tomar el control de las cuentas de los usuarios.
- Exposición de Datos Sensibles: Cualquier dato comprimido, como tokens de sesión o datos de formularios, está en riesgo de ser filtrado.
Defensa Contra CRIME:
- Deshabilitar la Compresión en SSL/TLS: Configurar servidores para desactivar la compresión en las capas SSL/TLS y HTTP.
- Uso de HTTPS Exclusivo: Implementar HSTS para asegurar que todas las conexiones sean cifradas, minimizando las oportunidades de que un atacante utilice compresión para obtener información sensible.
Mejores Prácticas de Seguridad para HTTPS
- Implementación de Certificados SSL/TLS Robustecidos: Utilizar certificados con cifrado fuerte (mínimo RSA 2048 bits o ECDSA 256 bits) y asegurarse de que están emitidos por autoridades de certificación de confianza.
- Cadena de Confianza: Asegurar que la cadena de certificados esté correctamente configurada, sin omisiones, y que los certificados intermedios estén incluidos en las respuestas del servidor.
- Monitoreo de Certificados: Utilizar herramientas de monitoreo para detectar cualquier cambio o compromiso en los certificados SSL/TLS, como expiración o revocación.
- Certificado de Transparencia: Implementar tecnologías de transparencia de certificados para prevenir el uso de certificados falsificados.
- Uso Exclusivo de TLS 1.2 o Superior: Configurar servidores para que solo soporten TLS 1.2 y TLS 1.3, eliminando el soporte para versiones más antiguas que son vulnerables a múltiples ataques.
- Configuración de Cipher Suites: Seleccionar y priorizar suites de cifrado modernas que proporcionen la mejor combinación de seguridad y rendimiento, evitando el uso de algoritmos obsoletos.
- Implementación de Content Security Policy (CSP): Implementar CSP para restringir las fuentes de contenido, reduciendo el riesgo de ataques XSS y otras vulnerabilidades en aplicaciones web.
- Protección Contra Mixed Content: Configurar la política CSP para bloquear cualquier contenido mixto (HTTP dentro de HTTPS)
3. DNS
Un protocolo de capa de aplicación define cómo los procesos de aplicación que se ejecutan en diferentes sistemas se pasan mensajes entre sí.
DNS significa Sistema de nombres de dominio. DNS es un servicio de directorio que proporciona una correspondencia entre el nombre de un host en la red y su dirección numérica. El DNS es necesario para el funcionamiento de Internet.
Cada nodo de un árbol tiene un nombre de dominio, y un nombre de dominio completo es una secuencia de símbolos especificados por puntos. DNS es un servicio que traduce el nombre de dominio a direcciones IP. Esto permite a los usuarios de redes utilizar nombres sencillos cuando buscan otros hosts en lugar de recordar las direcciones IP.
Por ejemplo, supongamos que el sitio FTP de achirou.com tiene una dirección IP de 170.92.80.65 La mayoría de las personas accederían a este sitio especificando ftp.achirou.com. Por lo tanto, el nombre de dominio es más confiable que la dirección IP.
DNS es un protocolo TCP/IP que se utiliza en diferentes plataformas. El espacio de nombres de dominio se divide en tres secciones diferentes: dominios genéricos, dominios de país y dominios inversos.
Dominios genéricos
- Define los hosts registrados según su comportamiento genérico.
- Cada nodo de un árbol define el nombre de dominio, que es un índice de la base de datos DNS.
- Utiliza etiquetas de tres caracteres, y estas etiquetas describen el tipo de organización.
Dominios genéricos de nivel superior no patrocinados
Top Level Domain | Año de introducción | (Originalmente) destinado a |
---|---|---|
.com (comercial) | 1985 | Empresas estadounidenses |
.org (organización) | 1985 | Organizaciones sin ánimo de lucro |
.net (red) | 1985 | ISP (proveedores de acceso a Internet) |
.info | 2001 | Servicios informativos (de uso libre desde un principio) |
.biz (negocios) | 2001 | Empresas |
.name | 2001 | Personas privadas |
.pro (profesional) | 2004 | Profesionales y expertos |
Dominios genéricos de nivel superior patrocinados
Top Level Domain | Año de introducción | Usuarios autorizados /previsto para |
---|---|---|
.gov (government) | 1985 | Oficinas gubernamentales de los Estados Unidos |
.edu (educational) | 1985 | Organizaciones del sistema educativo (desde 2001 su uso es exclusivo para instituciones educativas en EE.UU) |
.mil (military) | 1985 | Ejército de los Estados Unidos |
.int (international) | 1988 | Organizaciones internacionales |
.aero (aeronautics) | 2001 | Industria de la aviación |
.coop (cooperatives) | 2001 | Cooperativas |
.museum | 2001 | Museos |
.cat (catalán) | 2005 | Impulsadores / usuarios del idioma y cultura catalana |
.jobs | 2005 | Ofertas de trabajo de empresas |
.mobi (mobile) | 2005 | Webs optimizadas para dispositivos móviles |
.tel (telecommunication) | 2005 | Presentación de los datos de contacto del propietario de un dominio |
.travel | 2005 | Personas, empresas y organizaciones del sector de viajes y turismo |
.asia | 2007 | Personas, empresas y organizaciones de la región Asia-Pacífico |
.xxx | 2011 | Contenido erótico / pornográfico |
.post | 2012 | Miembros de la Unión Postal Universal |
Dominio del país
El formato de un dominio de país es el mismo que el de un dominio genérico, pero utiliza abreviaturas de país de dos caracteres (por ejemplo, AR para Argentina, UY para Uruguay, etc.) en lugar de abreviaturas organizacionales de tres caracteres.
Dominio inverso
El dominio inverso se utiliza para asignar una dirección a un nombre. Cuando el servidor ha recibido una solicitud del cliente y contiene solo los archivos de los clientes autorizados, para determinar si el cliente está en la lista de autorizados o no, envía una consulta al servidor DNS y solicita la asignación de una dirección al nombre.
Funcionamiento del DNS
- DNS es un protocolo de comunicación de red cliente/servidor. Los clientes DNS envían solicitudes al servidor mientras que los servidores DNS envían respuestas al cliente.
- Las solicitudes de cliente contienen un nombre que se convierte en una dirección IP, conocida como búsquedas DNS directas, mientras que las solicitudes que contienen una dirección IP que se convierte en un nombre se conocen como búsquedas DNS inversas.
- DNS implementa una base de datos distribuida para almacenar el nombre de todos los hosts disponibles en Internet.
- Si un cliente, como un navegador web, envía una solicitud que contiene un nombre de host, un programa de software, como un solucionador de DNS , envía una solicitud al servidor DNS para obtener la dirección IP de un nombre de host. Si el servidor DNS no contiene la dirección IP asociada a un nombre de host, reenvía la solicitud a otro servidor DNS. Si la dirección IP ha llegado al solucionador, este, a su vez, completa la solicitud a través del protocolo de Internet.
¿Qué es un servidor DNS?
Un servidor DNS (también llamado servidor de nombres) es un software de servidor especial que utiliza una base de datos DNS para responder a las consultas relativas al DNS. Dado que los servidores DNS suelen estar alojados en hosts dedicados, los equipos que contienen los programas correspondientes también se denominan servidores DNS.
Gracias al DNS, los usuarios de Internet pueden introducir un dominio, es decir, un nombre fácil de recordar, en la barra de direcciones del navegador. Cada dominio de Internet tiene al menos una dirección IP, que los equipos necesitan para poder comunicarse en la red. Un servidor DNS conoce las combinaciones de dominios y direcciones IP o sabe a qué otro servidor DNS debe reenviar la solicitud. De este modo, cuando se accede a una web, primero se realiza una solicitud a uno o varios servidores DNS para poder finalmente realizar la conexión a la página web. Esto hace que los servidores DNS sean elementos fundamentales para el correcto funcionamiento de Internet.
Diferentes tipos de servidores DNS
En cuanto al funcionamiento del DNS, se distingue entre servidores DNS autoritativos y no autoritativos.
- Los servidores DNS autoritativos almacenan en su base de datos la información DNS original de una zona específica del espacio de nombres de dominio. El DNS está estructurado de tal manera que hay al menos un servidor de nombres autoritativo para cada zona. Este sistema suele implementarse como un clúster de servidores en el que se almacenan los mismos datos de zona, tanto en un sistema maestro como en varios esclavos. También se puede diferenciar entre DNS secundarios y primarios. Este tipo de redundancia aumenta la fiabilidad y disponibilidad de un servidor de nombres autoritativo.
- Los servidores DNS no autoritativos no utilizan la información DNS de un servidor de nombres de su propio archivo de zona, sino que utilizan un servidor de segunda o tercera mano. Esta situación se produce cuando un servidor de nombres no puede atender una consulta debido a su propio stock de datos y obtiene la información de otro servidor de nombres (recursión). Estos datos del DNS se almacenan temporalmente en la caché y se proporcionan a las consultas iguales sucesivas. Sin embargo, dado que las entradas en el archivo de zona real pueden haber cambiado mientras tanto, la información DNS de los servidores de nombres no autoritativos no se considera segura.
¿Cómo resuelven los servidores DNS una solicitud de DNS?
La resolución de una petición DNS a la dirección IP correcta se realiza por pasos:
Mientras se está resolviendo la solicitud de DNS, el DNS resolver se comunica con varios servidores DNS para encontrar la dirección IP que el cliente ha solicitado.
- El cliente que escribe un dominio o URL en su navegador envía primero una solicitud al DNS resolver.
- El DNS resolver reenvía la petición directamente a un root server.
- El root server es un servidor de nombres autoritativo. Responde al DNS resolver con la dirección de un servidor para el respectivo dominio de primer nivel (TLD).
- A continuación, el DNS resolver envía una solicitud al servidor TLD que contiene los DNS records asociados a su TLD.
- Como respuesta, el DNS resolver recibe del servidor DNS autoritativo la dirección IP del dominio solicitado.
- El DNS resolver pide al servidor DNS autoritativo la dirección IP del servidor de origen en el que se lleva a cabo el hosting de la web.
- El DNS resolver obtiene la dirección IP del servidor de origen desde el servidor DNS autoritativo.
- El DNS resolver reenvía la dirección IP al cliente.
- Ahora el cliente puede interactuar con el servidor de origen de la página web solicitada a través de la dirección IP que le ha llegado.
- El servidor de origen envía los datos de la página web solicitada al cliente.
¿Qué ocurre cuando fallan los servidores DNS?
Si un servidor DNS no responde o incluso falla, el proceso de resolución de nombres no puede completarse correctamente. Esto provoca interrupciones en el servicio. Dado que siempre puede producirse un fallo en el servidor DNS, merece la pena utilizar una infraestructura DNS lo más segura posible.
Se pueden ejecutar dos servidores de nombres para la misma zona DNS. Uno de estos servidores queda etiquetado como servidor primario y el otro como secundario. Los clientes deben realizar sus consultas a ambos servidores para que, en caso de que falle un servidor, el otro servidor DNS tome el relevo.
Un vistazo a los servidores DNS públicos de confianza
Hay muchos servidores DNS públicos que puedes utilizar de forma gratuita. En algunos casos, se puede conseguir una mayor velocidad de navegación cambiando a un servidor DNS de alto rendimiento. Sin embargo, no todas las soluciones de servidor son más rápidas que la configuración DNS estandarizada de tu proveedor de Internet. Por lo tanto, merece la pena comparar las velocidades antes de efectuar el cambio.
En nuestra tabla resumen puedes encontrar los diez servidores DNS públicos más populares:
Servidor DNS | Dirección primaria | Dirección secundaria | Seguridad | Características |
Cloudflare | 1.1.1.1 | 1.0.0.1 | – Protección contra DNS spoofing– Los registros se eliminan al cabo de 24 horas | – Alta velocidad- Más de 200 ubicaciones de servidores en todo el mundo |
CyberGhost | 10.101.0.243 | 38.132.106.139 | – No hay conexión encriptada | – Acceso al contenido de Internet sin restricciones de países- Alta velocidad |
Google Public DNS | 8.8.8.8 | 8.8.4.4 | – Implementa el estándar DNSSEC- La dirección IP se elimina al cabo de 48 horas | – No hay un límite de solicitudes- Se puede utilizar sin necesidad de registrarse |
Quad9 | 9.9.9.9 | 149.112.112.112 | – Protección contra malware, spyware y phishing- No se almacenan datos identificativos | – Más de 145 ubicaciones de servidores- Presta especial atención a la seguridad |
DNS.Watch | 84.200.69.80 | 84.200.70.40 | – No hay registro de datos personales- No incluye una protección contra el malware | – Dos servidores en Alemania, por lo que la velocidad es alta- Financiado por donaciones- Acceso a Internet sin restricciones |
OpenDNS | 208.67.222.222 | 208.67.220.220 | – Recogida y divulgación de datos no identificativos | – Posibilidad de configurar filtros individuales- Servidor DNS FamilyShield que bloquea todos los contenidos para adultos |
AdGuard DNS | 94.140.14.14 | 94.140.15.15 | – Bloquea el malware y la publicidad- Recoge datos personales con fines internos | – Bloquea la publicidad automáticamente- Posibilidad de bloquear contenidos para adultos |
Comodo DNS | 8.26.56.26 | 8.20.247.20 | – El spyware y el malware se bloquean automáticamente- Recoge datos personales | – Altas medidas de seguridad- Alta velocidad |
UncensoredDNS | 91.239.100.100 | 89.233.43.71 | – No hay registro ni almacenamiento de datos personales | – Alta velocidad en Europa- Acceso a Internet sin restricciones |
CleanBrowsing DNS | Depende del filtro deseado | Depende del filtro deseado | – No hay seguimiento ni registro de datos | – Elección entre diferentes modos- Permite, entre otras cosas, bloquear los contenidos para adultos |
Si quieres cambiar tu servidor DNS ahora, primero debes tener claro si el cambio debe afectar a todos los dispositivos de tu red o solo a algunos equipos individuales. Para este último caso basta con configurar un nuevo servidor DNS en la configuración de Windows.
En cambio, si quieres que todos tus dispositivos utilicen un servidor DNS diferente, te merece la pena hacer el cambio en el router. Ahora bien, tanto si se trata de un PC individual como de toda la red, debes asegurarte de elegir un servidor DNS seguro para estar mejor protegido contra ataques DNS como DNS Hijacking.
Herramientas básicas de red de Linux
BÚSQUEDA DE DNS: |
---|
# dig achirou.com |
Recopilación de información
REVERSE DNS LOOKUP: |
---|
# dig -x 10.5.23.42 |
O USANDO UN SCRIP NMAP: |
---|
# nmap -sn -Pn achirou.com |
–script hostmap-crtsh |
COMBINE VARIAS FUENTES PARA ENUMERAR SUBDOMINIOS: |
---|
# amass enum -src -brute -min-forrecursive |
2 -d achirou.com |
ENCONTRAR PROPIETARIO/CONTACTO DE DOMINIO O DIRECCIÓN IP: |
---|
# whois achirou.com |
GET NAMESERVERS AND TEST FOR DNS ZONE TRANSFER: |
---|
# dig achirou.com ns |
# dig achirou.com axfr @n1.example.com |
GET HOSTNAMES FROM CT LOGS: SEARCH FOR: |
---|
%.achirou.com on https://crt.sh. |
Ataque y Defensa del Protocolo DNS
El Sistema de Nombres de Dominio (DNS) es fundamental para el funcionamiento de Internet, ya que traduce nombres de dominio legibles por humanos a direcciones IP que las máquinas pueden entender. Debido a su papel crítico, el DNS es un objetivo frecuente de ataques cibernéticos. Este artículo explora en detalle los tipos de ataques más comunes contra DNS y las estrategias de defensa más efectivas.
DNS es un protocolo de la capa de aplicación que opera sobre UDP o TCP en el puerto 53. Cuando un usuario ingresa un nombre de dominio en su navegador, se envía una consulta DNS para resolver el nombre en una dirección IP. El proceso de resolución puede involucrar múltiples servidores DNS, incluyendo servidores raíz, servidores TLD (Top-Level Domain), y servidores autoritativos.
El protocolo DNS es un componente esencial de la infraestructura de Internet, pero también es un objetivo frecuente para una variedad de ataques cibernéticos. Al implementar medidas de seguridad robustas como DNSSEC, monitorización continua, y configuración segura de servidores DNS, es posible mitigar los riesgos y proteger la integridad y disponibilidad.
1. Ataques de Envenenamiento de Caché (Cache Poisoning)
El envenenamiento de caché es un ataque en el que un atacante inyecta entradas DNS falsas en la caché de un servidor DNS, redirigiendo el tráfico a sitios maliciosos.
Métodos de Ejecución:
- Inyección de Respuestas Maliciosas: El atacante envía respuestas DNS falsas a un servidor DNS antes de que llegue la respuesta legítima, haciendo que el servidor almacene la dirección IP incorrecta.
Consecuencias:
- Redirección de Tráfico: Los usuarios son redirigidos a sitios controlados por el atacante, lo que puede llevar al robo de información, phishing, o distribución de malware.
- Compromiso de la Confianza: El envenenamiento de caché puede causar que los usuarios pierdan la confianza en la autenticidad de los sitios web.
Defensa Contra Envenenamiento de Caché:
- DNSSEC (DNS Security Extensions): Implementar DNSSEC, que añade firmas criptográficas a las respuestas DNS, asegurando que las respuestas no hayan sido alteradas.
- Caché Seguro: Configurar los servidores DNS para minimizar la duración de almacenamiento de entradas en caché (TTL) y para validar las respuestas entrantes.
2. Ataques de Amplificación DNS (DNS Amplification)
Un ataque de amplificación DNS es un tipo de ataque DDoS en el que el atacante envía pequeñas consultas DNS a servidores abiertos que generan respuestas mucho más grandes, las cuales son enviadas a la víctima, sobrecargando su red.
Métodos de Ejecución:
- Consulta de DNS Reflexiva: El atacante utiliza una dirección IP falsificada (la IP de la víctima) como origen de la consulta, haciendo que el servidor DNS envíe grandes respuestas a la víctima.
Consecuencias:
- Denegación de Servicio: La víctima queda inundada con grandes cantidades de tráfico no solicitado, lo que puede llevar a la caída del servicio o la saturación del ancho de banda.
- Desgaste de Recursos: Este ataque consume recursos tanto en el servidor DNS como en la red de la víctima.
Defensa Contra Amplificación DNS:
- Rate Limiting: Configurar los servidores DNS para limitar la tasa de respuestas enviadas a una dirección IP, mitigando la efectividad de los ataques de amplificación.
- Deshabilitación de Recursión Abierta: Configurar servidores DNS para que no respondan a consultas de recursión de fuentes externas a su red.
3. Ataques de Suplantación DNS (DNS Spoofing)
Descripción: DNS Spoofing es un ataque en el que el atacante se hace pasar por un servidor DNS legítimo, enviando respuestas DNS falsas a los clientes. Esto permite redirigir el tráfico a sitios maliciosos.
Métodos de Ejecución:
- Intercepción de Tráfico DNS: El atacante intercepta la consulta DNS y responde con una dirección IP maliciosa antes de que lo haga el servidor DNS real.
Consecuencias:
- Robo de Información Sensible: Los usuarios son redirigidos a sitios falsificados donde se les puede solicitar información personal, como credenciales de inicio de sesión.
- Suplantación de Identidad: El atacante puede hacerse pasar por un sitio web legítimo, engañando a los usuarios para que realicen acciones no deseadas.
Defensa Contra Suplantación DNS:
- Validación de Respuestas DNS: Configurar los clientes y servidores para validar las respuestas DNS mediante DNSSEC, asegurando que las respuestas provengan de una fuente confiable.
- Cifrado de Consultas DNS: Utilizar DNS sobre HTTPS (DoH) o DNS sobre TLS (DoT) para cifrar las consultas DNS, protegiéndolas de la interceptación y manipulación.
4. Ataques de Denegación de Servicio contra Servidores DNS
Los ataques DDoS dirigidos contra servidores DNS buscan sobrecargar los servidores con tráfico malicioso, haciendo que no puedan procesar las consultas legítimas.
Métodos de Ejecución:
- Inundación de Consultas: El atacante envía un gran número de consultas DNS a un servidor, superando su capacidad de respuesta.
Consecuencias:
- Interrupción del Servicio: Los servidores DNS quedan incapaces de resolver nombres de dominio, causando la interrupción de los servicios web que dependen de ellos.
- Pérdida de Conectividad: Las aplicaciones y sitios web se vuelven inaccesibles, lo que puede resultar en pérdida de ingresos y daño a la reputación.
Defensa Contra DDoS en DNS:
- Distribución de Carga (Anycast): Implementar Anycast para distribuir las consultas DNS entre múltiples servidores en diferentes ubicaciones geográficas, reduciendo la probabilidad de sobrecarga.
- Firewalls y Filtrado de Tráfico: Utilizar firewalls y sistemas de mitigación de DDoS para filtrar el tráfico malicioso antes de que llegue a los servidores DNS.
5. Ataques de Phishing Basados en DNS
Descripción: En este tipo de ataque, el atacante utiliza técnicas de DNS para redirigir a los usuarios a sitios web falsificados que imitan a los legítimos con el objetivo de robar credenciales u otra información personal.
Métodos de Ejecución:
- Envenenamiento de Caché y Suplantación: El atacante manipula las respuestas DNS para redirigir a los usuarios a sitios de phishing.
Consecuencias:
- Robo de Información Personal: Los usuarios son engañados para que proporcionen información confidencial en sitios falsos.
- Compromiso de Cuentas: El atacante puede obtener acceso a cuentas personales o corporativas, con potenciales consecuencias financieras y de seguridad.
Defensa Contra Phishing Basado en DNS:
- Monitoreo de DNS y Detección de Anomalías: Implementar sistemas de monitoreo que alerten sobre cambios inesperados en las respuestas DNS y actividades sospechosas.
- Educación del Usuario: Informar a los usuarios sobre los riesgos del phishing y cómo identificar sitios web falsificados, como verificar certificados SSL y direcciones URL.
Mejores Prácticas para Asegurar DNS
- Implementación de DNSSEC: DNSSEC agrega una capa de seguridad mediante la firma digital de las respuestas DNS, lo que ayuda a proteger contra el envenenamiento de caché y la suplantación. Garantiza que las respuestas DNS sean auténticas y no hayan sido manipuladas, mejorando la seguridad general del sistema DNS.
- Configuración de Servidores DNS Seguros: Configurar los servidores DNS para que solo respondan a consultas de fuentes confiables y limitar la información que se proporciona en las respuestas. Deshabilitar la recursión abierta, limitar el tamaño de las respuestas, y evitar la divulgación de información sensible en registros DNS.
- Monitorización y Alertas de DNS: Implementar herramientas de monitorización que proporcionen alertas en tiempo real sobre actividades sospechosas o cambios no autorizados en la configuración DNS. Utilizar soluciones como Security Information and Event Management (SIEM) y servicios de monitorización específicos para DNS.
- Seguridad en la Capa de Aplicación: Asegurar las aplicaciones web y servicios que dependen de DNS mediante la implementación de prácticas de desarrollo seguro, como la validación de entradas y la protección contra inyecciones. Realizar pruebas de penetración regulares y auditorías de seguridad para identificar y corregir vulnerabilidades relacionadas con DNS.
- Implementación de Redundancia y Resiliencia: Configurar servidores DNS secundarios y terciarios en ubicaciones geográficas distintas para asegurar que la resolución de nombres pueda continuar incluso si un servidor falla. Mejora la disponibilidad del servicio y reduce la probabilidad de interrupciones debido a fallas o ataques.
4 FTP Protocolo de Transferencia de Archivos
FTP (File Transfer Protocol – Protocolo de transferencia de archivos). Como su nombre indica, se trata de un protocolo que permite transferir archivos directamente de un dispositivo a otro. Actualmente, es un protocolo que poco a poco va abandonándose, pero ha estado vigente más de 50 años.
El protocolo FTP se empezó a utilizar en abril de 1971, y terminó de definir su estructura en el 73, aunque durante las décadas de los 70 y los 80 del siglo pasado fue perfeccionándose. Este protocolo nació antes de que existieran Internet o el correo electrónico, ya que fue uno de los componentes básicos de ARPANET, que fue esa red primigenia que luego dio lugar a Internet.
FTP es un protocolo de Internet estándar proporcionado por TCP/IP que se utiliza para transmitir archivos de un host a otro. Se utiliza principalmente para transferir los archivos de páginas web desde su creador a la computadora que actúa como servidor para otras computadoras en Internet. También se utiliza para descargar archivos a la computadora desde otros servidores.
Este protocolo funciona entre computadoras que estén conectados a una red TCP, que significa Transmission Control Protocol o Protocolo de control de transmisión. Este protocolo TCP da soporte a muchas tecnologías, entre ellas a Internet. Para que te hagas a la idea, la familia de protocolos que forman Internet se llama TCP/IP.
El protocolo FTP funciona para compartir archivos entre equipos que estén conectados a Internet, y los archivos se comparten de forma directa y sin ningún intermediario.
Además de los servicios Web, otro servicio que se utiliza comúnmente por medio de Internet es el que permite a los usuarios transferir archivos. El Protocolo de Transferencia de Archivos (FTP, File Transfer Protocol) brinda un método sencillo para transferir archivos de una computadora a otra.
El protocolo FTP tal cual es un protocolo inseguro
Un host que ejecuta un software cliente FTP puede acceder a un servidor FTP para realizar diversas funciones de administración de archivos, entre ellas subir y descargar archivos. El servidor FTP permite a un cliente intercambiar archivos entre dispositivos.
Ya que su información no viaja cifrada. Sin embargo, en 2001 esto se solucionó con el protocolo FTPS, que le añade una capa SSH para hacerlo más seguro y privado.
El FTP es un protocolo muy útil para el envío de archivos, ya que te permite enviarlos de un equipo a otro a gran velocidad de transferencia, y no hay ningún tipo de límites de tamaño como puede pasar en la descarga directa. También suele utilizarse en contextos como la creación de webs, pudiendo enviar pro FTP los ficheros de una web al servidor donde están.
También permite a los clientes administrar archivos de manera remota enviando comandos de administración de archivos, como Eliminar o Cambiar nombre. Para lograr esto, el servicio FTP utiliza dos puertos para las comunicaciones entre el cliente y el servidor.
En el ejemplo de la figura se ilustra cómo funciona FTP. Para comenzar con una sesión FTP, se envían solicitudes de conexión de control al servidor mediante el puerto 21 TCP de destino. Cuando se abre la sesión, el servidor cambia al puerto 20 TCP para transferir los archivos de datos.
El software cliente FTP viene incorporado en los sistemas operativos y en la mayoría de los exploradores Web. Los clientes FTP independientes ofrecen muchas opciones en una interfaz fácil de usar basada en GUI.
De acuerdo con el comando enviado a través de la conexión de control, los datos pueden descargarse desde el servidor o subirse desde el cliente.
Cómo funciona el FTP
Aunque transferir archivos de un sistema a otro es muy simple y directo, a veces puede causar problemas. Por ejemplo, dos sistemas pueden tener diferentes convenciones de archivos.
Dos sistemas pueden tener diferentes formas de representar texto y datos. Dos sistemas pueden tener diferentes estructuras de directorios. El protocolo FTP supera estos problemas al establecer dos conexiones entre hosts. Una conexión se utiliza para la transferencia de datos y otra conexión se utiliza para la conexión de control.
El funcionamiento de este protocolo es bastante sencillo. Simplemente, un dispositivo A se conecta directamente a un dispositivo B, y podrá ver los archivos que tiene disponible para compartir. Al verlos, simplemente podrá descargarlos directamente en el equipo que se ha conectado al otro.
Esto quiere decir que un dispositivo tiene que estar configurado como servidor FTP, ese en el que se aloja el contenido, y luego te conectas a él como un cliente. En los dispositivos, los datos del protocolo FTP se envían a través de los puertos 20 y 21, que son los que están asignados en todos los equipos para llevar a cabo sus transferencias de archivos.
La figura anterior muestra el modelo básico del FTP. El cliente FTP tiene tres componentes: la interfaz de usuario, el proceso de control y el proceso de transferencia de datos. El servidor tiene dos componentes: el proceso de control del servidor y el proceso de transferencia de datos del servidor.
Aunque eso de tener un dispositivo como cliente y otro como servidor puede parecer complicado si no entiendes de estas cosas, afortunadamente hoy en día todo esto es sencillo.
Sólo vas a tener que utilizar un programa que se encargue de todo, que son esos a los que se les llama clientes FTP. Muchos son gratis, y como usuarios sólo tendrás que establecer la dirección del servidor a la que te quieres conectar y listo. Además, suelen tener también versiones para crear el servidor.
Hay dos tipos de conexiones en FTP:
- Conexión de control: La conexión de control utiliza reglas de comunicación muy simples. A través de la conexión de control, podemos transferir una línea de comando o una línea de respuesta a la vez. La conexión de control se realiza entre los procesos de control. La conexión de control permanece conectada durante toda la sesión FTP interactiva.
- Conexión de datos: La conexión de datos utiliza reglas muy complejas, ya que los tipos de datos pueden variar. La conexión de datos se realiza entre procesos de transferencia de datos. La conexión de datos se abre cuando llega un comando para transferir los archivos y se cierra cuando se transfiere el archivo.
Ventajas del FTP:
- Velocidad: una de las mayores ventajas del FTP es la velocidad. El FTP es una de las formas más rápidas de transferir archivos de un equipo a otro.
- Eficiente: Es más eficiente ya que no necesitamos completar todas las operaciones para obtener el archivo completo.
- Seguridad: Para acceder al servidor FTP, necesitamos iniciar sesión con el usuario y contraseña, por lo que podemos decir que el FTP es más seguro.
- Movimiento de ida y vuelta: FTP nos permite transferir archivos de ida y vuelta. Supongamos que usted es el gerente de una empresa, envía información a todos los empleados y todos ellos envían información de vuelta al mismo servidor.
Desventajas del FTP:
- El requisito estándar de la industria es que todas las transmisiones FTP deben estar cifradas. Sin embargo, no todos los proveedores de FTP son iguales y no todos ofrecen cifrado. Por lo tanto, tendremos que buscar proveedores de FTP que ofrezcan cifrado.
- El FTP sirve para dos operaciones, es decir, para enviar y recibir archivos grandes en una red. Sin embargo, el límite de tamaño del archivo que se puede enviar es de 2 GB. Tampoco permite ejecutar transferencias simultáneas a varios receptores.
- Las contraseñas y el contenido de los archivos se envían en texto claro, lo que permite escuchas no deseadas. Por lo tanto, es muy posible que los atacantes puedan llevar a cabo el ataque de fuerza bruta intentando adivinar la contraseña del FTP.
- No es compatible con todos los sistemas.
Clientes FTP
El cliente FTP es un programa que implementa un protocolo de transferencia de archivos que le permite transferir archivos entre dos hosts en Internet. Permite a un usuario conectarse a un host remoto y cargar o descargar archivos.
Tiene un conjunto de comandos que podemos usar para conectarnos a un host, transferir los archivos entre usted y su host y cerrar la conexión.
El programa FTP también está disponible como componente integrado en un navegador web. Este cliente FTP basado en interfaz gráfica de usuario facilita enormemente la transferencia de archivos y no requiere recordar los comandos FTP.
FileZilla
Posiblemente, el cliente FTP más popular entre la mayoría de usuarios sea FileZilla de Mozilla, los mismos creadores que Firefox. La mayoría de clientes son parecidos, y para conectarte necesitas tener la dirección IP y el puerto del servidor (1), saber el modo de conexión (2), y el usuario y contraseña (3) para acceder a ese servidor FTP.
Porque claro, estos servidores no suelen estar abiertos para que cualquiera entre y tome los archivos que quiera. Necesitarás tener una cuenta de acceso para conectarte. Esto, en parte, ha hecho que otras alternativas más sencillas de cara a los usuarios como las nubes o el P2P se acabasen imponiendo a la hora de compartir archivos.
Ataque y Defensa del Protocolo FTP
El Protocolo de Transferencia de Archivos (FTP) es uno de los métodos más antiguos y utilizados para transferir archivos entre sistemas a través de una red. Aunque sigue siendo popular en muchos entornos, FTP presenta varias vulnerabilidades que pueden ser explotadas por atacantes. En este artículo, exploraremos los tipos de ataques comunes contra FTP y las estrategias para defenderse contra ellos.
FTP es un protocolo de red de la capa de aplicación utilizado para transferir archivos entre un cliente y un servidor. Opera sobre el protocolo TCP y utiliza dos canales principales: uno para comandos y otro para datos. El canal de comandos utiliza el puerto 21, mientras que el canal de datos generalmente utiliza el puerto 20 o un puerto asignado dinámicamente.
FTP tiene dos modos de operación principales:
- Modo Activo: El cliente abre un puerto y espera que el servidor se conecte a él para transferir datos.
- Modo Pasivo: El servidor abre un puerto para la transferencia de datos y espera que el cliente se conecte a él. Este modo es más seguro en entornos de red con cortafuegos.
1. Robo de Credenciales (Sniffing de Contraseñas)
Descripción: FTP transmite credenciales (nombre de usuario y contraseña) en texto plano. Esto permite a los atacantes interceptar las comunicaciones y capturar credenciales sensibles mediante técnicas de sniffing de red.
Métodos de Ejecución:
- Sniffing: Un atacante que tiene acceso a la red puede utilizar herramientas de captura de paquetes como Wireshark para interceptar y leer las credenciales transmitidas entre el cliente y el servidor FTP.
Consecuencias:
- Acceso No Autorizado: Con las credenciales capturadas, el atacante puede obtener acceso no autorizado a los archivos y directorios del servidor FTP.
- Compromiso de Otros Servicios: Si las credenciales se reutilizan en otros servicios, el atacante podría comprometer múltiples sistemas.
Defensa Contra Sniffing de Contraseñas:
- Uso de FTPS o SFTP: Implementar FTPS (FTP sobre SSL/TLS) o SFTP (FTP sobre SSH) para cifrar las comunicaciones y proteger las credenciales.
- Red Segura: Limitar el acceso a la red donde se ejecuta FTP para reducir las posibilidades de que un atacante pueda realizar sniffing.
2. Ataques de Fuerza Bruta
Descripción: Los ataques de fuerza bruta consisten en intentar adivinar las credenciales del FTP mediante la automatización de intentos de inicio de sesión con múltiples combinaciones de nombres de usuario y contraseñas.
Métodos de Ejecución:
- Automatización: Los atacantes utilizan herramientas automatizadas como Hydra o Medusa para realizar intentos masivos de inicio de sesión hasta encontrar la combinación correcta de credenciales.
Consecuencias:
- Acceso No Autorizado: Una vez que el atacante adivina las credenciales correctas, puede obtener acceso total a los archivos y directorios del servidor FTP.
- Compromiso Completo del Sistema: Si las credenciales adivinadas pertenecen a un usuario con privilegios elevados, el atacante podría comprometer completamente el servidor.
Defensa Contra Fuerza Bruta:
- Limitación de Intentos de Inicio de Sesión: Configurar el servidor FTP para bloquear temporalmente o permanentemente la cuenta después de un número determinado de intentos fallidos de inicio de sesión.
- Autenticación Fuerte: Utilizar contraseñas complejas y únicas, y, si es posible, implementar autenticación multifactor (MFA) para agregar una capa adicional de seguridad.
3. Ataques de Enumeración de Usuarios
Descripción: La enumeración de usuarios es un proceso mediante el cual un atacante intenta descubrir nombres de usuario válidos en un servidor FTP, generalmente mediante respuestas de error específicas que indican si un usuario existe o no.
Métodos de Ejecución:
- Respuestas Diferenciadas: Al intentar iniciar sesión con un nombre de usuario incorrecto, el servidor FTP puede devolver diferentes mensajes de error para usuarios existentes y no existentes, lo que permite al atacante enumerar usuarios válidos.
Consecuencias:
- Facilitación de Ataques de Fuerza Bruta: Con una lista de usuarios válidos, un atacante puede enfocar sus ataques de fuerza bruta, aumentando la probabilidad de éxito.
- Compromiso de la Seguridad: La enumeración de usuarios puede ser el primer paso en un ataque más grande, como la obtención de acceso no autorizado o la escalada de privilegios.
Defensa Contra la Enumeración de Usuarios:
- Respuestas Uniformes: Configurar el servidor FTP para devolver mensajes de error genéricos que no indiquen si un nombre de usuario es válido o no.
- Monitoreo y Alerta: Implementar sistemas de monitoreo que detecten patrones de enumeración de usuarios y alerten a los administradores de red.
4. Ataques de Explotación de Vulnerabilidades
Descripción: Las implementaciones de servidores FTP pueden contener vulnerabilidades que los atacantes pueden explotar para obtener acceso no autorizado, ejecutar código arbitrario o provocar condiciones de denegación de servicio.
Métodos de Ejecución:
- Explotación de Vulnerabilidades: Los atacantes buscan vulnerabilidades conocidas en el software del servidor FTP (como desbordamientos de búfer o errores de desreferenciación de punteros nulos) y utilizan exploits para comprometer el servidor.
Consecuencias:
- Compromiso Total del Servidor: Si se explota una vulnerabilidad crítica, el atacante puede obtener control total sobre el servidor FTP.
- Robo o Modificación de Archivos: El atacante puede acceder a archivos sensibles, modificarlos o distribuir malware a través del servidor FTP.
Defensa Contra la Explotación de Vulnerabilidades:
- Actualización y Parcheo Regular: Mantener el software del servidor FTP actualizado con los últimos parches de seguridad.
- Evaluación de Vulnerabilidades: Realizar evaluaciones de seguridad regulares para identificar y corregir vulnerabilidades antes de que puedan ser explotadas.
5. Ataques de Denegación de Servicio (DoS)
Descripción: Un ataque de denegación de servicio (DoS) contra un servidor FTP busca sobrecargar el servidor con solicitudes maliciosas o manipular el protocolo de tal manera que el servidor deje de responder o se vuelva inaccesible.
Métodos de Ejecución:
- Inundación de Conexiones: El atacante envía un gran número de solicitudes de conexión al servidor FTP, agotando los recursos y provocando una caída del servicio.
- Explotación de Vulnerabilidades: Utilizar vulnerabilidades en la implementación del servidor FTP para bloquear el servicio o hacer que se caiga.
Consecuencias:
- Interrupción del Servicio: Los usuarios legítimos no pueden acceder al servidor FTP, lo que puede causar pérdida de productividad y daños a la reputación.
- Pérdida de Datos: Si el servidor FTP se cae de manera inesperada, pueden ocurrir pérdidas de datos o corrupción de archivos.
Defensa Contra DoS en FTP:
- Limitar el Número de Conexiones: Configurar el servidor FTP para limitar el número de conexiones simultáneas por usuario o dirección IP.
- Implementación de Firewalls y Sistemas de Detección de Intrusos (IDS): Utilizar firewalls para filtrar el tráfico malicioso y sistemas IDS para detectar y bloquear intentos de ataque DoS.
Mejores Prácticas para Asegurar FTP
- Migrar a Protocolos Más Seguros: Considerar la migración a protocolos de transferencia de archivos más seguros como SFTP (FTP sobre SSH) o FTPS (FTP sobre SSL/TLS), que cifran las credenciales y los datos transferidos. Cifrar las comunicaciones protege contra el sniffing de credenciales y otros ataques basados en la intercepción de datos.
- Implementación de Listas de Control de Acceso (ACL): Configurar ACL para controlar qué usuarios pueden acceder al servidor FTP y qué acciones pueden realizar (leer, escribir, eliminar). Restringir el acceso solo a usuarios autorizados y limitar los permisos de escritura a solo aquellos que lo necesiten.
- Registro y Monitoreo: Implementar un sistema de registro que capture todas las actividades en el servidor FTP, incluidos los intentos de inicio de sesión, transferencias de archivos y errores. Utilizar soluciones de monitoreo como Splunk o ELK Stack para analizar los registros en busca de actividades sospechosas y generar alertas en tiempo real.
- Implementación de Autenticación Multifactor (MFA): Añadir MFA a la autenticación FTP para requerir no solo una contraseña, sino también un segundo factor de autenticación, como un token o un código enviado al móvil. MFA añade una capa adicional de seguridad que protege contra ataques de fuerza bruta y robo de credenciales.
5 Netbios
NetBIOS es un protocolo de red que viene activado por defecto en las tarjetas de red en Windows. Está algo obsoleto y hoy en día no es muy utilizado. Sin embargo puede tener vulnerabilidades que son aprovechadas por los hackers para llevar a cabo diferentes métodos de ataques.
Básicamente lo que permite NetBIOS es que las aplicaciones se comuniquen con la red. Un equipo en una red local se comunica con otro a través de una conexión utilizando lo que se conoce como datagramas NetBIOS. Su función es establecer la sesión y mantener las conexiones.
Hay que mencionar que este protocolo necesita de otros protocolos para transportar datos tanto en redes inalámbricas como en LAN. Esto es así ya que opera en la capa 5 de OSI y no tiene un formato de datos para la transmisión. Pero de cara al usuario final, lo que importa es que se trata de un protocolo que dejó de utilizarse salvo en contadas ocasiones, pero que sigue habilitado por defecto y podría ser un problema.
Incluso estando en sus últimas fases de vida, NetBIOS cuenta con varios cometidos, como los siguientes:
- Permite que las aplicaciones puedan comunicarse con la red.
- Evita que los desarrolladores de los softwares tengan que realizar rutinas de recuperación ante posibles errores de enrutamiento o de direccionamiento de mensajes de bajo nivel.
- En la red local con soporte para NetBIOS, los dispositivos son conocidos e identificados por un nombre, y cada uno tiene uno único.
Esta es capaz de soportar tres servicios, donde cada uno cumple una función. También entre ellos varían los puertos TCP/UDP utilizados.
- Servicio de sesión: Se trata de un protocolo orientado a la conexión (peer-to-peer y cliente/servidor). En este apartado usa el puerto 139 TCP.
- Servicio de Datagramas: Se utiliza para enviar broadcast. Aquí da uso del puerto 138 UDP.
- Servicio Nombre: Existe alguna posibilidad de correr NetBIOS por TCP/IP, y otra es que necesitamos un nombre de resolución. En este servicio, usará el puerto 137 UDP. Para esto hay dos opciones, el archivo LMHOST y un servidor WINS (Windows Internet Name Service).
Así a todo, NetBIOS sigue contando con algunas ventajas, algunas de ellas son:
- Resuelve nombres de sus dispositivos sin requerir configuración por parte del usuario.
- Se encuentra habilitado en todas las sesiones de Windows (Esto puede resultar un inconveniente también).
- Se convirtió en el fundamento básico de muchas aplicaciones de red.
Por la contra también nos podemos encontrar con algunos inconvenientes. Recordemos que estamos dejando de lado, que se trata de una función que poco a poco se está quedando obsoleta. Esos son:
- NetBIOS no proporciona ningún marco estándar o formato de datos para sus transmisiones.
- No resulta práctico para ser utilizado en redes de gran tamaño debido a que tiende a sobrecargar la red relativamente fácil.
- Actualmente, se trata de un protocolo que no resulta seguro.
Efectos en el rendimiento
Proceder a la desactivación del protocolo NetBIOS, es algo que puede tener algunos efectos en el rendimiento general de un equipo. Pero por lo general, no estamos hablando de algo que sea demasiado significativo. Este se utiliza para la resolución de nombres de red y comunicación entre dispositivos, como hemos visto. Y a pesar de que se trata de un protocolo antiguo el cual ya se ha ido reemplazando, sigue activo en algunos lugares. Las nuevas versiones con el DNS y el TCP/IP.
Desactivarlos puede suponer que la seguridad del sistema mejore, y esto es porque se recue la superficie sobre la cual se puede realizar algún ataque a nuestro equipo. NetBIOS, cuenta con algunas vulnerabilidades que puedes ser explotadas por algún atacante. Una de estas, es la vulnerabilidad ante ataques de denegación de servicio, lo cual quiere decir que los atacantes, pueden saturar nuestra red hasta que sea inutilizable.
En cambio, NetBIOS puede tener efectos sobre el rendimiento general del sistema. Existen aplicaciones antiguas que dependen de este protocolo, por lo cual, si lo desactivamos, estas pueden tener un funcionamiento más lento, o incluso dejar de funcionar directamente. Por otro lado, al desactivarlo podemos hacer que afecte a las capacidades del sistema. Nos referimos a los recursos del mismo, que comparte con los demás dispositivos en red. Tales como impresoras, o unidades de red compartidas. Si estos están compartidos por NetBIOS, puede que queden totalmente inaccesibles.
Pero en general podemos mejorar la seguridad del sistema, al menos en un grado mayor al rendimiento que vamos a ganar. Y vistos los problemas que se nos pueden presentar, lo mejor que podemos hacer es verificar todo lo que puede ocurrir si lo desactivamos. Para ello, lo mejor es realizar un análisis de ventajas y desventajas. Donde pueden entrar muchos factores diferentes.
Ataques y Defensa del Protocolo NetBIOS
El protocolo NetBIOS (Network Basic Input/Output System) es un servicio de red que permite la comunicación entre dispositivos en redes locales, facilitando la compartición de archivos e impresoras. Sin embargo, debido a su diseño y la falta de cifrado, NetBIOS es vulnerable a varios tipos de ataques. En este artículo, exploraremos los ataques comunes contra NetBIOS y las estrategias para proteger este protocolo en entornos de red.
NetBIOS proporciona servicios de nombre, sesión y datagrama, permitiendo que las aplicaciones en diferentes computadoras dentro de una red local se comuniquen entre sí. Se ejecuta principalmente sobre los protocolos TCP/IP y utiliza varios puertos, siendo los más comunes:
- UDP 137: Para el servicio de nombres NetBIOS.
- UDP 138: Para el servicio de datagramas NetBIOS.
- TCP 139: Para el servicio de sesión NetBIOS.
NetBIOS es utilizado en redes Windows para la resolución de nombres y para compartir archivos e impresoras. Aunque es un protocolo antiguo, sigue siendo común en muchas redes corporativas y pequeñas.
1. Enumeración de NetBIOS
La enumeración de NetBIOS es un proceso mediante el cual un atacante recopila información sobre los dispositivos en una red, como nombres de host, nombres de usuarios, y recursos compartidos. Esto se logra mediante la consulta de los servicios de nombres de NetBIOS.
Métodos de Ejecución:
- Uso de Herramientas de Enumeración: Los atacantes utilizan herramientas como
nbtstat
,Hyena
, oNetBIOS Enumerator
para consultar dispositivos en la red y obtener listas de recursos compartidos, usuarios conectados y nombres de máquinas.
Consecuencias:
- Reconocimiento de la Red: El atacante obtiene una visión detallada de la estructura de la red, facilitando ataques posteriores como la suplantación de identidad o la explotación de recursos compartidos.
- Identificación de Objetivos: La enumeración ayuda a identificar usuarios y dispositivos que pueden ser objetivos de ataques de fuerza bruta o de acceso no autorizado.
Defensa Contra la Enumeración de NetBIOS:
- Deshabilitar NetBIOS sobre TCP/IP: Si no es necesario en la red, deshabilitar NetBIOS para reducir la superficie de ataque.
- Configuración de Firewall: Implementar reglas de firewall para bloquear el acceso a los puertos 137, 138 y 139 desde fuera de la red local.
- Monitoreo de Actividad: Implementar monitoreo de red para detectar y alertar sobre actividades de enumeración sospechosa.
2. Ataques de Suplantación (Spoofing) de NetBIOS
Descripción: La suplantación de NetBIOS implica que un atacante engaña a otros dispositivos en la red para que se comuniquen con él en lugar de con el dispositivo legítimo. Esto se logra falsificando respuestas a solicitudes de nombres de NetBIOS, lo que puede llevar al secuestro de sesiones o al desvío de tráfico.
Métodos de Ejecución:
- Ataque de Suplantación de Nombre: El atacante responde a una solicitud de nombre de NetBIOS antes que el dispositivo legítimo, haciendo que el cliente se comunique con el dispositivo del atacante.
- Redirección de Tráfico: Utilizando técnicas de spoofing, el atacante puede redirigir el tráfico de red hacia sí mismo, lo que permite la intercepción de datos y el secuestro de sesiones.
Consecuencias:
- Secuestro de Sesión: El atacante puede capturar y manipular las comunicaciones entre dispositivos, accediendo a datos sensibles o modificando las transmisiones.
- Intercepción de Datos: El tráfico de la red puede ser interceptado y leído por el atacante, comprometiendo la confidencialidad de la información.
Defensa Contra la Suplantación de NetBIOS:
- Implementación de IPsec: Utilizar IPsec para autenticar y cifrar las comunicaciones de red, lo que dificulta los ataques de suplantación.
- Monitoreo de Anomalías: Configurar sistemas de detección de intrusos (IDS) para identificar y alertar sobre actividades de spoofing en la red.
- Deshabilitar NetBIOS: Si no es necesario, deshabilitar NetBIOS sobre TCP/IP para prevenir que el servicio sea explotado por atacantes.
3. Ataques de Fuerza Bruta sobre Recursos Compartidos
Descripción: Los atacantes pueden intentar acceder a recursos compartidos en la red mediante ataques de fuerza bruta, adivinando las credenciales de usuario necesarias para conectarse a los recursos protegidos por NetBIOS.
Métodos de Ejecución:
- Automatización de Ataques: Los atacantes utilizan herramientas como
Hydra
oMedusa
para automatizar intentos de inicio de sesión con múltiples combinaciones de nombres de usuario y contraseñas.
Consecuencias:
- Acceso No Autorizado: Si el atacante logra adivinar las credenciales correctas, puede acceder a archivos, directorios y otros recursos compartidos en la red.
- Exfiltración de Datos: Los datos confidenciales pueden ser robados y utilizados o vendidos por el atacante.
Defensa Contra Ataques de Fuerza Bruta en NetBIOS:
- Contraseñas Fuertes: Implementar políticas de contraseñas fuertes que requieran una combinación de caracteres especiales, números y letras mayúsculas y minúsculas.
- Bloqueo de Cuentas: Configurar los servidores para bloquear cuentas después de un número determinado de intentos fallidos de inicio de sesión.
- Autenticación Multifactor (MFA): Utilizar MFA para agregar una capa adicional de seguridad a los inicios de sesión, haciendo más difícil para los atacantes obtener acceso no autorizado.
4. Ataques de Denegación de Servicio (DoS) contra NetBIOS
Descripción: Los ataques DoS contra NetBIOS buscan sobrecargar los servicios de NetBIOS en un servidor o red, provocando la interrupción del servicio y dejando los recursos inaccesibles para los usuarios legítimos.
Métodos de Ejecución:
- Inundación de Solicitudes: El atacante envía una gran cantidad de solicitudes de nombres o sesiones a los servicios de NetBIOS, agotando los recursos del servidor o dispositivo y provocando que el servicio se caiga.
Consecuencias:
- Interrupción del Servicio: Los servicios de NetBIOS se vuelven inestables o dejan de funcionar, impidiendo el acceso a archivos y recursos compartidos en la red.
- Pérdida de Productividad: Las operaciones que dependen de la conectividad y el acceso a recursos compartidos pueden verse gravemente afectadas.
Defensa Contra Ataques DoS en NetBIOS:
- Filtrado de Tráfico: Configurar firewalls y routers para filtrar el tráfico sospechoso hacia los puertos asociados con NetBIOS (137, 138, 139).
- Limitación de Tasa (Rate Limiting): Implementar políticas de limitación de tasa en los servidores para evitar la sobrecarga debida a grandes volúmenes de solicitudes.
- Monitoreo de Red: Utilizar herramientas de monitoreo de red para detectar patrones de tráfico anómalos que puedan indicar un ataque DoS en curso.
5. Intercepción de Mensajes de NetBIOS (NetBIOS Message Interception)
Descripción: NetBIOS permite la transmisión de mensajes entre dispositivos en la red. Un atacante puede interceptar y modificar estos mensajes para espiar las comunicaciones o inyectar datos maliciosos.
Métodos de Ejecución:
- Sniffing de Red: El atacante utiliza herramientas de sniffing para capturar los mensajes de NetBIOS que se transmiten entre dispositivos en la red.
Consecuencias:
- Exposición de Información Sensible: Los mensajes interceptados pueden contener información sensible, como contraseñas, nombres de usuarios y direcciones IP.
- Manipulación de Datos: El atacante puede alterar los mensajes interceptados, causando confusión o enviando información incorrecta a los dispositivos de la red.
Defensa Contra la Intercepción de Mensajes de NetBIOS:
- Cifrado de Comunicaciones: Utilizar IPsec o VPN para cifrar las comunicaciones entre dispositivos, asegurando que los mensajes de NetBIOS no puedan ser leídos ni modificados por atacantes.
- Segmentación de Red: Segmentar la red para aislar los dispositivos que necesitan utilizar NetBIOS, reduciendo la exposición de los mensajes a potenciales atacantes.
Mejores Prácticas para Asegurar NetBIOS
Sinceramente se peude reducir a Deshabilitar NetBIOS si No es Necesario. En redes modernas, muchas funciones de NetBIOS han sido reemplazadas por protocolos más seguros, como DNS y SMBv2/3. Si NetBIOS no es necesario, es recomendable deshabilitarlo. Deshabilitar NetBIOS sobre TCP/IP en las configuraciones de red de los dispositivos, tanto en clientes como en servidores.
Cómo desactivar NetBIOS en Windows 10/11
Podemos desactivar NetBIOS en Windows 10 de forma muy sencilla. Para ello podemos hacerlo a través de TCP/IP, desde el Símbolo del sistema y también desde el Registro. Es un proceso rápido y no vamos a tener que instalar nada adicional. Vamos a detallar cómo hacerlo en cada una de las alternativas.
Desactivarlo a través de TCP/IP
En primer lugar tenemos la opción de desactivarlo mediante TCP/IP y la función de propiedades de la tarjeta de red. Para ello tenemos que ir al menú de Inicio y entramos en Configuración. Posteriormente vamos a Red e Internet y entramos en Cambiar opciones del adaptador. Aquí aparecerán las diferentes opciones de redes que tenemos, tanto el adaptador Wi-Fi como LAN (podemos usar cualquiera). Tenemos que pinchar en el correspondiente y le damos a Propiedades.
Aquí nos aparecerá una serie de opciones y tenemos que seleccionar Protocolo de Internet versión 4 (TCP/IPv4) y le damos a Propiedades. Hecho este paso tenemos que pinchar directamente en Opciones avanzadas, sin tener que tocar nada más.
Dentro de Opciones avanzadas veremos que hay un total de tres pestañas. La que nos interesa es la que tiene el nombre de WINS. La seleccionamos y una vez aquí marcamos la casilla de Deshabilitar NetBIOS a través de TCP/IP.
Cuando marquemos esa casilla simplemente tenemos que darle a Aceptar y listo. A partir de ese momento NetBIOS ya no estará activado en nuestra tarjeta de red. Si en algún momento vamos a necesitar este protocolo, simplemente hay que volver a realizar estos pasos pero en esta ocasión le damos a Habilitar NetBIOS.
Deshabilitar NetBIOS desde el Editor del Registro
También podemos deshabilitar NetBIOS a través del Editor del Registro de Windows. Para ello tenemos que seguir unos sencillos pasos nuevamente.
Lo primero que tenemos que hacer es ir a Inicio otra vez, escribimos Editor del Registro y entramos. Igualmente podemos acceder a través de la combinación de teclas Windows+R y ejecutar regedit. Tenemos que ir a la ruta EquipoHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParametersInterfaces. Selecciona una clave de registro Tcpip, como vemos en la imagen, y a la derecha nos aparecerán diferentes opciones.
Tenemos que hacer doble clic encima de NetbiosOptions. Nos mostrará un valor 0 y para desactivarlo tenemos que ponerle un valor 2. Solo tenemos que aceptar y con esto ya tendremos desactivado NetBIOS en Windows 10 a través del Editor del Registro.
Desactivar NetBIOS desde el Símbolo del Sistema
Una tercera y última opción es desactivarlo a través del Símbolo del Sistema. En este caso tenemos que iniciar la línea de comandos de Windows. Podemos ir a Inicio, escribir Símbolo del sistema y abrirlo o también a través de la combinación de teclas Windows+R y ejecutar cmd. Una vez lo tengamos abierto hay que introducir el comando wmic nicconfig get caption,index,TcpipNetbiosOptions y entrar. Nos mostrará una lista y tenemos que ver de cuál de esos adaptadores queremos desactivar NetBIOS.
Por qué desactivar NetBIOS en Windows 10/11
Hemos visto qué es NetBIOS y también hemos explicado los diferentes métodos que podemos encontrar para desactivarlo en Windows 11. Ahora bien, ¿por qué deberíamos hacerlo? ¿Qué motivos tenemos para desactivar esta característica que de forma predeterminada viene con nuestra tarjeta de red?
Sin duda la seguridad está detrás del motivo por el que un usuario podría considerar desactivar NetBIOS en Windows 10. Muchos tipos de ataques en la red van a utilizar protocolos que están obsoletos, como es este caso. Se aprovechan de que vienen activados de forma predeterminada y pueden buscar alguna brecha para entrar en el equipo, robar datos o colar malware.
No significa que por sí mismo este protocolo sea peligroso, pero sí que podría llegar a ser una puerta de entrada para los ciberdelincuentes. Mientras menos posibilidades demos a los atacantes, mejor. Este es un ejemplo claro de por qué no conviene tener programas antiguos sin actualizar o cualquier característica que pueda ser explotada.
Por qué ocurre esto
Esto ocurre generalmente con el software antiguo que no ha recibido una actualización desde hace mucho tiempo. Hemos visto caso como el de WinRAR y una vulnerabilidad muy antigua o versiones de Microsoft Office que dejan de ser seguras y necesitamos actualizar lo antes posible. El problema es que algunas aplicaciones ya no reciben soporte, ya no tienen esos parches o mejoras de seguridad necesarios porque simplemente no lo utiliza casi nadie. Algo así es lo que ocurre con NetBIOS, que es un protocolo de red que viene activado por defecto pero que en realidad hoy en día no se utiliza.
Los ciberdelincuentes pueden aprovecharse de vulnerabilidades que aparezcan en este protocolo de red y que no estén corregidas. Por ello puede ser interesante optar por deshabilitar NetBIOS de Windows 10. Una manera más de proteger nuestra seguridad y evitar problemas. Además, como hemos visto es muy sencillo llevar a cabo esta acción. En poco tiempo podemos tenerlo deshabilitado del sistema operativo.
6 Telnet
TELNET para acceder a equipos remotos. Red de teletipo) Nos permite acceder a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella. Mucho antes de que existieran las computadoras de escritorio con interfaces gráficas sofisticadas, las personas utilizaban sistemas basados en textos que eran simplemente terminales conectadas físicamente a una computadora central.
Después de que las redes estuvieron disponibles, la gente necesitaba una manera de acceder remotamente a los sistemas informáticos de la misma manera que con terminales conectados directamente. Para satisfacer esa demanda, se desarrolló Telnet.
Telnet se remonta a principios de la década de los 70 y se encuentra entre los servicios y protocolos de capa de aplicación más antiguo dentro del grupo TCP/IP. Telnet proporciona un método estándar de emulación de dispositivos de terminal con base en texto en la red de datos. Tanto el protocolo como el software del cliente que implementa son conocidos como Telnet. Los servidores Telnet escuchan las solicitudes del cliente en el puerto 23 de TCP.
De un modo adecuado, una conexión que utiliza Telnet se llama sesión de terminal virtual (vty) o conexión. En lugar de utilizar un dispositivo físico para conectarse al servidor, Telnet utiliza software para crear un dispositivo virtual que proporcione las mismas características de una sesión de terminal con acceso a la interfaz de línea de comandos (CLI) del servidor.
En la figura, el cliente se ha conectado de forma remota al servidor a través de Telnet. Ahora el cliente puede ejecutar comandos como si estuviera conectado localmente al servidor. Nota: Telnet no se considera un protocolo seguro. Se debe usar SSH en la mayoría de los entornos en lugar de Telnet. Telnet se usa en varios ejemplos de este curso para simplificar la configuración.
Cómo funciona Telnet
La principal tarea de Internet es proporcionar servicios a los usuarios. Por ejemplo, los usuarios quieren ejecutar diferentes programas de aplicación en el sitio remoto y transferir un resultado al sitio local. Esto requiere un programa cliente-servidor como FTP o SMTP. Pero esto no nos permitiría crear un programa específico para cada demanda.
La mejor solución es proporcionar un programa cliente-servidor general que permita al usuario acceder a cualquier programa de aplicación en un equipo remoto. Por lo tanto, un programa que permita a un usuario iniciar sesión en un equipo remoto. Un programa cliente-servidor popular, Telnet, se utiliza para satisfacer estas demandas. Telnet es una abreviatura de Terminal Network .
Telnet proporciona una conexión a la computadora remota de tal manera que una terminal local parece estar en el lado remoto.
Hay dos tipos de inicio de sesión:
Inicio de sesión local
Cuando un usuario inicia sesión en una computadora local, se habla de inicio de sesión local.
Cuando la estación de trabajo ejecuta un emulador de terminal, las pulsaciones de teclas introducidas por el usuario son aceptadas por el controlador de terminal. A continuación, el controlador de terminal pasa estos caracteres al sistema operativo que, a su vez, invoca el programa de aplicación deseado.
Sin embargo, el sistema operativo asigna un significado especial a los caracteres especiales. Por ejemplo, en UNIX, algunas combinaciones de caracteres tienen significados especiales, como el carácter de control con “z”, que significa suspender. Estas situaciones no generan ningún problema, ya que el controlador de la terminal conoce el significado de dichos caracteres. Sin embargo, pueden causar problemas en el inicio de sesión remoto.
Inicio de sesión remoto
Cuando el usuario desea acceder a un programa de aplicación en una computadora remota, entonces el usuario debe realizar un inicio de sesión remoto.
El usuario envía las pulsaciones de teclas al controlador del terminal, que a su vez envía los caracteres al cliente TELNET, que a su vez transforma los caracteres en un conjunto de caracteres universales, conocido como caracteres de terminal virtual de red, y los entrega a la pila TCP/IP local.
Los comandos en formato NVT se transmiten al TCP/IP de la máquina remota. Allí, los caracteres se envían al sistema operativo y luego pasan al servidor TELNET. El servidor TELNET transforma los caracteres para que puedan ser comprendidos por una computadora remota.
Sin embargo, los caracteres no se pueden pasar directamente al sistema operativo, ya que un sistema operativo remoto no recibe los caracteres del servidor TELNET. Por lo tanto, se requiere algún software que pueda aceptar los caracteres del servidor TELNET. A continuación, el sistema operativo pasa estos caracteres al programa de aplicación apropiado.
Terminal virtual de red (NVT)
El terminal virtual de red es una interfaz que define cómo se envían los datos y los comandos a través de la red.
En el mundo actual, los sistemas son heterogéneos. Por ejemplo, el sistema operativo acepta una combinación especial de caracteres, como el token de fin de archivo en un sistema operativo DOS ctrl+z, mientras que el token en un sistema operativo UNIX es ctrl+d .
TELNET resuelve este problema definiendo una interfaz universal conocida como interfaz virtual de red.
El cliente TELNET traduce los caracteres que llegan desde el terminal local al formato NVT y luego los envía a la red. A continuación, el servidor Telnet traduce los datos del formato NVT a un formato que pueda ser comprendido por una computadora remota.
Problemas de Seguridad con Telnet
Una vez establecida una conexión Telnet, los usuarios pueden realizar cualquier función autorizada en el servidor, como si utilizaran una sesión de línea de comandos en el servidor mismo. Si están autorizados, pueden iniciar y detener procesos, configurar el dispositivo e inclusive apagar el sistema.
Aunque el protocolo Telnet puede requerir que un usuario inicie sesión, no admite el transporte de datos cifrados. Todos los datos intercambiados durante las sesiones de Telnet se transportan como texto normal por la red. Esto significa que los datos pueden ser fácilmente interceptados y entendidos.
El protocolo Secure Shell (SSH) ofrece un método alternativo y seguro para el acceso a servidores. SSH proporciona la estructura para un inicio de sesión remoto seguro y otros servicios de red seguros. También proporciona una autenticación más sólida que Telnet y admite el transporte de datos de sesión mediante cifrado.
Como una mejor práctica, los profesionales de red deberían utilizar siempre SSH en lugar de Telnet, cada vez que sea posible. En la figura se ilustra por qué SSH es más seguro que Telnet. Observe que, cuando se utiliza Telnet, los datos que captura el hacker son claramente legibles, mientras que al utilizar SSH, los datos están cifrados y, por lo tanto, son más seguros.
Ataque y Defensa del Protocolo Telnet
El protocolo Telnet es uno de los métodos más antiguos utilizados para acceder de forma remota a dispositivos en una red. Aunque su uso ha disminuido significativamente en favor de protocolos más seguros como SSH, Telnet aún se encuentra en algunos sistemas heredados y dispositivos de red.
Este protocolo presenta varias vulnerabilidades críticas, lo que lo convierte en un objetivo frecuente para ataques cibernéticos. En este artículo, exploraremos los tipos de ataques más comunes contra Telnet y las mejores estrategias para defenderse.
Telnet es un protocolo de red que permite a los usuarios conectarse a un sistema remoto para ejecutar comandos como si estuvieran físicamente presentes en ese sistema. Opera principalmente sobre el puerto TCP 23 y permite el acceso a la línea de comandos de servidores, enrutadores, conmutadores y otros dispositivos. Telnet es un protocolo en texto plano, lo que significa que los datos, incluidas las credenciales de autenticación, se transmiten sin cifrar.
Telnet es un protocolo antiguo con numerosas vulnerabilidades que lo hacen inadecuado para su uso en entornos de red modernos, especialmente en redes públicas. A pesar de su simplicidad y facilidad de uso, Telnet carece de las características de seguridad necesarias para proteger las comunicaciones y los datos en la era actual de ciber
Principales Vulnerabilidades de Telnet
- Transmisión de Credenciales en Texto Plano: Todas las credenciales de inicio de sesión, incluidas las contraseñas, se envían sin cifrar. Esto permite a los atacantes que interceptan el tráfico de red capturar estas credenciales y obtener acceso no autorizado.
- Falta de Autenticación Sólida: Telnet carece de mecanismos de autenticación robustos. Los ataques de fuerza bruta y el uso de credenciales predeterminadas o débiles son comunes, lo que facilita el acceso no autorizado.
- Ausencia de Cifrado de Datos: A diferencia de protocolos como SSH, Telnet no cifra los datos transmitidos, lo que hace que todo el tráfico sea susceptible a ataques de intermediario (MitM) y sniffing.
1. Sniffing de Telnet
Descripción: Sniffing es una técnica en la que un atacante intercepta y captura el tráfico de red para analizarlo. Dado que Telnet transmite datos en texto plano, un atacante que use herramientas de sniffing como Wireshark puede capturar credenciales, comandos y otros datos sensibles.
Métodos de Ejecución:
- Captura de Paquetes: El atacante utiliza un analizador de paquetes para capturar el tráfico Telnet, lo que le permite leer todo el contenido transmitido, incluidas las credenciales de inicio de sesión.
Consecuencias:
- Robo de Credenciales: El atacante puede capturar nombres de usuario y contraseñas, lo que le permite acceder al sistema de forma remota.
- Compromiso de Seguridad: El acceso no autorizado al sistema puede llevar al robo de datos, modificación de configuraciones, o la instalación de malware.
Defensa Contra el Sniffing de Telnet:
- Migración a SSH: SSH (Secure Shell) es un protocolo que cifra toda la comunicación, incluidas las credenciales de inicio de sesión, protegiéndola contra el sniffing.
- Segmentación de Red: Aislar las comunicaciones Telnet en una red separada y segura para minimizar la exposición a sniffers.
2. Ataques de Fuerza Bruta
Descripción: En un ataque de fuerza bruta, un atacante intenta adivinar las credenciales de Telnet probando múltiples combinaciones de nombres de usuario y contraseñas hasta encontrar la correcta. Dado que Telnet no implementa medidas de seguridad avanzadas, como bloqueos de cuenta tras varios intentos fallidos, es vulnerable a estos ataques.
Métodos de Ejecución:
- Automatización: Herramientas como Hydra o Medusa pueden ser utilizadas para automatizar el proceso de adivinación de credenciales.
Consecuencias:
- Acceso No Autorizado: Una vez que el atacante adivina las credenciales correctas, puede acceder al sistema Telnet, potencialmente obteniendo control total del dispositivo.
- Escalada de Privilegios: Si el atacante logra acceder a una cuenta con privilegios elevados, puede realizar cambios críticos en el sistema.
Defensa Contra la Fuerza Bruta en Telnet:
- Uso de Contraseñas Fuertes: Implementar políticas que requieran contraseñas largas, complejas y únicas.
- Limitar Intentos de Inicio de Sesión: Configurar el sistema para bloquear temporalmente o permanentemente las cuentas después de un número determinado de intentos fallidos.
- Migración a SSH: SSH no solo cifra las credenciales, sino que también permite la autenticación multifactor y otras medidas de seguridad avanzadas.
3. Ataques Man-in-the-Middle (MitM)
Descripción: En un ataque MitM, un atacante intercepta las comunicaciones entre el cliente Telnet y el servidor. Dado que Telnet no cifra el tráfico, el atacante puede capturar, modificar o inyectar comandos en la comunicación, comprometiendo la seguridad del sistema.
Métodos de Ejecución:
- Intercepción de Tráfico: El atacante coloca su dispositivo entre el cliente y el servidor Telnet, interceptando todo el tráfico de ida y vuelta.
Consecuencias:
- Suplantación de Identidad: El atacante puede hacerse pasar por el cliente o el servidor, lo que permite realizar acciones no autorizadas en el sistema.
- Robo de Información Sensible: El atacante puede capturar datos sensibles, como credenciales o información confidencial, que se transmiten entre el cliente y el servidor.
Defensa Contra MitM en Telnet:
- Migración a SSH: SSH protege contra ataques MitM mediante el uso de cifrado fuerte y autenticación de servidor.
- Implementación de VPNs: Utilizar redes privadas virtuales (VPN) para cifrar todo el tráfico entre el cliente y el servidor Telnet, protegiéndolo contra la interceptación.
4. Explotación de Vulnerabilidades en Implementaciones de Telnet
Descripción: A lo largo de los años, varias implementaciones de servidores Telnet han tenido vulnerabilidades que permiten a los atacantes ejecutar código arbitrario, provocar denegaciones de servicio, o ganar acceso no autorizado.
Métodos de Ejecución:
- Explotación de Desbordamiento de Búfer: Un atacante puede enviar datos específicamente manipulados que explotan una vulnerabilidad de desbordamiento de búfer, permitiéndole ejecutar código malicioso en el servidor.
Consecuencias:
- Compromiso Total del Sistema: El atacante puede obtener control total del servidor Telnet, lo que le permite modificar archivos, instalar software malicioso o robar datos.
- Denegación de Servicio (DoS): El servidor Telnet puede caer o volverse inestable debido a la explotación, interrumpiendo los servicios para los usuarios legítimos.
Defensa Contra la Explotación de Vulnerabilidades en Telnet:
- Aplicar Parches y Actualizaciones: Mantener el software del servidor Telnet actualizado con los últimos parches de seguridad para corregir vulnerabilidades conocidas.
- Deshabilitar Servicios Innecesarios: Deshabilitar Telnet y otros servicios innecesarios que puedan ser explotados por atacantes.
Mejores Prácticas para Asegurar Telnet
- Migración a Protocolos Seguros: La mejor defensa contra los riesgos asociados con Telnet es dejar de usarlo en favor de protocolos más seguros, como SSH. SSH proporciona cifrado fuerte, autenticación avanzada y protección contra muchos de los ataques comunes a los que es vulnerable Telnet.
- Segmentación de Red y Acceso Controlado: Si Telnet debe ser utilizado por alguna razón, asegúrese de que el acceso esté restringido solo a las partes de la red que realmente lo necesiten. Utilizar firewalls para bloquear el tráfico Telnet desde y hacia la red pública y restringir el acceso solo a dispositivos autorizados.
- Autenticación Multifactor (MFA): Implementar MFA para agregar una capa adicional de seguridad a los inicios de sesión de Telnet. MFA requiere que los usuarios proporcionen una segunda forma de autenticación, lo que dificulta que los atacantes accedan al sistema incluso si tienen las credenciales correctas.
- Monitoreo y Registro de Actividades: Configurar sistemas para registrar todas las actividades de Telnet y monitorear estos registros en busca de patrones sospechosos. Utilizar soluciones de monitorización y análisis de registros, como SIEM (Security Information and Event Management), para detectar y responder a actividades sospechosas en tiempo real.
- Educación y Capacitación del Personal: Capacitar a los administradores y usuarios sobre los riesgos de Telnet y las mejores prácticas de seguridad. Realizar sesiones de capacitación periódicas y asegurarse de que todos los usuarios comprendan los riesgos de seguridad asociados con el uso de Telnet.
7. SSH (Secure Shell)
La seguridad desempeña siempre un papel central en Internet. De ahí que el procedimiento de seguridad SSH está firmemente anclado en la pila de protocolos TCP/IP. Implementado en 1995 y revisado varias veces desde entonces, el protocolo SSH permite a los usuarios establecer una conexión segura entre dos PCs. A continuación nos adentraremos en los detalles del protocolo SSH y mostraremos cómo realiza el cifrado.
¿Para qué sirve SSH?
El protocolo SSH permite que dos computadoras establezcan una conexión segura y directa dentro de una red potencialmente insegura como Internet. Este protocolo es necesario para que no puedan acceder terceros al flujo de datos que se transfiere a través de la conexión y la información sensible no caiga en manos equivocadas.
Antes de que apareciera Secure Shell, también era posible establecer conexiones directas entre dos PCs, pero las aplicaciones que se utilizaban, Telnet, Remote Shell o rlogin, eran inseguras. SSH encripta la conexión entre dos computadoras y permite operar una de ellas desde la otra.
SSH no solo garantiza una conexión cifrada, sino también que solo se establezcan conexiones entre los PCs destinados a este fin (es decir, que no sea posible ningún ataque del tipo man-in the-middle) y que los datos no puedan manipularse en su camino hacia el destinatario. Originariamente, el acceso al PC remoto se realizaba siempre a través de la línea de comandos, con la que se enviaban comandos al equipo remoto. Entretanto, ya es posible también reflejar una interfaz gráfica de usuario (que no siempre está disponible en los servidores) en tu propio PC con la ayuda de Virtual Network Computing (VNC) y así controlar el otro PC.
SSH tiene muchas aplicaciones diferentes:
- Gestión de servidores a los que no se puede acceder localmente
- Transferencia segura de archivos
- Creación de copias de seguridad
- Conexión entre dos PCs con encriptación de extremo a extremo
- Mantenimiento remoto desde otros PCs
El desarrollo de SSH también ha influido en otros protocolos. Por ejemplo, el inseguro protocolo FTP, con el que es posible cargar archivos en un servidor y descargarlos desde allí, se ha desarrollado aún más hasta transformarlo en el Protocolo de Transferencia de Archivos SSH (SFTP).
Una ventaja de SSH es que el protocolo se ejecuta en todos los sistemas operativos comunes. Dado que en sus orígenes era una aplicación Unix, también se implementa por defecto en todas las distribuciones de Linux y en macOS. Sin embargo, SSH también se puede usar en Windows si instalas el programa apropiado.
SSH vs. OpenSSH
Secure Shell fue creado en 1995 como un proyecto de código abierto. Ese mismo año, el desarrollador Tatu Ylönen fundó una empresa para seguir desarrollando el protocolo. Así, el proyecto inicialmente abierto se fue convirtiendo cada vez más en software propietario. Sin embargo, la comunidad de la red no se limitó a aceptar su comercialización y desarrolló una bifurcación abierta basada en el protocolo SSH-1: OpenSSH. Sin embargo, dado que la empresa SSH Communication Security sigue trabajando en Secure Shell, ahora existen dos protocolos que son competencia. Uno de ellos es el protocolo propietario SSH-2 (un desarrollo posterior desde que se conocieron las vulnerabilidades de seguridad en SSH-1) y el otro es OpenSSH.
OpenSSH y el SSH comercial son equivalentes tanto en funcionalidad como en alcance. La diferencia radica sobre todo en el coste, pero también en el servicio de soporte. Si eliges el producto de SSH Communication Security, también recibirás asistencia las 24 horas del día, los 7 días de la semana, lo que puede ser particularmente útil para empresas grandes con gerentes de TI que cambian a menudo. OpenSSH, por otro lado, ofrece la ventaja de que cuenta con una gran comunidad que participa en el constante desarrollo del proyecto.
¿Cómo funciona SSH? Una breve explicación
Secure Shell utiliza varias técnicas de cifrado y autenticación. Por un lado, esto garantiza que los flujos de datos no puedan leerse ni manipularse. Por otra parte, solo los participantes autorizados pueden ponerse en contacto entre sí.
Autentificación
En un primer paso, el servidor SSH y el cliente se autentican mutuamente. El servidor envía un certificado al cliente para verificar que realmente es el servidor correcto. Solo en el primer contacto existe el peligro de que un tercero logre conectarse entre los dos participantes e intercepte la conexión. Dado que el propio certificado también está encriptado, no puede ser imitado. Una vez que el cliente sabe cuál es el certificado correcto, nadie más puede hacer contacto a través del servidor correspondiente.
Después de la autenticación del servidor, el cliente también debe demostrar ante el servidor que está autorizado para acceder a él. Esta información se almacena en el servidor. Como resultado, los usuarios deben introducir la contraseña cada vez que se conectan a otro servidor durante la misma sesión. Debido a esto, existe la posibilidad alternativa de autenticación del lado del cliente utilizando el conjunto de claves formado por la clave pública y la privada.
La clave privada se crea individualmente para tu propio PC con una contraseña que debe ser más larga que una al uso. La clave privada se almacena exclusivamente en tu PC y siempre permanece secreta. Si deseas establecer una conexión SSH, introduce primero la contraseña que abre el acceso a la clave privada.
En el servidor (así como en el propio cliente) también hay claves públicas. El servidor crea un problema criptográfico con su clave pública y lo envía al cliente. Este, a su vez, descifra el problema con su propia clave privada, devuelve la solución e informa al servidor de que está permitido establecer una conexión segura.
Durante una sesión, solo necesitas introducir la contraseña una vez para conectarte a cualquier número de servidores. Al final de la conexión, los usuarios cierran la sesión en sus equipos locales para asegurarse de que ningún tercero que tenga acceso físico al equipo local pueda conectarse al servidor.
Codificación
Después de la autenticación mutua, los dos participantes de la comunicación establecen una conexión cifrada. Para ello, se genera una clave de sesión que expira una vez finalizada la conexión –no debe confundirse con los pares de claves públicas/privadas, que solo se utilizan para el intercambio de claves. La clave que se utiliza para el cifrado simétrico solo es válida para esta sesión. Tanto el cliente como el servidor tienen la misma clave, por lo que cualquier mensaje que se intercambie puede ser cifrado y descifrado. El cliente y el servidor crean la clave simultáneamente, pero de forma independiente el uno del otro. En el llamado algoritmo de intercambio de claves, ambas partes utilizan cierta información pública y secreta para crear la contraseña.
Otra forma de encriptación se produce gracias al SSH por hashing. Un hash es una especie de firma que se genera para los datos transmitidos. El proceso es el siguiente: se utiliza un algoritmo para generar un hash único a partir de los datos. Si se manipulan los datos, el valor del hash también cambia automáticamente, lo que permite al destinatario reconocer si los datos han sido modificados por terceros. Los valores del hash están diseñados de tal manera que no pueden ser simplemente simulados. Idealmente, nunca es posible generar dos transmisiones diferentes con el mismo hash: a esto se le llama seguridad de colisión.
Puertos SSH
Los puertos TCP son puntos finales abiertos por los servidores y los clientes para permitir la comunicación. Como en un puerto marítimo, los participantes en la comunicación reciben y envían aquí los paquetes de datos. TCP tiene un espacio de direcciones de 16 bits y por lo tanto tiene disponibles 65535 puertos. Sin embargo, la entidad Internet Assigned Numbers Authority (IANA) ha asignado algunos puertos (exactamente 1024) para ciertas aplicaciones, incluyendo el puerto SSH. Por defecto, todas las conexiones SSH se ejecutan en el puerto 22.
Debido a que el puerto a través del cual pasan las conexiones SSH es muy conocido y se sabe que se utiliza para transmitir datos sensibles, suele ser uno de los destinos favoritos de los ciberdelincuentes. Por lo tanto, algunos usuarios piensan que tiene sentido reubicar el puerto SSH para evitar ataques, aunque esta solución solo ofrece protección a corto plazo. Con un escáner de puertos es posible encontrar cualquier puerto utilizado por un PC.
Con SSH, el reenvío de puertos también es posible: el puerto SSH de un cliente o un servidor es utilizado por otro participante dentro de una red local para crear una conexión segura a través de Internet. Para ello, los participantes crean un túnel: los datos se reciben a través del puerto 22 y se envían al cliente a través de la red local.
Clientes SSH
El cliente SSH suele ser tu propio PC o el que utilices para establecer una conexión con el servidor. Para lograr esto, puedes o debes (dependiendo del sistema operativo) instalar un software separado que establezca una conexión SSH. Estos programas también suelen llamarse clientes SSH. De mano de la misma SSH Communication Security podemos encontrar el cliente de pago Tectia SSH, que además proporciona un software de servidor. Además, hay muchas alternativas libres, como el software de código abierto PuTTy para Windows y Linux o lsh, que funciona en todos los sistemas operativos basados en Unix.
Algunos programas proporcionan a los usuarios una interfaz gráfica que simplifica la configuración y la implementación de SSH. En principio, Secure Shell también puede ejecutarse desde la línea de comandos, incluso sin necesidad de instalación adicional, en macOS y otros sistemas operativos similares a Unix.
Servidor SSH
El servidor SSH es la parte opuesta al cliente. El término también se utiliza en este contexto para el software en sí. Gran parte del software cliente también funciona en servidores. Además, hay programas diseñados exclusivamente para servidores SSH y es común iniciar SSH en servidores en el momento del arranque, lo que garantiza que puedes acceder al servidor desde fuera en cualquier momento a través de SSH.
Por otra parte, no es necesario que el servidor SSH sea en realidad un servidor en sentido estricto, es decir, que se encuentre en un centro de datos remoto. Los usuarios también pueden instalar un servidor SSH en su propio PC en casa para beneficiarse de las ventajas del reenvío de puertos, por ejemplo.
Ataque y Defensa del Protocolo SSH
El protocolo SSH (Secure Shell) es una herramienta esencial para la administración segura de sistemas y redes. SSH permite a los administradores y usuarios autenticarse y ejecutar comandos de forma remota en servidores, todo ello de manera cifrada. A pesar de su diseño robusto, SSH no es inmune a ataques si no se configura y gestiona adecuadamente. En este artículo, se explorarán en detalle los tipos de ataques más comunes dirigidos a SSH y las mejores prácticas de defensa para asegurar este protocolo crítico.
SSH fue desarrollado para reemplazar protocolos inseguros como Telnet, proporcionando una forma segura de comunicación y administración remota. SSH opera en la capa de aplicación del modelo OSI y utiliza el puerto TCP 22 por defecto. Ofrece tres capas principales de seguridad:
- Transporte: Proporciona confidencialidad, integridad y autenticación del servidor utilizando criptografía.
- Autenticación de Usuario: Permite la autenticación segura de usuarios mediante contraseñas, claves públicas, o autenticación multifactor.
- Conexión: Administra la capa de sesión, permitiendo la multiplexación de múltiples canales lógicos sobre una sola conexión SSH.
1. Ataques de Fuerza Bruta
Descripción: Los ataques de fuerza bruta son uno de los métodos más comunes utilizados para comprometer SSH. En estos ataques, los atacantes intentan repetidamente adivinar el nombre de usuario y la contraseña hasta que encuentran una combinación correcta. SSH es particularmente vulnerable a estos ataques si se utilizan contraseñas débiles o predeterminadas.
Métodos de Ejecución:
- Automatización: Herramientas como Hydra, Medusa y Burp Suite pueden ser utilizadas para automatizar intentos de autenticación con miles de combinaciones de usuario y contraseña.
Consecuencias:
- Acceso No Autorizado: Una vez que el atacante adivina las credenciales correctas, puede obtener acceso completo al sistema, lo que podría resultar en la ejecución de comandos maliciosos, robo de datos, o incluso un compromiso completo del servidor.
Defensa Contra Ataques de Fuerza Bruta:
- Contraseñas Fuertes y Complejas: Implementar políticas de contraseñas que requieran el uso de caracteres alfanuméricos, mayúsculas, minúsculas y símbolos.
- Autenticación Basada en Claves Públicas: Utilizar claves SSH en lugar de contraseñas para la autenticación. Las claves públicas son mucho más difíciles de adivinar o comprometer.
- Limitar Intentos de Inicio de Sesión: Configurar el servidor SSH para bloquear temporalmente o permanentemente una cuenta después de un número determinado de intentos fallidos.
- Fail2Ban: Utilizar herramientas como Fail2Ban para monitorizar intentos de acceso fallidos y bloquear automáticamente las direcciones IP sospechosas.
2. Ataques de Hombre en el Medio (MitM)
Descripción: Un ataque MitM contra SSH ocurre cuando un atacante intercepta y potencialmente altera la comunicación entre el cliente y el servidor SSH. Aunque SSH utiliza cifrado, si un atacante logra hacerse pasar por el servidor o el cliente, puede capturar datos sensibles o modificar la información transmitida.
Métodos de Ejecución:
- Suplantación de Clave del Servidor: Un atacante puede presentar una clave pública falsa al cliente, haciéndose pasar por el servidor SSH legítimo, y capturar el tráfico en texto claro antes de reenviarlo al servidor real.
Consecuencias:
- Intercepción de Datos Sensibles: El atacante puede capturar credenciales de autenticación, comandos ejecutados, y datos transferidos entre el cliente y el servidor.
- Modificación de Tráfico: El atacante puede alterar los comandos enviados por el cliente o las respuestas del servidor, lo que podría resultar en la ejecución de acciones no autorizadas.
Defensa Contra Ataques MitM:
- Verificación de Claves del Servidor: Configurar los clientes SSH para que verifiquen la huella digital (fingerprint) del servidor SSH antes de establecer la conexión, asegurando que la clave pública del servidor no ha sido cambiada.
- SSH Fingerprint Validation: Utilizar métodos adicionales de validación, como la verificación manual de la huella digital del servidor en la primera conexión.
- Certificados SSH: Implementar un sistema de autoridades de certificación (CA) para emitir y verificar certificados SSH, garantizando la autenticidad de las claves del servidor.
3. Robo de Claves Privadas
Descripción: Las claves SSH son un método preferido de autenticación debido a su seguridad superior en comparación con las contraseñas. Sin embargo, si una clave privada es comprometida, el atacante puede utilizarla para acceder a cualquier servidor que acepte esa clave.
Métodos de Ejecución:
- Exfiltración de Claves Privadas: Los atacantes pueden utilizar malware, phishing o técnicas de ingeniería social para robar la clave privada almacenada en el sistema del usuario.
- Acceso Físico: Si un atacante obtiene acceso físico a un dispositivo donde se almacena una clave privada sin cifrar, puede copiarla y utilizarla para acceder a servidores remotos.
Consecuencias:
- Acceso No Autorizado a Múltiples Sistemas: Si la clave privada es utilizada en varios servidores, el atacante podría obtener acceso no autorizado a múltiples sistemas, comprometiendo una gran parte de la infraestructura.
- Escalada de Privilegios: Con acceso a servidores remotos, el atacante podría escalar sus privilegios y obtener control total sobre los sistemas afectados.
Defensa Contra el Robo de Claves Privadas:
- Cifrado de Claves Privadas: Asegurarse de que todas las claves privadas estén cifradas con una contraseña segura, de modo que incluso si son robadas, no puedan ser utilizadas sin la contraseña de descifrado.
- Uso de Agentes SSH: Utilizar agentes SSH para gestionar claves privadas y evitar que estén expuestas en la memoria o en archivos sin cifrar.
- Implementación de MFA: Complementar la autenticación basada en claves con un segundo factor de autenticación para aumentar la seguridad.
4. Ataques de Fuerza Bruta Inversa
Descripción: En un ataque de fuerza bruta inversa, el atacante conoce la clave privada del usuario pero intenta adivinar los nombres de usuario válidos en el servidor. Esto es particularmente peligroso si la clave privada se ha filtrado o ha sido robada.
Métodos de Ejecución:
- Adivinación de Nombres de Usuario: El atacante utiliza la clave privada para intentar iniciar sesión en el servidor SSH con diferentes combinaciones de nombres de usuario.
Consecuencias:
- Acceso No Autorizado: Si el atacante encuentra un nombre de usuario válido que coincide con la clave privada, puede obtener acceso al servidor.
Defensa Contra Fuerza Bruta Inversa:
- Restringir el Uso de Claves Públicas: Configurar el servidor para aceptar solo claves públicas para nombres de usuario específicos y conocidos.
- Monitoreo de Acceso SSH: Implementar herramientas de monitoreo para detectar patrones de ataque de fuerza bruta inversa y bloquear IPs sospechosas.
5. Explotación de Vulnerabilidades en Implementaciones de SSH
Descripción: A pesar de ser un protocolo seguro, las implementaciones de servidores SSH pueden contener vulnerabilidades que, si no se parchean, pueden ser explotadas por atacantes para comprometer el servidor.
Métodos de Ejecución:
- Explotación de Vulnerabilidades: Los atacantes pueden utilizar exploits disponibles públicamente para aprovechar vulnerabilidades específicas en versiones no parcheadas de servidores SSH.
Consecuencias:
- Compromiso del Servidor: El atacante podría obtener acceso completo al servidor, ejecutar código malicioso, o interrumpir los servicios.
- Denegación de Servicio (DoS): Un ataque exitoso podría deshabilitar el servidor SSH, impidiendo que los usuarios legítimos accedan al sistema.
Defensa Contra Explotación de Vulnerabilidades:
- Actualización Regular del Software: Asegurarse de que el software del servidor SSH esté actualizado con los últimos parches de seguridad.
- Reducción de Superficie de Ataque: Deshabilitar características de SSH que no sean necesarias, como el reenvío de X11 o el acceso por contraseña, para minimizar el riesgo de explotación.
Mejores Prácticas para Asegurar SSH
- Uso de Claves SSH en Lugar de Contraseñas
- Descripción: Las claves SSH ofrecen una mayor seguridad que las contraseñas debido a su complejidad y la dificultad de adivinarlas mediante ataques de fuerza bruta.
- Implementación: Configurar el servidor para aceptar solo la autenticación basada en claves, deshabilitando completamente el uso de contraseñas.
- Limitación de Acceso a SSH
- Descripción: Restringir el acceso SSH a direcciones IP específicas o rangos de IP mediante listas de control de acceso (ACL) en firewalls o routers.
- Beneficios: Limitar el acceso reduce significativamente la superficie de ataque y la exposición a intentos de acceso no autorizados.
SNIFFING SOBRE SSH EN UN HOST REMOTO: |
---|
# ssh 10.5.23.42 tcpdump -w- port not |
ssh | wireshark -k -i – |
8. SMTP
SMTP significa Protocolo simple de transferencia de correo. SMTP es un conjunto de pautas de comunicación que permiten al software transmitir un correo electrónico a través de Internet; se denomina Protocolo simple de transferencia de correo .
Es un programa utilizado para enviar mensajes a otros usuarios de computadora basándose en direcciones de correo electrónico. Proporciona un intercambio de correo entre usuarios en la misma computadora o en computadoras diferentes, y también admite:
- Puede enviar un solo mensaje a uno o más destinatarios.
- El envío de mensajes puede incluir texto, voz, vídeo o gráficos.
- También puede enviar mensajes en redes fuera de Internet.
El propósito principal de SMTP es establecer reglas de comunicación entre servidores. Los servidores tienen una forma de identificarse y anunciar qué tipo de comunicación están intentando realizar. También tienen una forma de manejar errores como direcciones de correo electrónico incorrectas. Por ejemplo, si la dirección del destinatario es incorrecta, el servidor que recibe la respuesta recibe un mensaje de error de algún tipo.
Componentes de SMTP
En primer lugar, dividiremos el cliente SMTP y el servidor SMTP en dos componentes: el agente de usuario (UA) y el agente de transferencia de correo (MTA). El agente de usuario (UA) prepara el mensaje, crea el sobre y luego coloca el mensaje en el sobre. El agente de transferencia de correo (MTA) transfiere este correo a través de Internet.
SMTP permite un sistema más complejo al agregar un sistema de retransmisión. En lugar de tener un solo MTA en el lado del envío y otro en el lado del recibo, se pueden agregar más MTA, que actúan como cliente o servidor para retransmitir el correo electrónico.
El sistema de retransmisión sin protocolo TCP/IP también se puede utilizar para enviar correos electrónicos a los usuarios, y esto se logra mediante el uso de la puerta de enlace de correo. La puerta de enlace de correo es un MTA de retransmisión que se puede utilizar para recibir un correo electrónico.
Funcionamiento de SMTP
Composición del correo: Un usuario envía un correo electrónico redactando un mensaje de correo electrónico mediante un Agente de usuario de correo (MUA). El Agente de usuario de correo es un programa que se utiliza para enviar y recibir correo. El mensaje contiene dos partes: cuerpo y encabezado. El cuerpo es la parte principal del mensaje, mientras que el encabezado incluye información como la dirección del remitente y del destinatario. El encabezado también incluye información descriptiva como el asunto del mensaje. En este caso, el cuerpo del mensaje es como una carta y el encabezado es como un sobre que contiene la dirección del destinatario.
Envío de correo: después de redactar un correo electrónico, el cliente de correo envía el correo electrónico completo al servidor SMTP utilizando SMTP en el puerto TCP 25.
Entrega de correo: Las direcciones de correo electrónico contienen dos partes: el nombre de usuario del destinatario y el nombre de dominio. Por ejemplo, vivek@gmail.com , donde “vivek” es el nombre de usuario del destinatario y “gmail.com” es el nombre de dominio.
Si el nombre de dominio de la dirección de correo electrónico del destinatario es diferente del nombre de dominio del remitente, MSA enviará el correo al Agente de transferencia de correo (MTA). Para retransmitir el correo electrónico, el MTA buscará el dominio de destino. Verificará el registro MX del Sistema de nombres de dominio para obtener el dominio de destino. El registro MX contiene el nombre de dominio y la dirección IP del dominio del destinatario. Una vez que se encuentra el registro, MTA se conecta al servidor Exchange para retransmitir el mensaje.
Recepción y Procesamiento de Correo: Una vez recibido el mensaje entrante, el servidor de intercambio lo entrega al servidor entrante (Agente de Entrega de Correo) que almacena el correo electrónico donde espera que el usuario lo recupere.
Acceso y recuperación de correo: el correo electrónico almacenado en MDA se puede recuperar mediante el uso de MUA (Mail User Agent). Se puede acceder a MUA mediante el uso de un nombre de usuario y una contraseña.
Ataque y Defensa del Protocolo SMTP
SMTP (Simple Mail Transfer Protocol) es el protocolo estándar utilizado para el envío de correos electrónicos en Internet. Es un protocolo fundamental, pero también vulnerable a diversos ataques si no se implementa y configura correctamente. En este artículo, exploraremos los ataques más comunes contra SMTP y las mejores prácticas para defenderse de ellos.
SMTP es un protocolo basado en texto que se utiliza para transferir correos electrónicos entre servidores de correo y desde un cliente de correo a un servidor. SMTP opera sobre el puerto 25 de TCP, aunque también utiliza los puertos 587 y 465 (este último para SMTP con SSL). A pesar de su importancia, SMTP fue diseñado en una época en la que la seguridad no era una prioridad, lo que lo hace vulnerable a varios tipos de ataques.
1. Ataques de Spoofing
Descripción: El spoofing en SMTP se refiere al envío de correos electrónicos utilizando una dirección de remitente falsificada. Esto puede ser utilizado para engañar al receptor, haciéndole creer que el correo proviene de una fuente confiable. Los ataques de spoofing son comunes en campañas de phishing, donde los atacantes intentan robar información sensible.
Métodos de Ejecución:
- Manipulación de Encabezados: El atacante manipula los encabezados del correo electrónico para que parezca que proviene de una dirección legítima.
- Uso de Servidores SMTP Abiertos: Aprovechando servidores SMTP mal configurados que permiten el envío de correos sin autenticación.
Consecuencias:
- Phishing: Los usuarios pueden ser engañados para revelar información sensible como contraseñas, números de tarjetas de crédito, o credenciales de acceso.
- Difusión de Malware: Los correos electrónicos falsificados pueden contener archivos adjuntos maliciosos o enlaces a sitios web comprometidos.
Defensa Contra Spoofing:
- SPF (Sender Policy Framework): Implementar SPF para verificar que los correos electrónicos que afirman provenir de un dominio específico están autorizados por ese dominio.
- DKIM (DomainKeys Identified Mail): Utilizar DKIM para firmar digitalmente los correos electrónicos, permitiendo al receptor verificar que el correo no ha sido alterado.
- DMARC (Domain-based Message Authentication, Reporting & Conformance): Configurar DMARC para especificar qué hacer con los correos electrónicos que fallan las comprobaciones de SPF y DKIM.
2. Ataques de Relé Abierto (Open Relay)
Descripción: Un servidor SMTP mal configurado puede funcionar como un relé abierto, permitiendo que cualquiera lo utilice para enviar correos electrónicos. Esto es aprovechado por los atacantes para enviar grandes volúmenes de spam o phishing desde el servidor, ocultando su verdadera identidad.
Métodos de Ejecución:
- Explotación de Relé Abierto: El atacante envía correos electrónicos a través de un servidor SMTP que permite el relé sin autenticación, usando la dirección del remitente de cualquier dominio.
Consecuencias:
- Difusión Masiva de Spam: El servidor puede ser utilizado para enviar spam, lo que puede resultar en que el servidor sea incluido en listas negras (blacklists), afectando la entrega de correos legítimos.
- Daño a la Reputación: Si se descubre que un servidor es utilizado para enviar spam, la reputación del dominio puede verse gravemente dañada.
Defensa Contra Relé Abierto:
- Configuración Correcta del Servidor SMTP: Asegurarse de que el servidor SMTP esté configurado para permitir solo el relé de correos de usuarios autenticados o desde IPs específicas.
- Pruebas Regulares: Realizar pruebas periódicas para asegurarse de que el servidor no funcione como un relé abierto.
3. Ataques de Fuerza Bruta en Cuentas de Correo
Descripción: En este tipo de ataque, los atacantes intentan adivinar las credenciales de cuentas de correo electrónico utilizando múltiples combinaciones de nombres de usuario y contraseñas. Si logran comprometer una cuenta, pueden utilizarla para enviar spam, robar información o realizar ataques de phishing.
Métodos de Ejecución:
- Automatización: Los atacantes utilizan herramientas como Hydra para automatizar los intentos de inicio de sesión hasta que adivinan la combinación correcta.
Consecuencias:
- Acceso No Autorizado: Una vez que el atacante compromete una cuenta, puede enviar correos en nombre del usuario, robar contactos, o acceder a información confidencial.
- Difusión de Spam: Las cuentas comprometidas a menudo se utilizan para enviar spam, lo que puede resultar en la inclusión del dominio en listas negras.
Defensa Contra Ataques de Fuerza Bruta:
- Autenticación Multifactor (MFA): Implementar MFA para añadir una capa adicional de seguridad a las cuentas de correo.
- Contraseñas Fuertes y Políticas de Bloqueo: Exigir el uso de contraseñas fuertes y configurar el servidor para bloquear cuentas después de varios intentos fallidos de inicio de sesión.
- Monitoreo de Acceso: Implementar sistemas de monitoreo que detecten y alerten sobre intentos de inicio de sesión sospechosos.
4. Ataques de Interceptación (Man-in-the-Middle)
Descripción: En un ataque de tipo MitM, un atacante intercepta y posiblemente altera la comunicación entre el cliente y el servidor SMTP. Si la conexión SMTP no está cifrada, el atacante puede leer, modificar o inyectar mensajes en la transmisión.
Métodos de Ejecución:
- Interceptación de Tráfico SMTP: El atacante utiliza herramientas de sniffing para capturar el tráfico SMTP en una red, accediendo a correos electrónicos en texto plano.
Consecuencias:
- Robo de Información Sensible: Los correos electrónicos interceptados pueden contener información confidencial como contraseñas, números de tarjetas de crédito, o información personal.
- Manipulación de Mensajes: El atacante puede modificar los mensajes interceptados antes de reenviarlos al destinatario original.
Defensa Contra MitM en SMTP:
- TLS (Transport Layer Security): Asegurarse de que todas las comunicaciones SMTP estén cifradas utilizando TLS, protegiendo los correos electrónicos de la interceptación.
- STARTTLS: Configurar los servidores SMTP para usar STARTTLS, lo que permite la actualización de una conexión no cifrada a una cifrada.
- Certificados SSL/TLS Válidos: Utilizar certificados SSL/TLS emitidos por una autoridad de certificación confiable para evitar ataques de suplantación de servidores.
5. Ataques de Inyección de Comandos SMTP
Descripción: La inyección de comandos SMTP es un ataque en el que el atacante introduce comandos SMTP adicionales o manipula los ya existentes para alterar el comportamiento del servidor SMTP. Esto puede permitir al atacante enviar correos electrónicos maliciosos, redirigir correos, o comprometer el servidor.
Métodos de Ejecución:
- Manipulación de Cabeceras SMTP: El atacante envía comandos SMTP específicamente diseñados para modificar las cabeceras del correo o redirigirlo a otros destinatarios.
Consecuencias:
- Envío de Correo No Autorizado: El atacante puede utilizar el servidor SMTP para enviar correos desde cuentas que no están autorizadas.
- Redirección de Correo: Los correos legítimos pueden ser redirigidos a direcciones controladas por el atacante, resultando en pérdida de datos o divulgación de información confidencial.
Defensa Contra Inyección de Comandos SMTP:
- Validación de Entradas: Asegurarse de que el servidor SMTP valide correctamente todas las entradas y comandos, rechazando aquellos que no sean válidos o que contengan caracteres de escape.
- Actualización Regular del Software: Mantener el software del servidor SMTP actualizado con los últimos parches de seguridad para evitar la explotación de vulnerabilidades conocidas.
- Filtrado de Contenidos: Implementar filtros que detecten y bloqueen comandos SMTP maliciosos o inyecciones de cabeceras.
Mejores Prácticas para Asegurar SMTP
- Implementar Autenticación Requerida
- Descripción: Asegurarse de que todos los usuarios que envíen correos a través del servidor SMTP estén autenticados. Esto ayuda a prevenir el abuso del servidor para enviar correos no autorizados.
- Beneficios: Reduce el riesgo de que el servidor sea utilizado para enviar spam o realizar ataques de spoofing.
- Configuración de SPF, DKIM y DMARC
- Descripción: Implementar SPF, DKIM, y DMARC para autenticar los correos electrónicos y evitar el spoofing.
- Beneficios: Aumenta la confianza en los correos electrónicos enviados desde su dominio y reduce la probabilidad de que sus correos sean marcados como spam.
- Monitoreo y Auditoría Constante
- Descripción: Implementar herramientas de monitoreo para registrar toda la actividad del servidor SMTP, incluidos los intentos de autenticación fallidos y los correos electrónicos enviados.
- Herramientas: Utilizar SIEM (Security Information and Event Management) y otros sistemas de registro para detectar actividades sospechosas
No te detengas, sigue avanzando
Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…
Universidad Hacking. Todo en Ciberseguridad. Curso Completo
Aprende Hacking Ético y Ciberseguridad sin necesitar conocimientos Previos. Practica Hacking Ético y Ciberseguridad aquí
Calificación: 4,6 de 5 (2.877 calificaciones) 15.284 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments Worldwide
Lo que aprenderás
- Seguridad informática
- Hacking Ético en profundidad
- Redes
- Programación (Python) (Hacking con Python)
- Análisis de Malware con laboratorios, practicas y ejecución de Malware para que veas su comportamiento.
- Cómo reforzar tu Privacidad y Anonimato
- Uso avanzado de Metasploit
- Top 10 de Owasp Web, Top 10 de Owasp mobile y Top 10 de Owasp API
- Seguridad informática para empresas
- Kali linux de 0 a 100, Veremos su suite de herramientas de hacking y como explotar fallos en sistemas.
- Termux y como hackear desde el celular
- Seguridad informática server/web, profundizaremos en WordPress
- Análisis de trafico en Wireshark
- Y mucho, pero mucho más
¿Esto que significa?
Hoy más que nunca, se necesitan personas capacitadas en este rubro para trabajar.
Por esa razón cree esta formación profesional para compartirte mis conocimientos y experiencia en la materia y puedas iniciar en este mundo del Hacking Ético y Ciberseguridad.
Te voy a estar acompañando en el proceso de aprendizaje, donde si estas empezando desde 0, sin conocimientos previos, no es un impedimento ya que iniciaremos como si no supieras nada de la materia.
Si sos una persona con conocimientos, podrás iniciar directamente en el nivel más avanzado o en el que tu elijas.
Como en todos mis cursos en udemy, tendrás muchísima practica para que materialices lo que vas aprendiendo.
Aprende con nuestros más de 100 cursos que tenemos disponibles para vos
No solo te enseñamos, tambien te guíamos para que puedas conseguir trabajo como desarrollador y hacker…
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Sobre los autores
Álvaro Chirou
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:
Laprovittera Carlos
Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:
¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.
SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS
Cómo Iniciarse en Hacking y Ciberseguridad en 2024
Curso Gratis de Programación
Curso Gratis Linux – Capitulo 1 – Introducción a Linux
Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios
Como iniciarse en TRY HACK ME – Complete Beginner #1
OSINT #1 Más de 200 Search Tools
Curso Gratis de Java para Hackers
SIGUE APRENDIENDO GRATIS EN NUESTRO BLOG
Saludos amigos y happy hacking!!!