Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
▼
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
▼
agosto
(Total:
25
)
- Comparativa de Microsoft Office 2016 vs. Office 20...
- Mejores navegadores para Android
- Disponible para descargar LibreOffice 5.0.1
- Crackean y descifran 4.000 contraseñas del hack a ...
- Comparativa y diferencias entre cámaras de acción ...
- Glosario de términos, conceptos, vocabulario utili...
- Empresa TotoLink: así no se maneja un incidente de...
- Aumenta la seguridad de tu cuenta Dropbox con una ...
- Fallo en API de Facebook expone millones de datos ...
- Pueden hackear un Chevrolet Corvette remotamente v...
- Navegador Tor 5.0 mejora la privacidad y añade sop...
- Portátiles Lenovo instalando de nuevo software no ...
- Nueva vulnerabilidad en Android afectaría a más de...
- Opciones y herramientas para configurar la privaci...
- Actualizaciones de seguridad para Microsoft y Adob...
- Linux Foundation ofrece sus cursos y certificacion...
- Ya disponible para descargar Kali Linux 2.0 alias ...
- Canal francés TV5Monde sufrió un hackeo en abril y...
- Alternativa a TrueCrypt, llamada VeraCrypt ahora d...
- La ICANN sufre un nuevo incidente de seguridad y p...
- Ubiquiti es hackeada y pierde 42 millones de euros
- Proxys y mirrors de sitios de Torrents están lleno...
- WSUS puede ser usado para infectar Windows
- Google lanza parche para solucionar la vulnerabili...
- Vulnerabilidad grave permite robar ficheros locale...
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Glosario de términos, conceptos, vocabulario utilizados en seguridad informática
Ransomware - Secuestro ficheros - datos
Botnet
- Un atacante puede estar ubicado en cualquier parte del mundo.
- Una gran colección de barcos controlados por el Botmaster.
- Botmaster: quién creó el programa de botnet para abrir rootkit u obtener acceso a la máquina remota que estaba infectada con malware.
- Controlar uno o más servidores de comando y control (C & C).
- Los servidores C&C pueden controlar miles de bots (Zombies) para ataques DDoS masivos.
DDoS - DrDDoS - DoS
Un ataque DDoS tiene como objetivo inhabilitar un servidor, un servicio o una infraestructura. Existen diversas formas de ataque DDoS: por saturación del ancho de banda del servidor para dejarlo inaccesible, o por agotamiento de los recursos del sistema de la máquina, impidiendo así que esta responda al tráfico legítimo. Un ataque distribuido de denegación de servicio o DDoS (por sus siglas en inglés), es una ampliación de un ataque de denegación de servicio (DoS) que se lleva a cabo a partir de la generación de un gran flujo de información o peticiones desde diversas fuentes hacia un objetivo específico.
CVE (Common Vulnerabilities and Exposures)
Es el "número" o identificador que se le asigna a una vulnerabilidad.CVE® internacional poner a su alcance y libre de uso público, CVE es un diccionario de vulnerabilidades y exposiciones de seguridad de información de conocimiento público. Identificadores comunes de CVE permiten el intercambio de datos entre los productos de seguridad y proporcionan un punto de índice de referencia para la evaluación de la cobertura de las herramientas y servicios.
Formato:
- formato para las entradas CVE es: CVE-YYYY-NNNN (YYYY indica el año y NNNN el número de vulnerabilidad)
CVE-2015-ID
Es decir, Common Vulnerabilities and Exposures, siglas CVE, es una lista de información registrada sobre conocidas vulnerabilidades de seguridad, donde cada referencia tiene un número de identificación único.
De esta forma provee una nomenclatura común para el conocimiento público de este tipo de problemas y así facilitar la compartición de datos sobre dichas vulnerabilidades.
CVSS - Common Vulnerability Scoring System
El CVSS (Common Vulnerability Score System) es un sistema métrico de puntuación (score) con el que poder medir el impacto que una vulnerabilidad puede tener si es explotada. Se trata de un sistema de puntaje diseñado para proveer un método abierto y estándar que permite estimar el impacto derivado de vulnerabilidades.Se trata de un sistema de puntaje diseñado para proveer un método abierto y estándar que permite estimar el impacto derivado de vulnerabilidades identificadas
Serviría para ver la gravedad de una vulnerabilidad y hacernos una idea de su posible impacto teniendo en cuenta diversos factores
Al entender qué es CVSS, para determinar el impacto que representa una vulnerabilidad se utiliza una escala que va del 0 al 10.
El CVSS clasificará la vulnerabilidad en función de si ésta afecta a la disponibilidad, la confidencialidad, la privacidad, etc. Aunque también se tiene en cuenta el vector de acceso, la complejidad para llevar a cabo la explotación, si se requiere autenticación, etc.
- Local. Misma máquina.
- LAN. Vulnerabilidad explotable en la misma red.
- Remoto. Desde Internet.
- Alta. Circunstancias muy especiales deben darse para llevar a cabo la explotación.
- Media. Complejidad media.
- Baja. Configuración por defecto. Es realmente sencillo que se pueda explotar.
- Ninguna. No se requiere autenticación para explotar vulnerabilidad.
- Simple. Se requiere autenticación para explotar.
- Múltiple. Se requieren varias autenticaciones.
Indicador de Compromiso (IoC)
Tácticas, técnicas y procedimientos (TTP)
- Initial Access (Acceso Inicial) – El atacante intenta acceder al entorno industrial.
- Execution (Ejecución) – El atacante intenta ejecutar código malicioso.
- Persistence (Persistencia) – El atacante intenta mantener la comunicación con la red industrial a través de puertas traseras o comunicaciones ofuscadas.
- Evasion (Evasión) – El atacante intenta no ser detectado cuando ejecuta acciones maliciosas.
- Discovery – El atacante intenta detectar el mayor número de activos dentro de la red industrial para seleccionar su objetivo.
- Lateral Movement (Movimiento lateral) – El atacante intenta comprometer otros activos presentes en la red industrial partiendo de un activo ya comprometido con el objetivo de acceder a otras redes, atacar sistemas de difícil acceso, etc.
- Collection (Recoleción) – El atacante intenta obtener toda la información posible y que resulte de interés para la ejecución de sus acciones maliciosas en el entorno industrial.
- Command and Control (Comando y Control) – El atacante intenta comunicarse a través de servidores que se encuentran en su poder con activos comprometidos dentro de la red industrial para enviar órdenes concretas y así ejecutar acciones maliciosas.
- Inhibit Response Function – El atacante intenta evitar la activación de funciones de seguridad y protecciones físicas, la ejecución de acciones legítimas por parte de los operadores frente a problemas, fallos o estados de seguridad incorrectos.
- Impair Process Control – El atacante intenta manipular, deshabilitar o dañar los procesos de control físicos existentes a nivel industrial dentro de la organización atacada.
- Impact (Impacto) – El atacante intenta que el ataque ejecutado tenga cierta repercusión en el proceso industrial interrumpiendo el mismo, alterando los datos para que su funcionamiento no sea el correcto, destruyendo algunos activos de importancia, etc.
Phishing
- ¿Qué es el Phishing?
Phishing es el delito de engañar a las personas para que compartan información confidencial como contraseñas y números de tarjetas de crédito. Como ocurre en la pesca, existe más de una forma de atrapar a una víctima, pero hay una táctica de phishing que es la más común. Las víctimas reciben un mensaje de correo electrónico o un mensaje de texto que imita (o “suplanta su identidad”) a una persona u organización de confianza, como un compañero de trabajo, un banco o una oficina gubernamental. Cuando la víctima abre el correo electrónico o el mensaje de texto, encuentra un mensaje pensado para asustarle, con la intención de debilitar su buen juicio al infundirle miedo. El mensaje exige que la víctima vaya a un sitio web y actúe de inmediato o tendrá que afrontar alguna consecuencia.
Si un usuario pica el anzuelo y hace clic en el enlace, se le envía a un sitio web que es una imitación del legítimo. A partir de aquí, se le pide que se registre con sus credenciales de nombre de usuario y contraseña. Si es lo suficientemente ingenuo y lo hace, la información de inicio de sesión llega al atacante, que la utiliza para robar identidades, saquear cuentas bancarias, y vender información personal en el mercado negro.
Existen diferentes métodos y maneras de detectar cuando una página web o correo es falso y se trata de un Phishing, es muy importante saber distinguir un correo falso o una página web falsa para no caer en la trampa.
Spear Phishing
Typosquatting
Password Spraying
Ataques Diccionario
- Usar palabras en un diccionario de un conjunto predefinido de palabras posibles.
- Más rápido que la fuerza bruta en el sentido de que solo se utilizan palabras que probablemente tengan éxito.
Smishing
¿Cómo funciona un Smishing?
Generalmente, su funcionamiento es idéntico al phishing, donde el atacante se hace pasar por otra persona o entidad para conseguir algo de este último. Veamos varios ejemplos:
Skimimng - Skimmer - Fraude
SIM Swapping (Intercambio - Duplicado SIM)
Ataque Suministro de Cadena (Supply Chain Attacks)
Troyano - RAT
Gusano - Worm
- Gusanos de servicio de red :Aprovecha las vulnerabilidades de la red para propagar e infectar a otros.
- Gusanos de correo masivo: Explotan los sistemas de correo electrónico para propagar e infectar a otros.
CTF (Capture The Flag)
"Capture the Flag" (Captura la bandera) o CTF, donde lo que se captura son ordenadores y servicios, o bien pruebas, según la modalidad a que se juegue: en los CTF de "Ataque y defensa", cada equipo tiene un servidor que debe defender, mientras conquista los del resto. Los CTF tipo 'Jeopardy', en cambio, consisten en un panel de pruebas relacionadas con el hacking.Consiste en un montón de retos/pruebas/desafíos informáticos que hay que superar en equipo
En seguridad informática, el Capture the flag (CTF) es un concurso o reto (wargame) en el que los participantes luchan por obtener la máxima puntuación superando una serie de pruebas técnicas relacionadas con diferentes disciplinas dentro de la seguridad, como por ejemplo, ingeniería inversa, análisis de red y protocolos, criptoanálisis, seguridad web, etc.
En su versión original (celebrada en el congreso de seguridad Def Con) se juega por equipos. A cada uno de ellos se le asigna una máquina, o incluso una pequeña red, dentro de una red aislada donde se llevará a cabo el juego . La máquina suele ser una imagen vmware que corre un sistema operativo común, con una serie de servicios abiertos, normalmente creados para el evento, y en los que se han incluido (y escondido) diversas vulnerabilidades.
Cada equipo tiene una doble misión: por un lado atacar al resto de máquinas explotando las vulnerabilidades en los servicios y redes de sus contrincantes (robando una “bandera” de la máquina atacada o bien situando la suya propia en el servidor comprometido, como prueba del éxito obtenido) y por otro, defenderse del resto de participantes, que tratarán de hacer lo propio. A medida que avanza el juego el panel de puntuaciones (score-server) se va actualizando, en función del éxito parcial obtenido por cada equipo.
Otra modalidad que está muy extendida (se utiliza por ejemplo en las “quals” de Def Con) consiste simplemente en un panel repleto de pruebas de diferente dificultad (y que puntúan proporcionalmente a la misma) y que suelen estar ordenados según la temática. Las pruebas inicialmente se encuentran bloqueadas, sin poder acceder a estas, pero se van desbloqueando progresivamente conforme se va desarrollando el juego, normalmente a criterio del organizador, que tratará de animar lo más posible el evento, dar pistas para que los concursantes no se queden atascados, etc.
Ambas modalidades son muy divertidas y sobre todo, didácticas. Es la forma perfecta de demostrar tus habilidades y “aprender jugando”.
Ingeniería Inversa
El objetivo de la ingeniería inversa es obtener información o un diseño a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado. Hoy en día los productos más comúnmente sometidos a ingeniería inversa son los programas.
Hook
Técnicamente, una función de “Hook” es una función que puede ser insertada en el sistema de mensajes de aplicaciones de Windows de tal modo que a través de la misma poder procesar la información antes de ser procesada por otra aplicación.Fuzzear (Fuzzing)
Script o programa que va probando (pruebas) combinaciones para conseguir que un programa falle (explotar vulnerabilidades) y obtener así posibles vectores de ataque.Es una de las técnicas más utilizadas para la búsqueda de vulnerabilidades es el fuzzing. Consiste en probar, de forma más o menos inteligente, el comportamiento de una aplicación frente a unos datos generados específicamente para hacer que un programa falle, ya sea generando datos en una codificación diferente, enviando cadenas largas o probando a desbordar valores numéricos.
Una de las partes más importantes del fuzzing es la automatización y la instrumentalización. El analista busca generar una batería de pruebas que pueden tardar horas o días en realizarse, por lo que las aplicaciones o frameworks destinados a este tipo de trabajos, suelen incorporar monitores para detectar la caída de la aplicación que se esté probando. Además, permiten grabar la sesión y datos relativos a la caída, como volcado de memoria, captura de red o desensamblado de la función afectada.
Hash
Una función criptográfica hash- usualmente conocida como “hash”- es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.Los hash o funciones de resumen son algoritmos que consiguen crear a partir de una entrada (ya sea un texto, una contraseña o un archivo, por ejemplo) una salida alfanumérica de longitud normalmente fija que representa un resumen de toda la información que se le ha dado (es decir, a partir de los datos de la entrada crea una cadena que solo puede volverse a crear con esos mismos datos).
Estas funciones no tienen el mismo propósito que la criptografía simétrica y asimétrica, tiene varios cometidos, entre ellos está asegurar que no se ha modificado un archivo en una transmisión, hacer ilegible una contraseña o firmar digitalmente un documento.
Este sistema de criptografía usa algoritmos que aseguran que con la respuesta (o hash) nunca se podrá saber cuales han sido los datos insertados, lo que indica que es una función unidireccional. Sabiendo que se puede generar cualquier resumen a partir de cualquier dato nos podemos preguntar si se podrían repetir estos resúmenes (hash) y la respuesta es que teóricamente si, podría haber colisiones, ya que no es fácil tener una función hash perfecta (que consiga que no se repita la respuesta), pero esto no supone un problema, ya que si se consiguieran (con un buen algoritmo) dos hash iguales los contenidos serían totalmente distintos.
Formas de uso:
- Asegurar la integridad de la información
- Firma digital
Strings (cadena de texto)
Cadena / Cadena de caracteres: Es una consecución de caracteres de texto, dígitos numéricos, signos de puntuación, caracteres especiales o espacios en blanco consecutivos.File Carving
El File Carving es el proceso de extracción de una serie de datos que se encuentran dentro de otro conjunto mayor de datos. Las técnicas de Data Carving son usadas frecuentemente en Análisis Forense cuando nos encontramos con porciones de datos pertenecientes al Sistema de Archivos que a primera vista no están usados pero que pueden tener sorpresas.Existen varias técnicas dentro del File Carving, pero lo que debe de quedar claro es que NO se usan las estructuras/metadatos del Sistema de Archivos para recuperar datos. Esto es fundamental, ya que las técnicas "clásicas" de recuperación de ficheros usaban precisamente estos mecanismos que proveen los Sistemas de Archivos, por ejemplo las tablas de ficheros. Esto es así porque la mayoría de los Sistemas de Ficheros no tocan la localización física de los ficheros durante el borrado, sino que se limitan a marcarla como vacía para que se pueda grabar en esa posición. Después del borrado, la entrada en la tabla seguirá estando presente y seguramente el puntero a la dirección de memoria donde se encuentra también, de forma que el fichero podrá ser recuperado.
Así mismo, existen multitud de herramientas tanto software libre como software privativo que permiten realizar el proceso de «file carving» con mayor o menor efectividad y utilidad. A continuación, se describen algunas de ellas:
- Foremost - http://foremost.sourceforge.net (se abre en nueva ventana) es una herramienta de código abierto desarrollada por la Oficina de Investigaciones Especiales de las Fuerzas Aéreas estadounidenses. Permite trabajar tanto con imágenes de dispositivos (dd, encase, etc.) como directamente sobre el dispositivo. Está orientada a la recuperación de información en entornos Linux. Presenta la limitación de que únicamente es capaz de procesar ficheros de hasta 2 GB.
- Scalpel - https://github.com/sleuthkit/scalpel (se abre en nueva ventana) es una herramienta de código abierto, basada en Foremost, aunque mucho más eficiente, incluida en The Sleuth Kit. Está orientada a la recuperación de información tanto en entornos tanto Linux, OSX incluido, como Windows.
- Forensic Toolkit (FTK) AccessData - http://accessdata.com/solutions/digital-forensics/forensic-toolkit-ftk?/solutions/digital-forensics/ftk (se abre en nueva ventana) es una suite muy completa para realizar análisis forenses. Una de las muchas funcionalidades que incorpora es la de «carving» avanzado que le permite especificar criterios de búsqueda como tamaño de archivo, tipo de datos y tamaño de pixel, para reducir la cantidad de datos irrelevantes extraídos.
- X-Way Forensics (WinHex) - http://www.x-ways.net/forensics/ (se abre en nueva ventana) al igual que FTK es una suite completa para realizar análisis forenses. Su prestaciones de «carving» no son demasiado configurables, si bien si potentes.
Esteganografía
Según la Wikipedia: La esteganografía (del griego στεγανος (steganos):cubierto u oculto, y γραφος (graphos): escritura), trata el estudio y aplicación de técnicas que permiten ocultar mensajes u objetos dentro de otros.Por otro lado, el estegoanalisis es el estudio de la detección de mensajes ocultos usando esteganografía.
Por ejemplo el estudio de metadatos con herramientas como efixtool
OSINT
La información es poder. Inteligencia de fuentes abiertas u «Open Source Intelligence» (OSINT) hace referencia al conocimiento recopilado a partir de fuentes de acceso público. El proceso incluye la búsqueda, selección y adquisición de la información, así como un posterior procesado y análisis de la misma con el fin de obtener conocimiento útil y aplicable en distintos ámbitos. En español Inteligencia de Fuentes Abiertas. Se trata de un conjunto de técnicas y herramientas para recopilar información pública, correlacionar los datos y procesarlosExisten multitud de fuentes abiertas a partir de las cuales se puede obtener información relevante, entre las que destacan:
- Medios de comunicación: revistas, periódicos, radio, etc.
- Información pública de fuentes gubernamentales.
- Foros, redes sociales, blogs, wikis, etc.
- Conferencias, simposios, «papers», bibliotecas online, etc.
Herramientas de OSINT para mejorar tus investigaciones
- Búsquedas por ubicación: Muchos de los posteos o comentarios que se suben a Internet quedan georeferenciados, por lo que herramientas como Geo Twitter, u otras del proyecto Geo Social Footprint, pueden ser utilizadas para realizar búsquedas de noticias o posteos en una determinada ubicación.
- Palabras claves: A la hora de definir palabras claves es necesario conocer el idioma y lunfardo, ya que muchas palabras cambian según la región. En este sentido, las noticias en diarios locales pueden ser muy útiles para definir palabras claves. En el sitio Newspaper Map encontraremos los diarios locales de diferentes ciudades y regiones de todo el mundo.
- Datos Laborales, documentos de identidad, etc: Muchas personas no tienen redes sociales, cuentas bancarias o tarjetas de crédito, sin embargo, pueden ser encontrados a través de páginas gubernamentales a través de su documento de identidad, seguro social, inscripción tributaria, servicios públicos o incluso infracciones de tránsito.
- Generación de identidades para la investigación: Tal como explicamos en el artículo sobre aspectos legales a tener en cuenta a la hora de realizar pruebas de seguridad, es recomendable realizar todas las investigaciones desde una identidad falsa, pero esta identidad no puede ser creada con datos reales de otra persona. En este sentido, existen aplicaciones como Fake Name Generator para crear los datos de un individuo y This person does not exist para crear fotos falsas a partir de inteligencia artificial. Además, la idea es que estos perfiles tengan actividad y parezcan reales, para lo que se pueden utilizar aplicaciones como PostCron para configurar posteos automatizados.
- Buscadores: Google, Bing o Yahoo no son los únicos buscadores en Internet. Por ejemplo, puedes utilizar Shodan para buscar puertos o servicios publicados a Internet, incluso geolocalizados.
- Máquinas virtuales con herramientas de OSINT: Además del ya conocido Kali, también existe Intel Techniques, un Linux virtualizado y preconfigurado con más de 25 herramientas para hacer investigaciones, búsquedas e inteligencia en fuentes abiertas.
Remote code execution (RCE)
El principal impacto que puede generar esta vulnerabilidad es la ejecución remota de código (RCE -Remote Code Execution-).Una vulnerabilidad que nos deja ejecutar comandos de manera remota. Es una de las vulnerabilidades más graves. Se considera crítica.
LFI - RFI
- LFI -un atacante puede leer el archivo mencionado anteriormente en un sistema Linux, en el cual obtiene información sensible del servidor:
- allow_url_fopen: Permite tratar las URLs como archivos. Si está habilitada tendremos una vulnerabilidad LFI.
- allow_url_include: Permite hacer llamadas include/require a URLs como archivos. Si está habilitada junto con la anterior tendremos una vulnerabilidad LFI y RFI.
XSS
Los ataques de tipo XSS pueden tener diversas consecuencias para los usuarios, entre ellas:
- Recopilación de datos personales
- Robo de credenciales (usuarios y contraseñas)
- Robo de cookies
- Redireccionamiento a sitios maliciosos
- Acceso al control del equipo de la víctima
- Cambio de la apariencia visual del sitio
SQLi
LPE
Payload
¿Carga útil?Por ejemplo en un virus informático, el payload es la carga dañina de un virus, es decir, lo que estos son capaces de hacer al activarse.
Este término se refiere a los efectos destructivos, nocivos o molestos que cualquier virus puede producir cuando ya ha tenido lugar su infección, además de los efectos secundarios de dicha infección (cambios en la configuración del sistema, reenvío de e-mail, ejecución del virus en el arranque del sistema o de Windows, etc).
Un Payload, es un programa que acompaña a un exploit para realizar funciones especificas una vez el sistema objetivo es comprometido, la elección de un buen payload es una decisión muy importante a la hora de aprovechar y mantener el nivel de acceso obtenido en un sistema. En muchos sistemas existen firewalls, Antivirus y sistemas de detección de intrusos que pueden dificultar la actividad de algunos payloads, por este motivo se suelen utilizar encoders para intentar evadir cualquier AV o Firewall.
Malware o APT
Potentially unwanted program (PUP)
Sandbox - Espacio o entorno asilado
Confianza - Estrategia de Seguridad Zero Trust
Dropper
¿Qué es un dropper? Distribuir malware
Un dropper es un tipo de malware que se caracteriza por contener un archivo ejecutable, como puede ser un .exe, .msi, .docm, etc. En ocasiones, únicamente está compuesto por un código inofensivo a simple vista que se activará cuando reciba la orden para descargar el malware que se encargará de infectar la máquina.
El principal propósito de los droppers es instalar otro malware en el equipo aprovechándose de las vulnerabilidades que pueda tener ese equipo, como por ejemplo, que se encuentre desactualizado o que use software que no ha sido parcheado. Los dropper también pueden llegar a realizar modificaciones en la configuración del equipo necesarias para instalar el malware que pasan desapercibidas para el software de protección.
Un dropper pueden ocultarse bajo un archivo comprimido aparentando ser un archivo inofensivo, como una imagen o un documento pdf. También puede suceder que se descargue en la máquina al visitar una página web infectada previamente, inyectando código malicioso.
Una vez se ejecuta el dropper en el equipo de la víctima, este se realizará en segundo plano y sin que el usuario se dé cuenta de todas las acciones maliciosas para las que esté diseñado. Una vez ha finalizado, se desinstala automáticamente eliminando cualquier rastro que haya podido dejar durante su ejecución en el equipo infectado.
- ELF -ficheros- (Executable and Linking Format): Ficheros ejecutables (programas), propios del sistema operativo Unix/Linux.
- Polimórfico / Polimorfismo: Es la técnica que utilizan algunos virus para cifrar (codificar) su firma de forma diferente en cada ocasión y además las instrucciones para realizar dicho cifrado.
Rootkit
- Se cargar antes del sistema operativo.
- Pueden deshabilitar antivirus y anti Malware.
Virus Macro - Documento Malicioso - Mal Doc
¿Qué es una macro?
- Es un tipo de virus que usa código de macro o secuencias de comandos, generalmente incrustado en el documento, y se activa cuando el documento se ve o edita, para ejecutarse y replicarse en otros documentos similares.
- Normalmente los virus se adjuntan a los archivos .exe y luego se pueden ejecutar con ese archivo. Pero este tipo de virus van adjuntos al documento.
- Los desarrolladores maliciosos desarrollan un virus de macro que un virus normal que se adjunta a archivos .exe. Porque .exe está en la plataforma Windows. Pero cuando un virus se adjunta a un documento, puede propagarse a más plataformas fácilmente y puede hacer lo mismo.
- Por eso casi todos los proveedores de correo electrónico no pueden enviar archivos .exe. Pero aceptaron estos documentos. Entonces, este tipo de virus se puede propagar fácilmente a través de correos electrónicos.
- Cada vez que no tratamos con archivos .exe. Pero lo hacemos con documentos. Entonces, estos macrovirus pueden ser dañinos cuando vemos o editamos documentos adjuntos a virus. Y el documento tiene privilegios de lectura, escritura y ejecución. Puede ser una ventaja para este virus.
Fileless Virus-Malware
- La idea principal detrás de un ataque sin archivos es que la ejecución del código ocurre en la memoria en lugar de generar un proceso que ejecuta código compilado desde un archivo fuente.
- Documentos maliciosos
- Scripts maliciosos
- Viviendo fuera de la tierra (Living off the Land Binaries - LoL) LOLBins
- Código malicioso en la memoria
Vulnerabilidad
Según la RAE, la palabra vulnerable significa “que puede ser herido o recibir lesión, física o moralmente”. Cuando hablamos de personas vulnerables nos referimos a aquellas que son más frágiles y se las puede herir física o moralmente por tener condiciones sociales, culturales, políticas, etc. diferente de otras personas. También puede ser vulnerable por circunstancias de la vida –fallecimiento de un familiar, pérdida de trabajo…- que le hace estar más débil y finalmente por ser más frágiles que otros colectivos, como es el caso de los niños y ancianos. Resumiendo, es como si una persona tuviese un agujerito en su cuerpo a través del cual se le puede hacer daño con diferentes cosas.Pues bien, cuando se dice que un sistema es vulnerable o un programa tiene una vulnerabilidad, significa que tienen un agujero que puede ser utilizado para colarse dentro de ellos. Éstos, generalmente están provocados por errores de programación y/o diseño, que permiten que un tercero meta por ellos programas que puedan realizar acciones maliciosas como infectar dispositivos, robar información privada, controlar dispositivos de forma remota, etc.
2FA - MFA - 2SV
Verificación en dos pasos (Two-factor authentication o 2FA)
Durante los últimos dos años, muchos servicios online han comenzado a ofrecer un doble factor de autenticación. Se trata de una medida de seguridad extra que frecuentemente requiere de un código obtenido a partir de una aplicación, o un mensaje SMS, además de una contraseña para acceder al servicio.
- Algo que el usuario sabe: password, pin, passphrase, etc.
- Algo que el usuario tiene: llave USB, llave, tarjeta, generador de claves, etc.
- Algo que el usuario es: huella dactilar, iris, secuencia ADN, firma, reconocimiento facial, reconocimiento de voz u otros identificadores biométricos, etc.
Exploit
Bug: Este término se emplea para indicar un fallo o error en un programa informático. Cuando uno de ellos tiene errores, se dice que tiene bugs.
Cómo ya sabéis que es una vulnerabilidad, ahora entenderéis lo que es un exploit: es un programa creado específicamente para aprovechar una vulnerabilidad del sistema o programa.
¿Te imaginas que pasaría si alguien descubre un fallo de diseño en la cerradura de la puerta de un modelo de coche, de tal forma que se pudiese abrir fácilmente sin la llave específica? Está claro, si no se soluciona el problema rápidamente y, además, no se ponen medidas de protección alternativas, estamos expuestos a que cualquiera pueda abrir nuestro coche con una llave diseñada específicamente para explotar ese fallo.
Un exploit es un programa que explota una o varias vulnerabilidades en un software determinado, frecuentemente es utilizado para ganar acceso a un sistema y tener un nivel de control sobre él.
Backdoor / Puerta trasera: Se trata de un programa que se introduce en el ordenador y establece una puerta trasera a través de la cual es posible controlar el sistema afectado, sin conocimiento por parte del usuario.
PoC (Proof of Concept) - Prueba de Concepto
Una prueba de concepto o PoC (por sus siglas en inglés) es una implementación, a menudo resumida o incompleta, de un método o de una idea, realizada con el propósito de verificar que el concepto o teoría en cuestión es susceptible de ser explotada de una manera útil.
La PoC se considera habitualmente un paso importante en el proceso de crear un prototipo realmente operativo.
0-day - Ataque día cero
Puede parecernos poco problemático el hecho de que se conozca una vulnerabilidad, porque lo normal, es que el fabricante desarrolle una solución lo antes posible para evitar males mayores.
Sin embargo, ¿qué pasa si alguien encuentra una vulnerabilidad en un programa o sistema y no se lo cuenta a nadie? Se puede dar el caso, de hecho es bastante común, que ni el fabricante ni los usuarios sean conocedores del problema... Estaríamos ante un fallo muy grave ya que un atacante podría explotar dicha vulnerabilidad sin que el usuario fuese consciente de que es vulnerable. A esta situación es a lo que se conoce como un 0-day (sólo “una persona” (o muy pocas) sabe que la cerradura tiene ese problema).
0-clik o zero-click
Vector de ataque
Ya sabemos que es posible aprovecharse de fallos de seguridad detectados en sistemas y aplicaciones para intentar “colarse” dentro de ellos, pero ¿cómo lo hacen? Pues obviamente utilizando algún método/mecanismo/vía que te permita hacerlo. Sería el mecanismo o punto de entrada del ataque.Dependiendo de qué tipo sea la vulnerabilidad detectada, los ciberdelincuentes utilizarán un método u otro: enviando correos con un adjunto que al ejecutarlo podría descargar un virus en el ordenador, con un enlace que al hacer clic en él redirige al usuario a un sitio malicioso que descarga aplicaciones maliciosas en el dispositivo, descargando ciertos plugin, códec u otras herramientas creyendo que realizan unas funciones cuando en realidad hacen otras, etc.
Direcciones (offset) y punteros (pointer)
En informática, un offset dentro de un array u otra estructura de datos es un entero que indica la distancia (desplazamiento) desde el inicio del objeto hasta un punto o elemento dado, presumiblemente dentro del mismo objeto. El concepto de distancia es solamente válido si todos los elementos del objeto son del mismo tamaño (típicamente dados en bytes o palabras).- Hexadecimal (hex): Es un sistema de numeración de base 16 que usa la rom, se escribe con números y las letras de la a a la efe. Para identificarlo se escribe "0x(número)" aunque en AM se escribe "$(número)". Fíjate bien que cantidades están en decimal y cuales en hexadecimal. Scripted al compilar convierte automaticamente las cifras decimales que escribas a hex.
- Byte: Un byte son dos cifras hexadecimales, en la rom la información se escribe en bytes. Por ejemplo esto "0F 00 19 D1 16 08 09 04" es una serie de 8 byes y así se escribiría un messagebox en la rom.
- Dirección: Para localizar donde se guardan los datos de la rom, todos sus bytes están numerados desde el 0x000000 hasta el 0xFFFFFF (en decimal 0-16777215). Por ejemplo si la serie anterior la compilamos en la dirección 0x123456 significa que el primer byte (0F) está ahí, el 2º (00) en 0x123457, el 3º (19) 0x123458 y así sucesivamente. Obviamente si compilas algo en una dirección ya ocupada sobreescribirás lo que ya hubiese.
- Puntero: Los punteros son como la rom encuentra la información. Aunque para los humanos la serie anterior está en 0x123456 para la rom esto se escribe así: 56341208. ¿Porqué? Pues por una parte la rom permuta los bytes y además añade un prefijo.
- Permutar: Cuando decimos permutar nos referimos concretamente a escribir una serie de bytes al revés y por parejas. Como ejemplo: 00 11 AB 23 > 23 AB 11 00. En la rom todas las referencias a otros datos se escriben así, por ejemplo las flags, las direcciones, los índices... todo.
- Prefijo de un puntero : Para referirse a los datos de la rom se prefija 08 a las direcciones. Eso es porque cuando el juego se ejecuta, hay datos que no están escritos en la rom como tus medallas, tu nombre tu equipo... todos esos datos se guardan en la partida guardada y también se necesitan cargarse con punteros.
Overflow
SEH overflow (también es un stack based overflow)Shellcode
Encodear, opcodes,Primero necesitamos saber el significado etimológico de shellcode.
Shell es como se le dice en ingles (ahora universal) a una terminal. Por lo tanto shellcode significa que es un código que nos crea una terminal para que la usemos.
Actualmente el termino shellcode no solo se refiere al código que nos permite crear una shell, sino que se extiende a códigos con mas funciones como pueden ser crear usuarios, matar/crear un determinado proceso, dar permisos a una carpeta, etc. Y tecnicamente... una shellcode es una porcion de codigo compilada para un determinado procesador que se ejecuta dentro de otro proceso previamente preparado para que la ejecute (ej: stack overflow).
Cuando se produce un overflow en un programa, podemos sobreescribir EIP “Instruction Pointer” (entre otras cosas). Si sobreescribimos este registro con una dirección que contiene código propio, se ejecutará. Esto es, podemos ejecutar código con los permisos que tiene el programa ejecutado. ¿Qué pasa si el programa tiene el bit de suid activado? Lo dejo a vuestra imaginación. Encontrar este tipo de xploits es muy difícil hoy en dia, puesto que hay muchas herramientas de análisis de código que evitan que se produzcan tremendos errores de seguridad. Aun así, podemos encontrar o programar algo a medida simplemente para aumentar conocimientos, que es en lo que consiste la curiosidad (lo otro se llama ‘prensa rosa’).
¿Qué es una Shellcode?
Una shellcode no es mas que el conjunto de opcodes (instrucciones en hexadecimal) que ejecutará el procesador para realizar un acción en concreto, las shellcodes suelen estar escritas en ensamblador ya que nos permite un control total sobre el proceso de ejecución además de un tamaño inferior de la shellcode.
Stack Buffer Overflow
In software, a stack buffer overflow occurs when a program writes to a memory address on the program's call stack outside of the intended data structure; usually a fixed length buffer.
Es decir, la vulnerabilidad Stack Buffer Overflow ocurre cuando una aplicación no controla correctamente el número de bytes que son almacenados en una dirección de memoria previamente reservada, de forma que la cantidad de bytes que se van a almacenar son superiores a los reservados.
Nuestro principal objetivo es llegar a sobrescribir la dirección de retorno (almacenada en la PILA) con un valor que apunte a nuestra shellcode.
- Registro EIP (Extended Instruction Pointer): Este registro apunta a la siguiente dirección de memoria que el procesador va a ejecutar.
- Instrucción RETN: Es la instrucción encargada de recoger el valor de ESP y almacenarlo en el registro EIP, de este modo el valor de ESP será la próxima dirección de memoria que el
procesador va a ejecutar. - Dirección de retorno: Es el valor exacto que nos indica la dirección de memoria donde habíamos dejado la aplicación ante de entrar en una subfunción, para así cuando esta termine volver a la posición exacta donde nos quedamos. Este valor se encontrará almacenado en la siguiente dirección de memoria del EBP de la subfunción
Debuggers - Dissamblers - Depurador
Del Código Máquina al Lenguaje Ensamblador
Cuando nos encontramos frente a una variante de algún código malicioso en un sistema y nos disponemos a analizarlo tenemos el archivo binario y debemos utilizar un desensamblador para generar el código en assembler con el objetivo de analizarlo. Ensamblador (assembler) es en realidad una clase de lenguaje de programación. Cada variante de ensamblador corresponde a una familia particular de microprocesadores tales como x86, x64, SPARC, PowerPC, MIPS o ARM. Dentro de todas estas familias la más habitual dentro las arquitecturas de procesadores es la x86, aunque con el pasar de los años vemos más y más procesadores x64.
- Data: La sección de datos de un programa hace referencia a una región específica de memoria. Contiene lo que se conoce como las variables estáticas que no cambian con la ejecución del programa. También en esta sección se encuentran las variables globales, que están disponibles desde cualquier parte del programa.
- Code: En esta región de memoria se almacena el código que se ejecuta del programa donde se alojan todas las instrucciones que se van a ejecutar.
- Heap: El heap es una región de memoria que se utiliza para alocar nuevos valores durante la ejecución del programa como así también para eliminarlos una vez que se dejaron de utilizar. El heap es una memoría dinámica y su contenido varía a medida que se ejecuta el programa
- Stack (Pila): La pila se utiliza para alojar las variables locales, parámetros y valores de retorno de una función como así también contiene las direcciones de retorno entre una llamada a una función y otra, siendo muy útil para controlar el flujo de ejecución del programa.
Cualquier software se ejecuta de forma secuencial, es decir una instrucción detrás de otra, la siguiente instrucción a ejecutar se almacena en un registro llamado IP, mediante programación se puede desviar esa ejecución hacia funciones que realicen tareas concretas, el programa en un principio ejecutará el flujo normal hasta que llega a una llamada a una función, en ese momento guarda en RAM el registro IP, ejecuta la función y retorna al flujo principal del programa porque fué capaz de leer el valor almacenado en RAM del registro IP.
Parche o actualización de seguridad
Después de todos los elementos mencionados anteriormente, tenemos lo que se conoce como parches de seguridad, que son básicamente actualizaciones, que entre otros problemas corrigen los fallos de seguridad detectados y que impiden que se sigan explotando las vulnerabilidades. Digamos que después de la tormenta llega la calma, una vez que se haya publicado un parche de seguridad y el usuario haya actualizado sus programas y aplicaciones, los problemas desaparecen… hasta que se haga público una nueva vulnerabilidad. Ya os iréis dando cuenta, ¡los “malos” nunca descansan!Si has terminado de leer este artículo, ya no te sonará a chino estos conceptos cuando los encontréis escritos en algún artículo o escuchéis a alguien utilizarlos en alguna conversación, y además, habréis dado un paso más para ampliar vuestra cultura de la ciberseguridad. ¡Enhorabuena!
Fuentes:
https://www.osi.es/es/actualidad/blog/2015/07/31/los-5-conceptos-de-seguridad-que-debes-conocer-si-o-si
http://www.pandasecurity.com/spain/homeusers/security-info/glossary/
1 comentarios :
Genial, excelente contenido .Muchas gracias. :)
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.