1 Presentación
Los navegadores web son objetivos comunes para muchas APT diferentes. Herramientas como Redline Malware o herramientas de prueba de penetración como SharpChrome o SharpChromium roban datos confidenciales como cookies y datos de inicio de sesión guardados, y muchas otras apuntan a la instalación de extensiones de navegador que pueden permitir la filtración de datos u otros exploits relacionados con el navegador.
Para iniciar, crear detecciones sobre el tropelía del navegador puede ser un desafío y estar plagado de falsos positivos correcto al gran bulto de datos que puede hacer perder el tiempo a los analistas e impedir la identificación oportuna de IOC esencia que pueden detener un compromiso más generalizado.
Esta publicación buscará proporcionar a las organizaciones detecciones de plantillas de adhesión fidelidad basadas en consultas clásicas de Splunk SPL para ayudar a detectar esta actividad. Cerca de señalar que esta publicación no es un estudio íntegro sobre toda la telemetría adecuado para identificar estos ataques; más correctamente, nos centraremos en los medios de detección más accesibles.
Además junto a señalar que TrustedSec igualmente tiene detecciones comunitarias que brindan algunas oportunidades de detección alternativas, así como detecciones SIGMA escritas por Leo Bastidas @cyberGoatPysOps. Si correctamente las detecciones que crearemos en esta publicación de blog son diferentes, se pueden utilizar adicionalmente del trabajo innovador realizado por TrustedSec y Leo.
2 Extensiones del navegador
2.1Â Â Â Â Â Â Â Â Â Configuración de auditoría y SACLS: instalación de la extensión del navegador
Antaño de que podamos ejecutar ataques, debemos asegurarnos de que nuestro laboratorio esté configurado con la auditoría y SACL adecuados para producir detecciones adentro de Splunk.
Para comenzar, deberá habilitar el ID de evento de Windows 4657 para detectar modificaciones en el Registro. Asegúrese de tener habilitada la auditoría de modificación del Registro adentro de GPO en la subsiguiente ubicación:
Configuración del equipo > Políticas > Configuración de Windows > Configuración de seguridad > Configuración vanguardia de políticas de auditoría > Políticas de auditoría > Paso a objetos

Adicionalmente, navegue hasta Auditoría de paso universal a objetos y igualmente habilite y configure SACL.


2.2Â Â Â Â Â Â Â Â Â Instalación de extensiones (simulación y detección de ataques)
Para afectar que un atacante instala una extensión potencialmente maliciosa, igualmente instalaremos una extensión en varios navegadores (en este caso, Chrome, Edge, Firefox y Brave).
Para este caso de uso, instalaremos la extensión del navegador LastPass. Obviamente, esta no es una extensión maliciosa, pero funcionará para nuestra experimentación.

Para confirmar que podemos ver la instalación de la extensión en el navegador, usaremos la cautiverio de la extensión LastPass, que es hdokiejnpimakedhajhdlcegeplioahdpara respaldar que los datos se ingieran en Splunk.
index=main EventCode= 4657 Operation_Type="New registry value created" hdokiejnpimakedhajhdlcegeplioahd
| table _time, EventCode, host, Account_Name, Process_Name, Object_Name, Object_Value_Name, Old_Value, Old_Value_Type, New_Value, New_Value_Type, Logon_ID

Ahora, podemos crear una detección de relato para ver las instalaciones de extensiones en varios navegadores.
index=main EventCode=4657 Operation_Type="New registry value created" Account_Name!="*$*" Object_Value_Name!="@*" Object_Value_Name!="*_*" Object_Value_Name!="*|*" Process_Name IN ("*chrome*", "*firefox*", "*msedge*", â*brave*â) AND NOT (Object_Value_Name IN ("mhjfbmdgcfjbbpaeojofohoefgiehjai" ```ChromePDFViewer```, "nkeimhogjdpnpccoofpliimaahmaaome" ```Hangouts```))
| table _time, EventCode, host, Account_Name, Process_Name, Object_Name, Object_Value_Name, New_Value, New_Value_Type, Logon_ID
| stats count by Object_Value_Name, host, Account_Name, Process_Name
| where len(Object_Value_Name)>14
| sort â count

El problema obvio es que los propios registros contienen el identificador de cautiverio de la extensión del navegador instalada y no el nombre normalizado de la extensión. Para hacer las cosas aún más divertidas, la misma extensión tiene un identificador de cautiverio diferente en todos los navegadores, como lo muestran las extensiones encuadradas en rojo en la captura de pantalla preliminar.
Hasta donde yo sé, no existe una guisa sencillo de eludir esto, al menos no del todo. Sin confiscación, como me lo presentó Mike Spitzer, se pueden crear etiquetas Splunk que le permiten filtrar por nombres más fácilmente reconocibles.
2.2.1Â Â Â Â Una aplicación básica del uso de etiquetas Splunk
Para crear una calificativo, primero necesitará el campo analizado y el valía de la extensión. En este caso, mi campo analizado es Nombre_valor_objetoy la cautiverio de la extensión LastPass es hdokiejnpimakedhajhdlcegeplioahd.
El nombre de la calificativo se convierte entonces en el valía de búsqueda que le permite filtrar datos; en este caso simplemente lo nombré Chrome_LastPass.

Luego, la calificativo creada se puede utilizar para filtrar rápidamente los datos que coincidan con el par de claves proporcionado por la calificativo.
tag=Chrome_LastPass
| table _time, EventCode, host, Account_Name, Process_Name, Object_Name, Object_Value_Name, New_Value, New_Value_Type, Logon_ID

Adicionalmente, puede crear varias etiquetas con el mismo nombre pero con títulos diferentes. A continuación, puede ver que he creado dos (2) etiquetas nuevas denominadas Extensión_ÚltimoPass; sin confiscación, el par de títulos de campo es diferente en ambas etiquetas.

Esto nos permite consultar “todas” las extensiones de LastPass en varios navegadores sin requisito de ingresar cada valía en la búsqueda. Esto proporciona un gran valía y un caso de uso potencial para detectar extensiones específicas que se instalan adentro de una ordenamiento.
tag=LastPass_Extension
| table _time, EventCode, host, Account_Name, Process_Name, Object_Name, Object_Value_Name, New_Value, New_Value_Type, Logon_ID
| stats count by Object_Value_Name, Account_Name, host

Este vídeo y este artículo de relato proporcionan excelentes guías para comprender y trabajar con etiquetas Splunk.
Sin confiscación, la mejor guisa de condicionar la cantidad de ajustes necesarios para que esta detección sea pragmático es condicionar los navegadores aprobados utilizados adentro de la ordenamiento con controles de aplicaciones y luego no permitir que los usuarios instalen extensiones en el navegador a través de controles organizacionales para respaldar que solo se aprueben. Se pueden utilizar extensiones.
3.1Â Â Â Â Â Â Â Â Â Configuración de auditoría y SACLS: linaje de datos confidenciales de los navegadores
Una vez más, debemos comenzar asegurándonos de tener habilitada la auditoría para los eventos que necesitaremos revisar en SIEM. En este caso, necesitamos el ID de evento 4663, que se puede habilitar mediante:
Configuración del equipo > Políticas > Configuración de Windows > Configuración de seguridad > Configuración vanguardia de políticas de auditoría > Políticas de auditoría > Paso a objetos > Sistema de archivos de auditoría

Adicionalmente de habilitar el ID de evento 4663 a través de GPO, igualmente debe especificar las carpetas en los hosts que desea auditar y se debe configurar una SACL para respaldar que se proporcione cobertura de auditoría.
Por el correctamente de esta publicación de blog, lo habilité en la carpeta raíz del navegador. Sin confiscación, puede habilitar una auditoría más detallada que ayudaría a ceñir la cantidad de falsos positivos en los registros.
Por ejemplo, como se menciona en esta publicación, las siguientes carpetas específicas contienen los datos a los que se accede para la linaje de credenciales:
C:Users<username>AppDataLocalGoogleChromeUser DataLocal State
C:Users<username>AppDataLocalGoogleChromeUser DataDefaultNetworkCookies
C:Users<username>AppDataLocalGoogleChromeUser DataDefaultNetworkCookies-journal
C:Users<username>AppDataLocalGoogleChromeUser DataDefaultLogin Data
C:Users<username>AppDataLocalGoogleChromeUser DataDefaultLogin Data-journal


3.2Â Â Â Â Â Â Â Â Â Robo de información confidencial (simulación y detección de ataques)
Para iniciar, agregué algunas contraseñas falsas y las guardé en Chrome.

A continuación, utilicé la útil SharpChrome para ejecutar un robo de datos de inicio de sesión de Chrome. Cerca de señalar que esta útil específica sólo está dirigida a Chrome.
Nota: Esta útil se ejecutó con privilegios elevados.

Podemos identificar rápidamente los registros adentro del sistema e identificar los títulos esencia necesarios para crear una detección de adhesión fidelidad.
EventCode=4663 Object_Name IN ("*login*", "*Restringido State", "*cookies*") Object_Type!="Key"
| table _time, Account_Name, Logon_ID, Object_Type, Object_Name, Process_Name, Process_ID
| stats values by Account_Name, Object_Name

Para ampliar nuestra consulta existente, igualmente podemos vincular datos usando el ID de evento 4688 para obtener más información sobre los procesos involucrados con el “ataque”. Además debe tenerse en cuenta que tanto la detección escrita anteriormente como la posterior La detección igualmente detectará intentos manuales de interpretar los archivos de destino.
(EventCode=4663 Object_Name IN ("*login*", "*Restringido State", "*cookies*") Object_Type!="Key" ) OR (EventCode=4688 AND Process_Command_Line!="*splunk*" )
| eval Process = coalesce(Process_ID, New_Process_ID)
| table _time, Account_Name, Logon_ID, Object_Type, Object_Name, Process_Name, Process, Process_Command_Line, Creator_Process_Name
| stats values(*) as * by Process , Account_Name, Logon_ID
| fillnull
| search Object_Name!=0

Además existen conjuntos de herramientas que intentarán extraer información confidencial de todos los navegadores identificados, como SharpChromium.

Esto queda atrapado en nuestra detección existente sin modificaciones adicionales.

4 Examinar (otras) posibles fuentes de registros
Los eventos DPAPI igualmente se pueden producir al intentar extraer datos confidenciales de los navegadores. Para esta actividad, habilitamos Auditar actividad DPAPI adentro de GPO y en el host almacén.

En muchos casos, se menciona que durante estos ataques se generará el ID de evento 4693 en el host almacén. Sin confiscación, en ningún caso durante las pruebas se generó un ID de evento 4693, aunque se generó un ID de evento 4695.

Si correctamente el ID de evento 4695 proporcionó información sobre los navegadores involucrados, no contenía información sobre los procesos de paso. El ID de evento 4695 se puede combinar con el ID de evento 4688 para proporcionar todos los datos relevantes en una (1) traza.
index=main (EventCode=4695 OR EventCode=4688)
| stats values(*) as * by Account_Name, Logon_ID
| fillnull
| search Data_Description!=0
| table _time, Account_Name, Logon_ID, Process_Name, Process_Command_Line, Creator_Process_Name, Data_Description, Key_Identifier
| stats values(*) as * by Logon_ID

5 Conclusión
Los navegadores pueden ser un objetivo de suspensión valía para las credenciales almacenadas, las cookies o los tokens de paso que pueden permitir a los atacantes aumentar sus privilegios, moverse lateralmente en la red u obtener paso a otras aplicaciones.
Respaldar que existan controles de paso para evitar esta exposición es una cuchitril fundamental de defensa. Sin confiscación, se deben realizar esfuerzos para crear detecciones que complementen este esfuerzo y proporcionen una cojín valiosa que ayude a los analistas a rebuscar actividades anormales en su entorno.
Además quiero devolver a varias personas, todos fueron de gran ayuda en la investigación y elaboración de esta publicación.
ryan leese
Andrew Schwartz                                                Â
Leo Bastidas
Mike Spitzer
6 Referencias
GitHub – djhohnstein/SharpChromium: Tesina .NET 4.0 CLR para recuperar datos de Chromium, como cookies, historial e inicios de sesión guardados.
https://github.com/GhostPack/SharpDPAPI
https://www.netero1010-securitylab.com/detection/browser-credential-stealing-detection
https://4sysops.com/archives/audit-changes-in-the-windows-registry/
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn319104(v=ws.11)
https://attack.mitre.org/techniques/T1555/003/
Auditing File & Folder Access on Windows with Local Security Policy
https://fourcore.io/blogs/threat-hunting-browser-credential-stealing
https://www.cisa.gov/sites/default/files/publications/Capacity_Enhancement_Guide-Securing_Web_Browsers_and_Defending_Against_Malvertising-Guidance_for_Non-Federal_Organizations.pdf
https://www.infosecinstitute.com/resources/malware-analysis/redline-stealer-malware-full-analysis/
https://github.com/cybergoatpsyops/detections/tree/main/techniques/webCredentialHarvest
https://docs.splunk.com/Documentation/Splunk/9.2.2/SearchReference/Tags