
Clonio es una aplicación diseñada para clonar cookies de Chromium.
Desde Chromium 80 en adelante, las cookies se cifran mediante AES-256 GCM, con una clave de estado que se almacena en el archivo de estado local. Esta clave de estado se cifra mediante DPAPI. Este es un cambio con respecto a las versiones anteriores, que usaban DPAPI para cifrar cada elemento de cookie en la base de datos de cookies. Lo que esto significa es que si tiene la clave de estado, siempre podrá descifrar la base de datos de cookies sin conexión, sin necesidad de acceso continuo a las claves DPAPI.
Básicamente, esto hace que las bases de datos de cookies sean «portátiles», lo que significa que se pueden mover de una máquina a otra, siempre que haya volcado la clave de estado. Las propias cookies deben volver a cifrarse cuando se importan, ya que las claves de estado diferirán en cada perfil de usuario y máquina. Esto se puede hacer utilizando el mismo proceso que el descifrado, primero descifrando la clave de estado del navegador «objetivo» y luego volviendo a cifrar cada elemento con la nueva clave.
El proyecto está escrito en C# y tiene dos componentes separados. El primer componente, chlonium.exe
es el colector binario. Simplemente descifra la clave de estado y la imprime. Tome nota de esta clave y podrá descifrar las cookies en el futuro descargando el Cookies
archivo de base de datos siempre que necesite cookies actualizadas. De forma predeterminada, intentará descifrar la clave de estado de Chrome. Si desea volcar la clave de estado para otro navegador (por ejemplo, Edge), puede especificar una ruta a la clave.
Por ejemplo:
Chlonium.exe “c:\usuarios\usuario\AppData\Local\Microsoft\Edge\User Data\Local State”
[+] Clave de estado = 3Cms3YxFXVyJRUbulYCnxqY2dO/jubDkYBQBoYIvqfc=
El segundo componente, ChloniumUI.exe
es la herramienta «importador». Esto se encarga de descifrar un archivo de base de datos de cookies determinado con una clave de estado determinada, volver a cifrar los valores con la clave de estado de los usuarios actuales e importar las cookies en el navegador elegido. Ejecuta esto en la máquina en la que deseas importar las cookies.
Para usarlo, ejecute el ChloniumUI.exe
ejecutable. Ingrese la clave de estado previamente extraída, elija el Cookies
archivo que desea importar y seleccione el navegador en el que desea importar las cookies. Ahora haga clic en «Importar cookies» y se importarán las cookies.
ChloniumUI
Actualmente es compatible con tres navegadores basados en Chromium: Edge, Chrome y Vivaldi. Se pueden agregar navegadores adicionales en Browsers.cs
. Esto agrega el beneficio no deseado de poder importar un archivo de cookie de Edge en Chrome, o viceversa (por ejemplo), aunque probablemente no sea una buena idea dado que el agente de usuario no coincidirá.
Nota IMPORTANTE: Al importar el archivo de cookies en su navegador, ¡todas las cookies antiguas se borran! Se copia una copia de seguridad en el directorio actual (con la marca de tiempo correspondiente). Si necesita restaurar las cookies anteriores, simplemente copie el archivo de copia de seguridad en el Cookies
expediente.
Por qué
Herramientas como Mimikatz y SharpChromium ya tienen la capacidad de volcar las cookies de Chrome 80, ¿por qué otra herramienta?
Esta herramienta está destinada específicamente a facilitar la importar cookies en otro navegador. Si bien estas herramientas hacen un gran trabajo al descargar las cookies de Chromium (¡y más!), quería tener algo que me permitiera importar fácilmente a otro navegador. Existen complementos de administración de cookies de terceros, pero siempre los he encontrado complicados y propensos a fallar. CloniumUI
está diseñado para facilitar este proceso al importar las cookies directamente a la base de datos sqlite de su navegador.
Si bien este proyecto viene con el chlonium.exe
colector, que ayuda a descargar la clave de estado, esto es realmente solo un ejemplo. Otras herramientas como Mimikatz también descargarán la clave de estado por usted, de una manera potencialmente más sigilosa (dependiendo de su entorno operativo, método de ejecución, etc.). Además, SharpDPAPI le permitirá descifrar el archivo de clave de estado de Chromium si tiene claves de estado DPAPI, contraseña actual o clave de respaldo de dominio, lo que le permite volcar cookies de forma remota a través de SMB.
Cuando realizo Red Teaming, a veces necesito volcar las cookies de un usuario varias veces durante un período prolongado (por ejemplo, diariamente/semanalmente). El uso de un ensamblado .NET, DLL reflectante u otra técnica de ejecución en memoria para extraer cookies individuales del archivo de cookies directamente en el sistema de destino no es necesario y expone al operador a un mayor riesgo de detección. En su lugar, puede simplemente volcar la clave de estado una vez y copiar el Cookies
archivo de base de datos fuera cada vez que necesite cookies nuevas, sin necesidad de ejecución adicional.
Importación/exportación de contraseñas
ChloniumUI
también admite la importación y exportación de contraseñas. Para utilizar esta función, simplemente suministre el Login Data
ruta de la base de datos en lugar de la Cookies
db, junto con la clave de estado, y seleccione el navegador en el que desea importarlos (para la exportación, esto no importa). Esto le permite exportar contraseñas en texto sin formato a un archivo o importarlas a su navegador. Al igual que con las cookies, puede importar contraseñas de Chrome a Edge, contraseñas de Edge a Vivaldi, etc.
Descifrado de clave de estado sin conexión
Chlonium admite el descifrado de clave de estado sin conexión mediante el cual puede descifrar la clave de estado de los usuarios sin conexión si tiene todos de los siguientes archivos:
- El archivo de estado local de:
C:\Users\
\AppData\Local\ \User Data\Local State - Los archivos de la clave maestra DPAPI de:
C:\Users\
\AppData\Roaming\Microsoft\Protect\ \
y uno de los siguientes:
- Archivo .pvk de la clave de copia de seguridad del dominio (p. ej., de NTDS.dit)
- Clave de respaldo de dominio en base64 (por ejemplo, de Mimikatz/SharpDPAPI
LsaRetrievePrivateData
método API) - la contraseña del usuario
Ahora simplemente proporcione estos valores en la pestaña «Descifrado de clave de estado sin conexión», y Chlonium intentará descifrar la clave de estado cifrada descifrando primero las claves maestras DPAPI (usando la clave o contraseña de respaldo) y luego usando estas claves para descifrar la clave de estado. Una vez que se descifra la clave estatal, se puede usar en la pestaña «Importar o exportar base de datos» para recuperar cookies/contraseñas.
Nota de uso: Al usar la contraseña del usuario para descifrar la clave maestra DPAPI, Chlonium primero intentará extraer el SID del usuario de la BK-
archivo desde dentro de la carpeta de la clave maestra DPAPI. Si esto falla (o si el archivo no existe), intentará obtener el SID del nombre de la carpeta de la clave maestra de DPAPI (que, de manera predeterminada, tendrá el nombre del SID del usuario). Si ha cambiado el nombre de la carpeta o no tiene una copia del archivo BK, no podrá descifrar la clave maestra con una contraseña.
Esta función hace uso de los excelentes proyectos SharpChrome y SharpDPAPI de @harmj0y. Todo el crédito va a los autores originales de SharpDPAPI.
Detección
Establecer una SACL en Chrome Local State
y Cookies
archivos (así como otros archivos confidenciales como Login Data
y History
). Busque procesos sospechosos (por ejemplo, no relacionados con el navegador) que abran cualquiera de estos archivos.
Eche un vistazo a esta excelente publicación de blog de @cryps1s sobre la configuración de SACL para la detección.
Para los proveedores de AV que usan un controlador de filtro de sistema de archivos, considere bloquear los procesos no relacionados con el navegador para que no abran estos archivos. por ejemplo, PowerShell abriendo el Cookies
expediente.