Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/guidobartoli/sherloq
Análisis ForenseEsteganografíaForensia DigitalCriptografíaAprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónTop en Esteganografía #5
GitHubguidobartoli/sherloq

sherloq

Un conjunto de herramientas forenses de imágenes digitales de código abierto

3.2k30513hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver Repositorio
Compartir

Sherloq
Un conjunto de herramientas forenses de imágenes digitales de código abierto

Introducción

"El análisis forense de imágenes es la aplicación de la ciencia de la imagen y la experiencia en el dominio para interpretar el contenido de una imagen y/o la imagen en sí misma en asuntos legales. Las subdisciplinas principales del análisis forense de imágenes con aplicaciones para el cumplimiento de la ley incluyen: Fotogrametría, Comparación Fotográfica, Análisis de Contenido y Autenticación de Imágenes." (Grupo de Trabajo Científico sobre Tecnologías de Imagen)

Sherloq es un proyecto de investigación personal sobre la implementación de un entorno completamente integrado para la informática forense de imágenes digitales. No está concebido como una herramienta automática que decida si una imagen es falsificada o no (¡esa herramienta probablemente nunca existirá...!), sino como un compañero para experimentar con varios algoritmos encontrados en los artículos y talleres de investigación más recientes.

Si bien muchas soluciones comerciales tienen precios minoristas elevados y a menudo están reservadas únicamente para las fuerzas del orden y agencias gubernamentales, este conjunto de herramientas pretende ser tanto un marco extensible como un punto de partida para cualquier persona interesada en realizar experimentos en esta aplicación particular del procesamiento de señales digitales.

Creo firmemente que la seguridad por oscuridad es la forma incorrecta de ofrecer cualquier tipo de servicio forense (por ejemplo, "¡Usando este software propietario le garantizo que esta foto es prístina... y usted tiene que confiar en mí!"). Siguiendo la filosofía del código abierto, todos deberían poder probar varias técnicas por sí mismos, adquirir conocimiento y compartirlo con la comunidad... ¡incluso mejor si contribuyen con mejoras en el código! :)

  • Historial
  • Características
  • Capturas de pantalla
  • Instalación
  • Estructura del proyecto
  • Actualizaciones
  • Bibliografía

Historial

La primera versión fue escrita en 2015 usando C++11 para construir una utilidad de línea de comandos con muchas opciones, pero pronto resultó ser demasiado engorrosa y no muy interactiva. Esa versión se podía compilar con CMake después de instalar las bibliotecas OpenCV, Boost y AlgLib. Este primer prototipo ofrecía alrededor del 80% de las funciones planificadas (consulte a continuación la lista completa).

Si bien también incluía algoritmos novedosos, la versión de 2017 agregó principalmente una GUI multiventana basada en Qt para brindar una mejor experiencia de usuario. Se podían mostrar múltiples análisis en pantalla y se implementó un visor rápido de zoom/desplazamiento para una navegación de imágenes más fácil. Ese proyecto se podía compilar con Qt Creator con Qt 5 y OpenCV 3 y cubría aproximadamente el 70% de las funciones planificadas.

Avance rápido hasta 2020, cuando decidí portar todo a Python (PySide2 + Matplotlib + OpenCV) para un desarrollo e implementación más fáciles. Si bien esta iteración apenas comienza y aún tengo que portar todo el código anterior a la nueva plataforma, creo que esta será la "forma" final del proyecto (siempre que alguien no se ofrezca como voluntario para desarrollar una bonita aplicación web).

Estoy feliz de compartir mi código y ponerme en contacto con cualquier persona interesada en mejorarlo o probarlo, pero tenga en cuenta que este repositorio no está destinado a distribuir un producto final, mi objetivo es solo rastrear públicamente el desarrollo de una herramienta educativa sin pretensiones, ¡así que espere errores, código sin pulir y funciones faltantes! ;)

Características

Esta lista contiene las funciones que el kit de herramientas (con suerte) proporcionará una vez que se alcance la etapa beta (NOTA: ¡las funciones que aparecen en cursiva dentro del programa aún no están implementadas!).

Interfaz

  • GUI moderna basada en Qt con gestión de múltiples ventanas de herramientas
  • Soporte para muchos formatos (JPEG, PNG, TIFF, BMP, WebP, PGM, PFM, GIF)
  • Visor de imágenes altamente receptivo con panorámica y zoom en tiempo real
  • Muchos algoritmos de última generación para probar de forma interactiva
  • Exportación de resultados visuales y textuales del análisis
  • Amplia ayuda en línea con explicaciones y tutoriales

Herramientas

General

  • Imagen Original: muestra la imagen de referencia sin alterar para inspección visual
  • Resumen del Archivo: recupera información del archivo físico, hashes criptográficos y perceptuales
  • Editor Hex: abre un editor hexadecimal externo para mostrar y editar bytes sin procesar
  • Búsqueda Similar: navega por servicios de búsqueda en línea para encontrar imágenes visualmente similares

Metadatos

  • Estructura de Cabecera: volcar la estructura de la cabecera del archivo y mostrar una vista interactiva
  • Volcado EXIF Completo: escanear los metadatos del archivo y recopilar toda la información disponible
  • Análisis de Miniatura: extraer la miniatura incrustada opcional y compararla con la original
  • Datos de Geolocalización: recuperar datos de geolocalización opcionales y mostrarlos en un mapa mundial

Inspección

  • Lupa de Realce: lupa con mejoras para identificar mejor las falsificaciones
  • Histograma de Canal: mostrar canales de color individuales o histograma interactivo compuesto RGB
  • Ajustes Globales: aplicar ajustes de imagen estándar (brillo, tono, saturación, ...)
  • Comparación de Referencia: abrir una vista doble sincronizada para comparar con otra imagen

Detalle

  • Gradiente de Luminancia: analizar variaciones de brillo horizontales/verticales en toda la imagen
  • Filtro de Borde Eco: utilizar filtros derivados para revelar regiones artificiales fuera de foco
  • Umbral Wavelet: reconstruir la imagen con diferentes umbrales de coeficientes wavelet
  • División de Frecuencia: dividir la luminancia de la imagen en componentes de alta y baja frecuencia

Colores

  • Gráficos RGB/HSV: mostrar gráficos 2D y 3D interactivos de valores de píxeles RGB y HSV
  • Conversión de Espacio: convertir canales RGB en espacios HSV/YCbCr/Lab/Luv/CMYK/Gris
  • Proyección PCA: utilizar PCA de color para proyectar píxeles en los componentes más destacados
  • Estadísticas de Píxeles: calcular valores RGB mínimo/máximo/promedio para cada píxel

Ruido

  • Separación de Ruido: estimar y extraer diferentes tipos de componentes de ruido de la imagen
  • Desviación Mín/Máx: resaltar píxeles que se desvían de las estadísticas mín/máx basadas en bloques
  • Valores de Planos de Bits: mostrar planos de bits individuales para encontrar patrones de ruido inconsistentes
  • Bloqueo Wavelet: muestra los niveles de ruido promedio en una imagen para encontrar inconsistencias de ruido
  • Identificación PRNU: explotar el patrón de ruido del sensor introducido por diferentes cámaras

JPEG

  • Estimación de Calidad: extraer tablas de cuantización y estimar la última calidad JPEG guardada
  • Análisis de Nivel de Error: mostrar la diferencia a nivel de píxel contra niveles de compresión fijos
  • Compresión Múltiple: utilizar un modelo de aprendizaje automático para detectar compresión múltiple
  • Mapas Fantasma JPEG: resaltar rastros de diferentes niveles de compresión en imágenes de diferencia

Manipulación

  • Mejora de Contraste: analizar la distribución de color para detectar mejoras de contraste
  • Falsificación Copiar-Mover: utilizar descriptores de características invariantes para la detección de áreas clonadas
  • Empalme Compuesto: explotar estadísticas DCT para la detección automática de zonas de empalme
  • Remuestreo de Imagen: estimar la interpolación de píxeles 2D para detectar rastros de remuestreo

Varios

  • Filtrado Mediano: detectar rastros de procesamiento dejados por el filtrado mediano no lineal
  • Mapa de Iluminante: estimar la dirección de luz local de la escena en superficies 3D estimadas
  • Píxeles Muertos/Calientes: detectar y corregir píxeles muertos/calientes causados por imperfecciones del sensor
  • Decodificador de Estereogramas: decodificar imágenes 3D ocultas en autoestereogramas de visión cruzada

Capturas de pantalla

General
General: Imagen Original, Editor Hex, Resumen del Archivo, Búsqueda Similar

Metadata
Metadatos: Volcado EXIF Completo, Estructura de Cabecera

Inspection
Inspección: Lupa de Realce, Histograma de Canal, Comparación de Referencia

Detail
Detalle: Gradiente de Luminancia, Filtro de Borde Eco, Umbral Wavelet, División de Frecuencia

Colors
Colores: Gráficos RGB/HSV, Conversión de Espacio, Proyección PCA, Estadísticas de Píxeles

Noise
Ruido: Separación de Señal, Desviación Mín/Máx, Valores de Planos de Bits

JPEG
JPEG: Estimación de Calidad, Análisis de Nivel de Error

Tampering
Manipulación: Mejora de Contraste, Falsificación Copiar/Mover, Empalme Compuesto, Filtrado Mediano

Instalación

[1/4] Descargar código fuente

Clona el repositorio actual en una carpeta local y cambia el directorio actual a ella.

[2/4] Crear entorno virtual

Sherloq usa Python 3.11. La configuración recomendada utiliza uv porque proporciona el mismo flujo de trabajo en Linux, macOS y Windows, puede instalar Python cuando sea necesario y mantiene el entorno del proyecto en la carpeta local .venv.

Instala uv siguiendo la guía de instalación oficial, luego crea el entorno desde la carpeta raíz de Sherloq:

root@kitploit:~
$ uv venv --python 3.11

El repositorio también incluye un archivo .python-version, por lo que los futuros comandos uv usarán Python 3.11 por defecto.

[3/4] Instalar dependencias

root@kitploit:~
$ uv pip install -r gui/requirements.txt

Algunas herramientas experimentales basadas en IA necesitan paquetes adicionales. Instálalos solo si planeas usar esas herramientas:

root@kitploit:~
$ uv pip install -r gui/requirements_ai_solutions.txt

[4/4] Iniciar programa

Sherloq se puede iniciar desde la raíz del repositorio. El paquete de la aplicación resuelve iconos, modelos y herramientas incluidas a través de rutas centralizadas del proyecto.

Linux/macOS

root@kitploit:~
$ source .venv/bin/activate
$ python -m gui.sherloq_app

Windows PowerShell

root@kitploit:~
> .venv\Scripts\Activate.ps1
> python -m gui.sherloq_app

También puedes usar el lanzador de compatibilidad de la raíz del repositorio:

root@kitploit:~
$ python sherloq.py

NOTA para usuarios de Linux: si se muestra este error:

root@kitploit:~
qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Ejecuta este comando desde la terminal: sudo apt install -y libxcb-cursor-dev

Estructura del proyecto

La aplicación Python Qt ahora reside en el paquete importable gui/sherloq_app:

  • main.py: punto de entrada de la aplicación Qt y ventana principal.
  • core/: ayudantes de procesamiento de imágenes compartidos, como utilidades JPEG y carga de archivos.
  • ui/: widgets Qt reutilizables, visores, tablas y el árbol de herramientas.
  • tools/: widgets de análisis agrupados por categoría de caja de herramientas (general, metadata, inspection, detail, colors, noise, jpeg, tampering, various).
  • paths.py: acceso centralizado a iconos, modelos y ayudantes nativos incluidos, por lo que el código ya no depende de iniciarse desde .

Los activos grandes incluidos y los componentes de investigación de terceros permanecen en gui/icons, gui/models, gui/noiseprint, gui/pyexiftool, gui/butteraugli, gui/ssimulacra y el opcional gui/TruFor_main.

Consulta docs/project-structure.md para obtener un mapa orientado a colaboradores.

Actualizaciones

Cuando se publique una nueva versión, actualiza la copia de trabajo local con Git o descargando el código fuente más reciente, luego actualiza el entorno desde la carpeta raíz de Sherloq:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements.txt

Si instalaste las dependencias opcionales de IA, actualízalas también:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements_ai_solutions.txt

Recursos recomendados para comenzar

  • Artículo con ejemplos prácticos y análisis reflexivo para técnicas que desde entonces se han implementado en Sherloq: "A Picture's Worth: Digital Image Analysis and Forensics" (Neal Krawetz) [paper]
  • Tesis con ejemplos prácticos y análisis reflexivo para usar las herramientas "JPEG Ghosts", "Image Resampling" y "Noise Wavelet Blocking" implementadas en Sherloq. Este trabajo también ofrece ideas sobre el uso y la confiabilidad de los enfoques impulsados por IA en la Informática Forense de Imágenes Digitales. (UHstudent) [paper]

Referencias para los algoritmos implementados en Sherloq

  • Image Resampling: "Exposing Digital Forgeries by Detecting Traces of Re-sampling" (Alin C. Popescu and Hany Farid) [paper]
  • JPEG Ghosts: "Exposing Digital Forgeries from JPEG Ghosts" (H. Farid) [paper]
  • Noise Wavelet Blocking: "Using noise inconsistencies for blind image forensics" (Babak Mahdian and Stanislav Saic) [paper]

Bibliografía

  • "Noiseprint: a CNN-based camera model fingerprint" (Davide Cozzolino, Luisa Verdoliva) [website]
  • "Two Improved Forensic Methods of Detecting Contrast Enhancement in Digital Images" (Xufeng Lin, Xingjie Wei and Chang-Tsun Li) [paper]
Descargar herramienta
gui