Minientrada

Herramienta contra Virus que no conocías de Windows

Seguro que este sencillo truco no le conocías, pero te permite eliminar virus y programas maliciosos con una simple herramienta que viene por defecto en todos los ordenadores con Windows.

Para acceder a ella, pulsa sobre la tecla de Windows y escribe «mrt«:

Aparecerá la siguiente ventana y es tan sencillo como pulsar «siguiente», «siguiente» y empezará el escaneo.

Una vez completado, todo tu PC estará limpio de virus y amenazas.

¿Qué lenguaje de programación debería aprender para ciberseguridad?

En el mundo de la ciberseguridad, el conocimiento de lenguajes de programación no es solo un extra, sino que puede ser crucial para entender cómo funcionan los sistemas, encontrar vulnerabilidades y diseñar contramedidas. Aunque no es imprescindible ser un experto en todos los lenguajes, algunos resultan ser más útiles que otros según el área de especialización dentro de la ciberseguridad. Aquí analizamos algunos de los lenguajes más recomendados:

1. Python

Sin duda, Python es el lenguaje de referencia en ciberseguridad. Su simplicidad y versatilidad lo hacen ideal para escribir scripts rápidos que automatizan tareas de hacking ético, como análisis de red o escaneo de vulnerabilidades. Además, hay una gran cantidad de herramientas de seguridad desarrolladas en Python, como Scapy, un módulo que facilita la manipulación de paquetes de red.

2. C/C++

C y C++ son lenguajes más cercanos al hardware, lo que los hace fundamentales para comprender la estructura de sistemas operativos y cómo funcionan los exploits a bajo nivel. La mayoría de los sistemas operativos, incluidos Windows y Linux, están escritos en C, lo que hace que este lenguaje sea indispensable para entender la administración de memoria y posibles vulnerabilidades como buffer overflows.

3. JavaScript

JavaScript es el alma de las aplicaciones web modernas. Dado que una gran parte de los ataques cibernéticos están dirigidos a aplicaciones web (como inyecciones de SQL o cross-site scripting), entender cómo funciona JavaScript es vital para quienes trabajan en seguridad web. Además, su uso no se limita al lado del cliente, ya que con Node.js, JavaScript también se usa en el backend.

4. Bash

Bash es el lenguaje de scripting predeterminado en la mayoría de los sistemas basados en Unix/Linux, que son ampliamente usados en servidores y sistemas de seguridad. Aprender a escribir scripts en Bash es útil para tareas como la automatización de procesos, análisis de logs y gestión de sistemas.

5. SQL

SQL es el lenguaje utilizado para interactuar con bases de datos. Los ataques relacionados con bases de datos, como las inyecciones SQL, son muy comunes. Tener un buen conocimiento de SQL permite identificar y mitigar estas amenazas.

6. Java

Java es utilizado en sistemas grandes, incluyendo aplicaciones empresariales y Android. Aunque no es tan flexible como Python para escribir scripts rápidos, Java sigue siendo relevante debido a su uso en sistemas críticos que son potenciales objetivos de ataque.

¿Por dónde empezar?

La elección del lenguaje de programación depende de los intereses y el área en la que te quieras especializar dentro de la ciberseguridad. Para tareas de scripting y automatización, Python es el mejor punto de partida. Si tu objetivo es trabajar en seguridad a nivel de sistemas, C o C++ son esenciales. Para seguridad web, es necesario un buen dominio de JavaScript y SQL. Finalmente, si planeas trabajar en la administración de sistemas o pentesting, Bash es imprescindible.

La clave está en no intentar aprender todos los lenguajes a la vez, sino elegir el que más se alinee con tus objetivos y construir a partir de ahí.

Conclusión

Aprender un lenguaje de programación en ciberseguridad puede potenciar tus habilidades y hacerte más eficaz en tareas como análisis de vulnerabilidades, desarrollo de exploits o pruebas de penetración. Python y Bash son geniales para empezar, pero lenguajes como C, JavaScript y SQL serán indispensables dependiendo de tu especialización.

Ataques DDoS, cómo funcionan y cómo se protegen las grandes empresas

En un post anterior, explicamos la importancia de protegernos contra ataques DDoS a través de un ejemplo del mayor ataque de la historia (CloudFlare). Os dejo el enlace por si queréis consultarlo: «Ataque DDoS más grande de la Historia«. Hoy os voy a explicar cómo funcionan este tipo de ataques y la importancia de estar bien protegidos.

Agotamiento de los ciclos de CPU

El procesamiento de paquetes consume recursos de la CPU. Con tráfico legítimo, cada paquete que llega a un servicio genera una acción específica que consume diferentes cantidades de procesamiento según la tarea requerida. Sin embargo, antes de que el paquete llegue al servicio, necesita pasar por varias etapas: los encabezados de la capa 3 se deben analizar y procesar para dirigir el paquete a la interfaz y máquina correctas, mientras que los encabezados de la capa 4 aseguran que el paquete se enrute al socket apropiado (si existe).

Adicionalmente, otros mecanismos pueden inspeccionar el paquete en busca de anomalías o amenazas. Si el volumen de paquetes maliciosos enviados por un atacante es lo suficientemente alto, estos pueden consumir todos los recursos de la CPU, lo que impide el procesamiento de tráfico legítimo y provoca una denegación de servicio (DoS).

Para protegerte contra los ataques de alta velocidad de paquetes, debes poder inspeccionar y descartar los paquetes maliciosos utilizando el mínimo número posible de ciclos de CPU, es decir, mantenidendo suficiente CPU para procesar los paquetes legítimos. Otra opción es  adquirir más CPU, o CPU más rápidas, para realizar el procesamiento, pero ese puede ser un proceso muy largo que conlleva altos costes.

Agotamiento del ancho de banda de la red

El ancho de banda de la red es la capacidad total de datos que se puede enviar a un servidor en un momento dado. Para entenderlo mejor, imagina el ancho de banda como una tubería: una pajilla transporta menos agua que una manguera de jardín. Si un atacante logra enviar más datos basura de los que la tubería puede manejar, tanto los datos legítimos como los no deseados serán descartados antes de que lleguen al servidor, logrando así el objetivo del ataque DDoS.

Protegerse de este tipo de ataques es complicado, ya que, cuando la red está saturada, las opciones son limitadas. Puedes aumentar el tamaño del «conducto» (es decir, aumentar la capacidad del ancho de banda), desviar el tráfico legítimo hacia otro «conducto» que no esté saturado, o intentar que la fuente del ataque deje de enviar tráfico no deseado al sistema.

Cómo se producen los ataques DDoS

Desde el punto de vista de los atacantes, también existen limitaciones a la hora de generar un ataque. Al igual que el servidor necesita ciclos de CPU para recibir un paquete, el atacante también requiere ciclos de CPU para crearlo. Si el costo en términos de potencia de CPU fuera el mismo para enviar y recibir paquetes, el atacante necesitaría la misma cantidad de recursos que la víctima para ejecutar el ataque. Sin embargo, normalmente existe una asimetría de costos, ya que un atacante puede generar paquetes con menos recursos de CPU que los que necesita el servidor para procesarlos. Aun así, generar un ataque no es gratuito y puede requerir una cantidad considerable de potencia de procesamiento.

Para saturar el ancho de banda de una red, el atacante debe enviar más datos de los que el sistema objetivo puede manejar. En este caso, el atacante necesita superar la capacidad de la red de la víctima. Debido a la dificultad de generar tanto tráfico, los atacantes suelen emplear métodos como ataques de reflejo o amplificación, como el ataque de amplificación DNS. Este tipo de ataque permite al atacante enviar pequeños paquetes a un servicio intermedio, el cual devuelve grandes respuestas a la víctima, sobrecargando su red.

En ambos casos, los atacantes necesitan controlar múltiples dispositivos para ejecutar el ataque. Estos pueden ser servidores de proveedores de servicios en la nube, o dispositivos vulnerables como DVRs, routers o cámaras web infectados con malware, que juntos conforman una botnet.

Anycast de CloudFlare

Ahora que sabemos como funcionan los ataques, vamos a ver cómo CloudFlare evito el Ataque DDoS más grande de la Historia. El primer ingrediente secreto (aunque no es tan secreto) es que la red de Cloudflare se basa en Anycast.

Anycast permite que varias máquinas de cualquier parte del mundo anuncien una única dirección IP. Si envias un paquete a esa dirección IP el sistema lo derivará la máquina más cercana. Esto implica que cuando un atacante utiliza su botnet distribuida para lanzar un ataque, el ataque se recibirá de forma distribuida en toda la red de Cloudflare. Es decir, el ataque se irá repartiendo entre distintas máquinas: un DVR infectado en Dallas, enviará paquetes a un servidor de Cloudflare en Dallas, una cámara web infectada en Londres enviará paquetes a un servidor de Cloudflare en Londres, etc.

Anycast permite a Cloudflare asignar recursos informáticos y de ancho de banda más cerca de las regiones que más los necesitan. Las regiones densamente pobladas generarán mayores cantidades de tráfico legítimo, y los centros de datos ubicados en esas regiones tendrán más recursos de ancho de banda y de CPU para satisfacer esas necesidades.

El ataque que puede romper un sistema linux con 13 Carácteres ¿Sabes que es una Fork Bomb?

Una fork bomb es una forma de ataque de denegación de servicio (DoS) dirigida a sistemas Unix y similares. Este ataque utiliza el comando fork, que permite a un proceso duplicarse indefinidamente, saturando los recursos del sistema.

La conocida secuencia :(){ :|:& };: es una función de bash que se ejecuta de manera recursiva, creando copias de sí misma de forma continua. Su objetivo es agotar rápidamente los recursos del sistema (como la CPU y la memoria), lo que provoca que el sistema deje de funcionar correctamente. A menudo se utiliza para poner a prueba las limitaciones que tiene un usuario sobre la cantidad de procesos que puede generar en un servidor.

En sistemas Linux, es posible mitigar este tipo de ataques configurando límites en el archivo /etc/security/limits.conf o utilizando el módulo pam_limits a través de /etc/security/limits.d. Estas configuraciones permiten limitar la cantidad de procesos que un usuario puede ejecutar simultáneamente, reduciendo el riesgo de una bomba fork.

Una vez que la fork bomb ha sido activada y el sistema se ve afectado, la única forma de detenerla de manera efectiva suele ser reiniciar el sistema forzosamente, ya que es muy difícil eliminar todas las instancias del proceso manualmente.

Qué hacer para evitarlo

Una forma eficaz de prevenir ataques como la fork bomb es limitar el número de procesos que un usuario puede ejecutar simultáneamente en un sistema. Para verificar la cantidad máxima actual de procesos permitidos, puedes utilizar el siguiente comando:

ulimit -u

 

Este comando te mostrará el número máximo de procesos permitidos. Para una visión más completa de los límites configurados para el sistema, puedes ejecutar:

ulimit -a

 

Supongamos que el valor devuelto es 50922, lo que indica que un usuario puede ejecutar hasta 50,922 procesos. Para proteger el sistema contra una fork bomb, este valor debería reducirse. Si, por ejemplo, deseas limitar el número de procesos a 5,000, puedes utilizar el siguiente comando:

ulimit -S -u 5000

 

¡Advertencia!: Es importante no establecer un valor de ulimit demasiado bajo, ya que podría interferir con el funcionamiento normal del sistema.

Si intentas ejecutar una fork bomb después de aplicar este límite, obtendrás un mensaje de error similar al siguiente:

bash: fork: Resource temporarily unavailable

 

Este mensaje indica que el sistema ha bloqueado la creación de nuevos procesos debido al límite configurado. Para verificar la cantidad actual de threads (hilos) utilizados, puedes ejecutar:

pgrep -wcu $USER

 

La salida te mostrará el número actual de procesos en ejecución.

Minientrada

¡Precaución! Estafas en Parquímetros

Las estafas conocidas como quishing se están volviendo más comunes en varios países. En estos casos, los delincuentes sustituyen los códigos QR auténticos por falsos que redirigen a sitios web que imitan a los oficiales, pero que están bajo control de ciberdelincuentes.

Recomendaciones (para el caso de los parquímetros):

  1. Descarga siempre las aplicaciones de parquímetros desde sus sitios oficiales.
  2. Realiza los pagos únicamente a través de esas aplicaciones.
  3. Si es necesario escanear un código QR, asegúrate de tocarlo para verificar que no haya otro código oculto debajo.


Fuente: María Aperador Montoya.

Ingeniería Social (Parte 3)

Tercera entrega de este grupo de artículos en el que os hablo de la ingeniería social, que es una de las amenazas más insidiosas en el ámbito de la ciberseguridad, explotando la confianza y la manipulación psicológica para acceder a información confidencial. Es crucial estar siempre alerta y educarnos sobre estas tácticas para no caer en sus trampas. Podéis leer antes la parte 1 (Enlace) y la parte 2 (Enlace).

Hoy os traigo una herramienta muy interesante para poder realizar este tipo de ataques.

SET

El Social Engineer Toolkit (SET) es una suite diseñada para la ingeniería social que permite automatizar diversas tareas. Con SET, puedes clonar cualquier página web y lanzar un servidor para hacer phishing en segundos, o generar un código QR que dirija a una URL específica o ejecute una applet maliciosa cuando se escanee.

SET integra muchas funciones de Metasploit, por lo que es necesario tener Metasploit instalado para usar SET. Utilizaremos la distribución Kali Linux, que viene con SET y Metasploit preinstalados. Para ejecutarlo, búscalo en el menú de Aplicaciones o escribe setoolkit en la línea de comandos.

Aquí os muestro un ejemplo de la herramienta en un terminal KALI. La pantalla principal nos proporciona diversas opciones para ejecutar: la primera consiste en diferentes ataques de ingeniería social, la segunda ataques de exploit como inyecciones de SQL, entre otros…. y la tercera módulos de ataque de terceras partes. El resto son opciones para actualizar la herramienta, ayuda, créditos…

Os voy a explicar algunos de los ataques de ingeniería social que nos ofrece la herramienta:

  • Spear-Phishing Attack Vectors: se utiliza para llevar a cabo ataques de correo electrónico dirigidos contra la víctima. Permite enviar emails de forma masiva o a un objetivo. También permite falsificar la dirección de email de emisor.
  • Infectious Media Generator: nos permite crear medios infectados, ya sea un USB, un CD o un DVD, con un archivo autorun.inf, con un payload de Metasploit que se ejecutará automáticamente si la opción de autorun está activada.
  • Create a Payload and Listener: crea un payload de Metasploit y un servidor a la escucha del payload.

Ofrece muchas más funciones (QRCode Generator Attack Vector, Website Attack Vectors, Third Party Modules, etc.) pero estas son las que me han parecido más interesantes.

Os dejo un vídeo, que aunque es antiguo y está algo desactualizado, nos sirve para entender SET. Enlace al vídeo

Conclusión

El Social Engineer Toolkit (SET) es una herramienta poderosa y versátil para llevar a cabo ataques de ingeniería social de manera eficiente. Su capacidad para automatizar tareas como la clonación de páginas web y la generación de códigos QR maliciosos lo convierte en un recurso valioso tanto para profesionales de la ciberseguridad como para aquellos que buscan comprender y mitigar este tipo de amenazas. Sin embargo, es crucial utilizarlo de manera ética y responsable, siempre con el objetivo de mejorar la seguridad y proteger la información. Con la distribución Kali Linux, que incluye ambas herramientas, SET se consolida como una herramienta esencial en el arsenal de ciberseguridad.

Ataque DDoS más grande de la Historia

El pasado 2 de octubre de 2024 se produjo el mayor ataque DDoS registrado hasta la fecha. Cloudflare confirmó que este ataue alcanzó un pico de 3.8 terabits por segundo (Tbps), superando a cualquier otro ataque de este tipo en la historia.

El objetivo de un ataque de denegación de servicio distribuido (DDoS) es denegar a los usuarios legítimos el acceso a un servicio. Para ello, los atacantes agotan los recursos que se necesitan para proporcionar el servicio. En el contexto de estos recientes ataques DDoS a las capas 3/4, ese recurso son los ciclos de CPU y el ancho de banda de la red.

Los autores del ataque aún son desconocidos, pero se cree que provienen de una red de dispositivos hackeados de difrentes partes del mundo. Este ataque fue parte de una campaña mayor que incluyó numerooso ataques DDo en un solo mes y con el pico en el indicado ataque de 3.8Tbps.

CloudFlare utilizó sus avanzados sistemas de protección contra DDoS para mitigar el ataque de manera automática. Estos sistemas detectaros y neutralizaron el ataque en 65 segundos, un tiempo record que evitó que causaran un daño significativo.

Como ya sabéis, este tipo de ataques puede dejar páginas webs fuera de servicio, causando péridas económicas importantes. Estas pérdidas son fáciles de entender con este ejemplo: «Imagina que eres el dueño de una tienda online que hace 100 ventas al día. Si recibes una ataque DDoS que impiden el acceso a potenciales compradores a tu web durante todo un día, perderías esas ventas. Si esto se repite varias veces al mes, el daño puede ser muy importante».

En el caso de CloudFlare los principales afectados fueron empresas de servicios financieros, telecomunicaciones e Internet. Este ataque demuestra la imporatacia de contar con sistemas de seguridad robustos y la importancia de tener la capacidad de responder rápidamente a amenazas cibernéticas.

En futuras entregas explicaremos en más profundidad este tipo de ataques.

Ingeniería Social (Parte 2)

El otro día, en el artítulo «El Eslabón más Débil: Ingeniería Social» os hablaba de la importancia de la Ingeniería Social en los ciberataques actuales y que el motivo de que fuera una técnica tan utilizada era que cada vez los sistemas son más complejos y difíciles de romper y por tanto, hay que buscar el eslabón más débil. Hoy vamos a explicar en más profundidad en qué consiste esta técnica.

Clasificación

Hay muchos métodos de ingeniería social, pero se pueden agrupan en:

  • Técnicas pasivas.
    • Observación.
  • Técnicas no presenciales.
    • Correo electrónico.
    • Teléfono.
    • Correo ordinario.
    • Fax.
  • Técnicas presenciales no agresivas.
    • Hablar con conocidos y otras personas.
    • Vigilancia.
    • Seguimiento.
    • Utilización de acreditaciones falsas para obtener información.
    • Técnicas de desinformación.
  • Técnicas presennciales agresivas.
    • Suplantación de indentidad.
    • Chantaje o extorsión.
    • Despersonalización (Drogas, alcohol…)
    • Presión psicológica.

De todos estos, la técnica más utilizada es la no presencial. Esta suele ser bastante efectivo y es más complicado que la identidad del atacante se vea comprometida. Es por esto que habitualmente nos pueden llegar mails que suelen tener uno de estos «formatos»:

  • Suplantación identidad de alguna gran entidad o empresa (Apple, Google…), servicio del estado (correos, hacienda, la policía…), banco o página web… de la cual se desee obtener información. La página fraudulenta podrá recopilar las credenciales de las víctimas así.
  • Incitar a abrir documentos o archivos infectados, ya sea por engaño haciéndolos pasar por documentos importantes, por información comprometida de la persona, publicidad engañosa…

Se podría decir que «En todas las empresas siempre hay un Jose y una Andrea que hacen clic a todo. Les llega un correo con vacaciones gratis al Caribe, clic; quieren hacerse fotos con alguien famoso, clic; les invitan a una gala para darles un premio, clic…»

Las personas son un mundo y los atacantes también, es por ello que la ingeniería social depende de cada atacante y de cada situación. En ciertas ocasiones con enviar un mensaje al administrador de segurida de la empresa solicitando la IP de un servidor FTP, la obtienes. Otras veces necesitas enviar un spam masivo a todos los empleados de la empresa confiando en que alguno haga click en un enlace. Y otras necesitarás solamente sentarte en el metro al lado de la víctima para ver la contraseña de su móvil cuando la introduzca. Como he dicho… la ingeniería social es un arte.

Al ser tan diversas las situaciones o métodos utilizados, no hay una solución perfecta. Y aunque se puede reducir al máximo el peligro, las personas siempre son susceptibles al engaño.

Es por ello que lo mejor que se puede hacer es tomar medidas para reducir estas técnicas y minimizar su impacto:

  • La mejor prevención contra las técnicas de ingeniería social es la concienciación sobre la seguridad.
  • Nunca compartas tus contraseñas, ya que nadie debería pedírtelas, y evita divulgar información de la empresa a personas externas.
  • Utiliza un servidor de correo interno para filtrar el spam y mantén separados los correos personales de los laborales.
  • Además, asegura que la descentralización en la empresa esté bien organizada, con segmentos claramente definidos para la transmisión de información hasta los ejecutivos.

La educación y la organización son esenciales para protegernos de estas amenazas.

Ejemplos

  • Un ejemplo clásico es dejar un USB «olvidado» en el suelo o en una mesa cercana a la persona que queremos atacar. Una persona sin conocimientos de informática probablemente lo conectará a su ordenador para ver su contenido. A partir de ahí, el USB puede contener software autoejecutable que realiza acciones en segundo plano, como el Rubber Ducky USB, que actúa como un teclado externo y ejecuta scripts como si el atacante estuviera frente al ordenador, o archivos infectados que la víctima podría abrir. La curiosidad humana es una poderosa herramienta para los atacantes.
  • Otro ejemplo es crear una copia de la web de un banco y un mail fraudulento alegando alguna actividad  extraña en la cuenta o algún cargo que se ha realizado. De esta forma el usuario entraría en nuestra web y ya tendríamos las contraseñas. En la primera imagen podéis ver una web falsa y en la segunda la original.

  • Al igual que con el banco se pueden copiar otras webs como la de Apple u otras. Hace unos años se suplantó a Correos para conseguir que los usuarios descargaran un documento que cifraba el disco duro (Ransomware).
  • La ingeniería social persona a persona es igual de peligrosa, ya sea por teléfono, chats o en persona. Hoy en día, internet ofrece una gran cantidad de información sobre cualquier individuo si se sabe dónde buscar. Con estos datos, un atacante puede asumir un rol convincente para engañar a alguien. Redes como LinkedIn pueden revelar información sobre el entorno laboral de una persona, mientras que Facebook puede proporcionar detalles sobre sus costumbres, aficiones y familiares.

Sobre este último caso Kevin Mitnick nos da un ejemplo muy claro de como poder conseguir información de una empresa. Lo hace en su libro El arte de la intrusión.

  1. Llamada 1: El atacante llama a la oficina central de una empresa haciéndose pasar por una agencia de prensa y solicita el nombre del director de marketing, el fax de la recepción y los nombres de algunas personas de otros departamentos.
  2. Llamada 2: El atacante llama de nuevo, fingiendo ser un empleado nuevo en la oficina. Utilizando los nombres obtenidos anteriormente, pide hablar con el director de marketing. Alegando problemas informáticos, solicita que se envíen los planes de marketing al fax de la oficina central, usando un nombre inventado. El director, confiando en la familiaridad del atacante con el personal, envía los documentos.
  3. Llamada 3: El atacante llama nuevamente a la oficina central, usando el nombre inventado, y afirma ser de una consultora externa. Explica que hubo un error y el fax con los planes de marketing fue enviado allí por accidente, pidiendo que se lo reenvíen. La recepcionista, reconociendo el nombre y el asunto del fax, lo envía sin problemas.
  4. Finalmente, el atacante recoge el fax con el plan de marketing de la compañía en una copistería cercana.

Espero que este artículo os haya servido de ayuda y conciencie sobre los peligros de la ingeniería social. En el siguiente hablaremos de algunas herramientas que se utilizan para realizar estos ataques.

Antes de un Ataque hay que Buscar Información: Footprinting

Antes de llevar a cabo cualquier ataque cibernético, la primera y crucial etapa es la búsqueda de información del objetivo. Esta fase, implica reunir datos detallados sobre la organización o individuo objetivo para identificar posibles vulnerabilidades. A través de diversas técnicas de ingeniería social (de la que os hablé el otro día y os hablaré en futuros artículos: Enlace), análisis de redes y exploración de recursos públicos, los atacantes pueden descubrir puntos débiles que les permitan acceder a sistemas críticos.

Comprender esta etapa es esencial no solo para los cibercriminales, sino también para los profesionales de ciberseguridad, ya que les permite anticiparse a las amenazas y fortalecer las defensas. En este artículo, exploraremos las metodologías y herramientas empleadas en la recolección de información y cómo pueden ser contrarrestadas para proteger nuestros activos digitales.

El footprinting consiste en la búsqueda de información pública del objetivo, es decir, recoger toda la información útil que esté publicada en Internet, ya sea a propósito o por  desconocimiento.

Esta búsqueda de información no se considera delito, ya que esta información es pública y además la entidad no debería detectarlo. Se buscará cualquier dato que nos sea de utilidad para poder lanzar posteriormente un ataque.

Una vez elegido el objetivo, el primer paso es navegar por el sitio web de la organización y utilizar sus aplicaciones y servicios en busca de errores. Esto incluye buscar enlaces olvidados que no deberían estar allí, especialmente en sitios web muy grandes, y examinar las llamadas a la base de datos. Al realizar consultas con parámetros incorrectos, como referencias a tablas inexistentes o intentos de introducir datos en una tabla vinculada con claves ajenas, la base de datos puede mostrar errores que revelen nombres de campos y tablas. Estos datos sensibles pueden ser explotados para llevar a cabo una inyección SQL, abriendo una puerta a posibles ataques.

Hay un mecanismo que utilizan algunas páginas web para que los buscadores como Bing o Google no indexen ciertas páginas de un sitio web en sus bases de datos. Es el llamado robots.txt, el cual se encuentra en la URL:

www.nombredelapagina.com/robots.txt

Si visitamos esa dirección en algunos sitios web podremos encontrar también una gran fuente de información, ya que se suele utilizar para poner las direcciones de páginas de administración del sitio o zonas restringidas de la entidad.

Después deberemos descargarnos el código fuente del sitio web entero. Para ello usaremos la herramienta httrack en Windows o webhttrack para Linux o Mac OS X. Esta herramienta dispone tanto de modo de uso gráfico como en consola. Con ella podremos descargarnos todo el sitio web de una entidad: el código HTML de las páginas web, las imágenes, documentos y archivos que tenga e incluso todas las páginas a las que enlace.

La herramienta se debe usar con precaución, pues permite la descarga simultánea de muchos objetos (imágenes, documentos, páginas…) y puede llegar a saturar la red si se realizan muchas conexiones al mismo tiempo.

Cuando ya tenemos todo el código se puede buscar en él. Muchas veces los desarrolladores suelen dejar comentarios que nos pueden ser útiles. De hecho hay demasiadas ocasiones en las que hay nombres de usuario y contraseñas por defecto, cuentas de correo, nombres reales…

Como todos sabréis, el formato de un comentarioen HTML es:

<!- – comentario del código – ->

Por lo que se pueden realizar búsquedas de la siguientes formas:

cat *.html | grep contraseña
cat *.html | grep –A 3 “<\!”

La primera busca en todos los archivos si está la palabra contraseña y la segunda busca el inicio de un comentario y muestra las siguientes tres líneas (por si el comentario fuera demasiado largo).

Otro paso interesante es preguntar a los buscadores (Google, Bing…) por el dominio del que nos interesa obtener información. En muchas ocasiones las arañas (crawlers) que utilizan los buscadores para navegar por internet de forma autonoma e indexar páginas, indexan páginas que no deben o que nos muestran cierta información que es difícil de encontrar de forma manual.

Tenéis más información en la siguiente entrada Enlace

Los buscadores tienen una serie de palabras y carácteres reservados para especificar más las búsqueda. Y para encontrar búsquedas más avanzadas (los llamados Dorks de Google) es recomendable visitar el repositorio de la Google Hacking Database (GHDB), que se encuentra en la página: https://blog.miguelandrescaballero.es/dorks

En esa web se pueden encontrar diferentes búsquedas realizadas para encontrar vulnerabilidades, usuarios, archivos… hasta contraseñas. Muchas de las búsquedas están desactualizadas, pero a día de hoy aún siguen apareciendo nuevos resultados útiles.

 

Y para no alargar mucho más este tema, continuaremos hablando sobre esto en futuras entradas y os indicaremos algunas herramientas útiles que se pueden utilizar para agilizar la búsqueda de información.

Cómo podemos proteger Nuestro Servidor de Ataques de fuerza Bruta

Si tienes un servidor Linux, este artículo te interesa. Voy a explicar una forma muy simple para aumentar la seguridad del servidor y evitar que usuarios malintencionados puedan acceder a él o adivinar tus contraseñas.

Seguro que si sigues interesado en este tema es porque dispones de un servidor Linux y acertaría si digo que te conectas a él a través de SSH. Pues bien, voy a enseñarte a evitar que usen la fuerza bruta para descubrir tu contraseña de acceso.

Lo primero que tenemos que hacer es instalar fail2ban. En debian podemos usar este comando ‘apt install fail2ban‘.

Una vez hecho, configurarlo es muy sencillo, debemos crear un fichero que indique el servicio que queremos proteger y como queremos hacerlo. Vamos a editar el siguiente fichero ‘nano /etc/fail2ban/jail.local

Un ejemplo para SSH sería este

[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 10
findtime = 60

En este caso si se detecta que se intenta acceder más de 10 veces (maxretry) o varias veces en menos de 60 segundos (findtime) banea esa IP.

Una vez editado ese fichero es necesario reiniciar ‘sudo systemctl restart fail2ban‘. También puedes comprobar el estado de fail2ban con el siguiente comando ‘sudo systemctl status fail2ban‘.

Y para revisar que la configuración que has añadido está funcionando puedes hacerlo así: ‘sudo fail2ban-client status sshd‘.

También es posible que quieras desbloquear a un usuario, para ello debes utilizar el comando anterior para ver si realmente están dentro del listado de IPs baneadas y una vez encontrada, lanzar el siguiente comando ‘sudo fail2ban-client unban <IP-a-desbanear>‘.

También funciona para WordPress

Para ello tienes que crear un archivo en /etc/fail2ban/filter.d/wp-login.conf con el siguiente contenido:

[Definition]
failregex = <HOST> - - \[.*\] "POST /wp-login.php
ignoreregex =

Este filtro busca en los registros del servidor las instancias de intentos fallidos de POST a wp-login.php, que es el formulario de inicio de sesión de WordPress, y captura la dirección IP asociada con ese intento.

Después de crear el filtro, debes configurar una jaula en /etc/fail2ban/jail.local que lo utilice:

[wp-login]
enabled = true
filter = wp-login
action = iptables[name=WordPress, port=http, protocol=tcp]
logpath = /var/log/apache2/access.log
maxretry = 5
bantime = 3600

Esta configuración habilita la jaula wp-login, utiliza el filtro que acabas de crear, define una acción que actualiza iptables para bloquear las solicitudes, especifica la ubicación de los registros de acceso de Apache (ajusta según tu servidor web y configuración), establece un máximo de 5 intentos antes de bloquear la IP, y establece el tiempo de bloqueo en 3600 segundos (1 hora).

Dispones de más información en el siguiente enlace: Fail2Ban Info