Novedades de OWASP Top 10 2021 (III)

Tras comentar en el primer post de la serie algunos detalles sobre la nueva versión de OWASP Top 10, y en el segundo la nueva categoría A08, fallos de integridad del software y de los datos, en este tercer y último post vamos a analizar la categoría A10: Falsificación de solicitudes del lado del servidor (Server-Side Request Forgery, SSRF), así como las posibilidades de mitigación de este tipo de vulnerabilidades.

A10: Falsificación de solicitudes del lado del servidor (Server-Side Request Forgery, SSRF)

Se está en riesgo de sufrir ataques SSRF cuando una aplicación permite obtener un recurso remoto sin validar la URL que proporciona el usuario. Este tipo de ataque puede evitar la protección que brinda el cortafuegos, la VPN o los controles de acceso.

Por ejemplo, cuando una aplicación permite especificar una URL a la que será redirigida la petición inicial, si no filtramos la URL a la que se redireccionará, el atacante podría aprovechar para indicar una dirección cualquiera.

[Read more…]

Novedades de OWASP Top 10 2021 (II)

Tras comentar en el anterior post de la serie algunos detalles sobre la nueva versión de OWASP Top 10, en esta segunda entrada vamos a profundizar en otra categoría introducida, la A08, fallos de integridad del software y de los datos.

A08: Fallos de integridad del software y de los datos

Esta nueva categoría introducida en la versión de 2021 hace referencia a la falta de verificación de integridad en procesos, como por ejemplo: actualizaciones de software, fuentes CDN (Content Delivery Network), flujos CI/CD, serialización de datos o codificación de estructuras de datos, entre otros.

En esta nueva categoría está incluida también la categoría de la anterior versión de 2017: A08:2017-Serialización insegura; dicha referencia puede ser útil para quien ya la conozca o para ampliar información consultando ediciones anteriores.

En general, se podría estar expuesto al riesgo si se usan componentes para los que no se dispone de una forma de verificar su integridad o esta no se lleva a cabo. Si se realiza la verificación, podríamos estar más seguros de que los componentes que estamos usando son los mismos que los que se tenían en el origen.

A continuación expondremos algunos ejemplos de como podría llevarse a cabo la verificación de integridad para los casos mencionados.

[Read more…]

ATT&CK reconnaissance: críticas constructivas

Sin duda, MITRE ATT&CK se ha convertido en el marco de trabajo de referencia para la estructuración (y análisis, y detección…) de tácticas y técnicas ligadas a operaciones ofensivas. Este estándar de facto constituye un esfuerzo enorme que sirve de gran ayuda para todos los que trabajamos en seguridad, pero también tiene muchas opciones de mejora, al ser un trabajo en curso y permanente actualización. Algunas de las críticas a MITRE ATT&CK pasan por la estructura plana de técnicas asociadas a cada táctica, sin ningún tipo de estructura que facilite su análisis.

En particular, en el caso de la táctica Reconocimiento, en la que un actor hostil trata de obtener información sobre su objetivo a través de diferentes medios, MITRE ATT&CK proporciona igualmente una estructura plana para las técnicas, como en el resto de tácticas, pero en este caso mezcla conceptos que pueden inducir a error y que no constituirían técnicas en sí mismas. Veamos: MITRE ATT&CK define las siguientes técnicas para la táctica “Reconnaissance” (no detallamos al nivel de sub técnica):

IDTechnique
T1595Active Scanning
T1592Gather Victim Host Information
T1589Gather Victim Identity Information
T1590Gather Victim Network Information
T1591Gather Victim Org Information
T1598Phishing for Information
T1597Search Closed Sources
T1596Search Open Technical Databases
T1593Search Open Websites/Domains
T1594Search Victim-Owned Websites
[Read more…]

Ransomware ate my network (IV)

A brief explanation of this series with some clarifying notes can be read at the beginning of the first part.
Series entries: First part, Second part, Third part, Fourth part, Fifth part

[Editor’s note: Clicking on many images – those whose detail is not fully visible with the size of the main page – shows an enlarged version]


In the previous article we saw how Angela had deduced that the attackers had entered the computer used to connect to the DC from another computer using the PsExec tool. Determined to find the PsExec, Angela begins by converting the MFT extracted by CyLR with mftdump.exe to .csv, and searching for activity around the time she saw the connection on the other computer (about 2:16 p.m. 1:16 p.m. in UTC which is what the MFT shows us).

There is no clear target, but that stalin.exe Prefetch looks suspicious (remember that Prefetches are created the first time the software is run, with a delay of a few seconds).

[Read more…]

Ransomware ate my network (III)

A brief explanation of this series with some clarifying notes can be read at the beginning of the first part.
Series entries: First part, Second part, Third part, Fourth part, Fifth part

In the previous article, we left the investigation with the IP 10.11.2.14 as the source of the connections to the DC (and with connections to the C2 101.143.122.216 as well as the antivirus disabled prior to the generalized attack).

Since we are talking about connections and considering that we have the RAM memory, the first thing Angela does is to use the Volatility netscan plugin to remove the network connections (the memory profile is Win10x64_17134) and confirm the connections with the C2:

Netscan returns a few additional results:

A connection to a remote SSH?

What is this computer doing providing a service on port 443/TCP? Has it gone mad? Clearly we need to dig deeper into these connections to find out what is behind them.

Angela decides to check the Sysmon logs, which should show the network connections… but it seems that the FFP (remember, the Federation of Patron Festivities) did not correctly apply the standard MINAF Sysmon configuration, so no such data is being collected (grrrrrrr).

[Read more…]

Ransomware ate my network (II)

A brief explanation of this series with some clarifying notes can be read at the beginning of the first part.
Series entries: First part, Second part, Third part, Fourth part, Fifth part

In the previous article, we saw how MINAF narrowly avoided a ransomware attack, but we still have a lot of questions to answer. First, finding out the identity of the ransomware group that had affected MINAF.

To do this, Angela converts the MFT of the DC with mftdump.exe and performs a quick search of the v2.exe and v2c.exe files, which seemed a priori those in charge of deploying the ransomware. She hits the spot because she finds the files in the c:\temp\scheduler folder:

Quickly calculates her hashes:

5994df288813a7d9588299c301a8de13479e3ffb630c49308335f20515ffdf57  v2c.exe
b2a304e508415d96f417ed50d26e0b987b7cbd9a77bb345ea48e803b5a7afb49 v2.exe
ffa8722a09829acd7ef8743688947f6ccb58d2ef v2c.exe
7320b34c07206fcaf1319d6ce9bef2b29648a151 v2.exe
eddc0e293b0f0ee90bab106f073a41c9 v2c.exe
91438699bed008be9405995f0a158254 v2.exe

The next thing is to check if they are known. VirusTotal gives you a quick answer:

[Read more…]

Ransomware ate my network (I)

A brief explanation of this series with some clarifying notes can be read below.
Series entries: First part, Second part, Third part, Fourth part, Fifth part

Note 1: This series of posts is a narration of a forensic analysis of a totally fictional incident response case study (but told, we hope, in a didactic and humorous way). If you want a version with the same technical dose but with less narrative, you can check the video of the talk that the author gave at the XIV CCN-CERT STIC Conference, or take a look at the slides of the presentation.

Note 2: These posts reveal a forensic analysis workshop encompassed within the incident response. There will be some things that could be done more efficiently and elegantly, but the idea was to make them simple so that they are easy to understand. And like any practical workshop, you can take advantage of it in several ways: you can download from LORETO the evidence  already worked to follow the case step by step, you can download the raw evidence to do your own investigation… or you can play the CTF DFIR that we have prepared and that will be unfolding the case as you respond to the various challenges.


There are few good months for cybersecurity in a Public Administration, and November is not one of them: projects must be closed, status reports must be made, and it is necessary to make sure that the entire budget is executed (and justified with the corresponding invoices).

Angela de la Guarda, CISO of the MINAF (Ministerio of Alegría y Felicidad, Joy and Happiness in English) has not had a particularly happy year: the pandemic forced the deployment of teleworking for a large part of the personnel, which caused a significant overload on all ICT personnel… and even more so on her and her team, responsible for ensuring the security of all systems.

To make things worse, in the usual restructuring with each change of government, the MINAF has been entrusted with the mission of “unifying all state agencies with skills on joy and happiness.” This has led to the absorption of several entities of different sizes, among which the FFP (Federation of Patron Festivities, in charge of managing all town festivals in Spain) stands out. The FFP has, so to speak… a rather relaxed view of cybersecurity, which made assimilation highly conflictive. In the end, the upper echelons have ruled, and the MINAF finally absorbed the FFP.

It’s 5:00 p.m., and Angela is checking emails to finish the first of a week full of reports and go home, when Salvador Bendito (MINAF security analyst) calls her on her mobile: “Boss, we have a very serious problem. One of the canaries has jumped: we are losing the goalkeepers. All of them”.

[Read more…]

Ransomware ate my network (V)

Una breve explicación de esta serie con algunas notas aclaratorias se puede leer al comienzo del primer artículo.
Entradas de la serie:
=> Primera parte
=> Segunda parte
=> Tercera parte
=> Cuarta parte
=> Quinta parte

En el artículo anterior ya habíamos terminado el análisis forense del incidente, por lo que Ángela ya tenía una visión global de todo lo que había ocurrido. Los timelines son una herramienta de análisis sensacional para poder entender lo ocurrido en un incidente, así que construimos una (con las horas en UTC, no perdamos las buenas costumbres):

  • 4/Nov: Los atacantes envían los correos con enlaces maliciosos a personal de la FFP.
  • 9/Nov – 11:37h – dolores.jolgorio abre el correo, descarga y ejecuta el .doc con la macro maliciosa.
  • 11:38h – El equipo se infecta con un agente de Meterpreter.
  • 11:41h – Los atacantes ejecutan diversos comandos para reconocer el sistema.
  • 11:46h – Los atacantes “revenden” el acceso al segundo grupo, cediendo el control con un agente de Empire.
  • 12:01 – Los atacantes elevan privilegios con un exploit de la vulnerabilidad CVE-2020-0787.
  • Entre las 12:01 y las 12:37h: Vuelcan hashes con la funcionalidad Powerdump de Empire.
  • 12:37h – Lanzan SharpHound e identifican W10-PC3 como equipo con una sesión iniciada de administrador de dominio.
  • 13:16h – Con los permisos de administrador local, copian el stager de Empire a W10-PC3 y lo ejecutan con PsExec.
  • Entre las 13:16 y las 13:30h – Obtienen el hash NTLM de la cuenta dom.adm con Mimikatz.
  • 13:51h – Montan el pivot SSH-RDP y acceden al DC con el hash NTLM de la cuenta dom.adm.
  • 13:55h – Copian el fichero temp.zip con las GPO y scripts de Powershell.
  • 13:57h – Despliegan la GPO “All in One”, que erosiona severamente la seguridad de los equipos del dominio.
  • 15:08h – Despliegan la GPO “Scheduler”, que copia el ransomware a los equipos y deja programada una tarea para su ejecución a las 17:15h.
  • 15:13h – Lanzamiento de un agente de Empire.
  • 15:30h – Saltan las alertas en GLORIA.
[Read more…]

Ransomware ate my network (IV)

Una breve explicación de esta serie con algunas notas aclaratorias se puede leer al comienzo del primer artículo.
Entradas de la serie:
=> Primera parte
=> Segunda parte
=> Tercera parte
=> Cuarta parte
=> Quinta parte

[Nota del editor: Pinchando en muchas imágenes –aquellas cuyo detalle no se ve del todo con el tamaño de la página principal– se muestra una versión ampliada]


En el artículo anterior vimos cómo Ángela había deducido que los atacantes habían entrado en el equipo empleado para conectarse al DC desde otro equipo empleando la herramienta PsExec. Dispuesta a encontrar el PsExec, Ángela empieza convirtiendo a .csv la MFT extraída por CyLR con mftdump.exe, y buscando por actividad alrededor de la la hora en la que vio la conexión en el otro equipo (sobre las 14:16h, 13:16h en UTC que es lo que nos muestra la MFT).

No hay un objetivo claro, pero ese Prefetch de stalin.exe parece sospechoso (recordemos que los Prefetch se crean la primera vez que se ejecuta el software, con un retraso de unos pocos segundos).

[Read more…]

Ransomware ate my network (III)

Una breve explicación de esta serie con algunas notas aclaratorias se puede leer al comienzo del primer artículo.
Entradas de la serie:
=> Primera parte
=> Segunda parte
=> Tercera parte
=> Cuarta parte
=> Quinta parte

En el artículo anterior la investigación se había quedado con el equipo con la IP 10.11.2.14 como origen de las conexiones al DC (y que tenía tanto conexiones con el C2 101.143.122.216 como el antivirus desactivado de forma previa al ataque generalizado).

Dado que estamos hablando de conexiones y que disponemos de la memoria RAM, lo primero que hace Ángela es emplear el plugin netscan de Volatility para sacar las conexiones de red (el perfil de memoria es Win10x64_17134) y confirmar las conexiones con el C2:

Netscan devuelve a su vez unos cuantos resultados adicionales:

¿Una conexión a un SSH remoto?

¿Y qué hace este equipo prestando un servicio en el puerto 443/TCP? ¿Se ha vuelto loco? Está claro que tenemos que profundizar en estas conexiones saber qué hay detrás de ellas. Ángela decide revisar los logs de Sysmon, en los que tendrían que aparecer las conexiones de red… pero parece que la FFP no aplicó correctamente la configuración de Sysmon estándar del MINAF, por lo que no se están recogiendo esos datos (grrrrrrr).

[Read more…]