.. | ||
README.md | ||
unpacking-binaries.md |
Algoritmos Criptográficos/Compresión
Algoritmos Criptográficos/Compresión
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección de exclusivos NFTs
- Obtén el oficial PEASS & HackTricks swag
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Identificación de Algoritmos
Si terminas en un código usando desplazamientos a la derecha e izquierda, XOR y varias operaciones aritméticas es muy posible que sea la implementación de un algoritmo criptográfico. Aquí se mostrarán algunas formas de identificar el algoritmo que se está utilizando sin necesidad de revertir cada paso.
Funciones API
CryptDeriveKey
Si se utiliza esta función, se puede encontrar qué algoritmo se está utilizando comprobando el valor del segundo parámetro:
Comprueba aquí la tabla de posibles algoritmos y sus valores asignados: https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id
RtlCompressBuffer/RtlDecompressBuffer
Comprime y descomprime un búfer de datos dado.
CryptAcquireContext
La función CryptAcquireContext se utiliza para adquirir un identificador para un contenedor de claves particular dentro de un proveedor de servicios criptográficos (CSP) particular. Este identificador devuelto se utiliza en llamadas a funciones de CryptoAPI que utilizan el CSP seleccionado.
CryptCreateHash
Inicia el hash de un flujo de datos. Si se utiliza esta función, se puede encontrar qué algoritmo se está utilizando comprobando el valor del segundo parámetro:
Comprueba aquí la tabla de posibles algoritmos y sus valores asignados: https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id
Constantes de código
A veces es muy fácil identificar un algoritmo gracias al hecho de que necesita usar un valor especial y único.
Si buscas la primera constante en Google, esto es lo que obtienes:
Por lo tanto, se puede asumir que la función descompilada es un calculador sha256.
Puedes buscar cualquiera de las otras constantes y obt