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
Anvil — Anvil es una herramienta de evaluación de superficies de ataque que prioriza el tiempo de ejecución para aplicaciones de cliente grueso de Windows, creada para probadores de penetración e investigadores de seguridad que realizan evaluaciones de seguridad de aplicaciones específicas. Cubre múltiples clases de ataque en una única ejecución focalizada. | Kitploit
Herramientas/GitHubGitHub/shellkraft/anvil
Escalada de PrivilegiosReconocimientoAnálisis de VulnerabilidadesExplotaciónPost-ExplotaciónPruebas de PenetraciónAnálisis de BinariosRed Teaming
GitHubshellkraft/anvil

Anvil

Ver Repositorio
374hace 5 mesesRevisado 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 →

Acerca de

Anvil es una herramienta de evaluación de superficies de ataque que prioriza el tiempo de ejecución para aplicaciones de cliente grueso de Windows, creada para probadores de penetración e investigadores de seguridad que realizan evaluaciones de seguridad de aplicaciones específicas. Cubre múltiples clases de ataque en una única ejecución focalizada.

Compartir

logotipo


Escalada de privilegios y evaluación de superficie de ataque en tiempo de ejecución para clientes pesados de Windows.

Anvil es una herramienta de escalada de privilegios y evaluación de superficie de ataque basada en tiempo de ejecución para aplicaciones cliente pesadas de Windows. En lugar de escanear el sistema de archivos a ciegas, combina la captura de Procmon con Windows AccessCheck para informar solo aquellas rutas que son observadas en tiempo de ejecución y confirmadas como escribibles por usuarios estándar, eliminando el ruido de falsos positivos que afecta a las herramientas de enumeración genéricas.


Contenido

  • Características Clave
  • Cómo Funciona
  • Módulos
  • Requisitos
  • Herramientas Sysinternals
  • Instalación
  • Distribución
  • Uso
  • Ejemplos
  • Salida
  • Modelo de Severidad
  • Filtros
  • Aviso Legal

Características Clave

La mayoría de las herramientas de evaluación de clientes pesados cubren una o dos clases de ataque. Anvil está construido en torno a la idea de que la observación en tiempo de ejecución, la explotabilidad verificada por ACL y una amplia superficie de ataque deberían coexistir en una misma ejecución dirigida, con un pipeline de compuertas que mantenga la salida procesable.

Pipeline de Eliminación de Falsos Positivos

Cada candidato pasa por cuatro compuertas secuenciales antes de ser reportado.

Compuertas Duras

  • La integridad del proceso debe ser Alta o SYSTEM IL
  • La ruta no debe estar dentro de System32, SysWOW64 o Program Files
  • El directorio debe ser escribible por un usuario estándar — verificado mediante la API AccessCheck de Windows

Compuertas de Lógica de Módulo

  • Enlace simbólico: banderas de disposición (Supersede, OverwriteIf, etc.) + guarda de escritura entre usuarios
  • COM: CLSID de registro correlacionado con una ruta DLL faltante o escribible
  • Binario: orden PATH verificado — solo entradas escribibles que aparecen antes de System32
  • Ruta sin comillas: directorios fantasma intermedios confirmados como escribibles, rutas kernel .sys excluidas

Cómo Funciona

  1. Resolución del Objetivo
    La herramienta resuelve el objetivo a una ruta de ejecutable (desde --exe, --service o --pid). Si es un servicio, se recupera ServiceInfo con el PID y estado actuales.

  2. Captura con Procmon

    • Para un servicio, se inicia Procmon, luego el servicio se reinicia limpiamente (con esperas de transición de estado). Se captura el nuevo PID.
    • Para un EXE normal, el proceso se lanza con integridad Media (usando un token de Explorer duplicado) para simular un usuario estándar. Se registra el PID.

    El nivel de integridad del proceso se lee inmediatamente después del lanzamiento (mientras el proceso está vivo) y se almacena en el contexto.

  3. Análisis Filtrado por Módulo
    Cada módulo solicita una exportación CSV filtrada de Procmon usando su propio filtro .pmc (almacenado en filters/). El CSV se analiza y se aplican varias compuertas:

    • Integridad ≥ Alta
    • Ruta no en un directorio protegido del sistema
    • Directorio escribible por un usuario estándar (AccessCheck)
    • Lógica adicional específica del módulo (por ejemplo, disposición para enlaces simbólicos, correlación registro-archivo para COM)
  4. Correlación Estática
    El módulo com realiza una pasada estática adicional: escanea el binario objetivo en busca de CLSID incrustados y verifica cada uno contra HKLM y HKCU para descubrir oportunidades de secuestro no ejercidas durante la ventana de captura. Estas se marcan con una etiqueta .


Arquitectura

root@kitploit:~
flowchart TB
    %% Phase 1
    subgraph Phase1["Phase 1: Target & Runtime Discovery"]
        TR["Target Resolver<br/>--exe / --service / --pid"] -->
        IL["Integrity Gate<br/>Medium-IL launch / Service restart"] -->
        PM["Procmon Engine<br/>Runtime FS / Reg / Pipe events"]
    end

    %% Phase 2
    subgraph Phase2["Phase 2: Signal Reduction"]
        direction LR
        PF["Per-Module PMC Filters<br/>High-signal traces only"] -->
        CSV["Filtered CSV Export"]
    end

    %% Phase 3
    subgraph Phase3["Phase 3: Exploitability Gates"]
        HG["Hard Gates<br/>High-Integrity target<br/>Not protected path"] -->
        ACL["AccessChk Validation<br/>Writable by standard user"] -->
        LG["Logic Gates<br/>Module-specific rules"]
    end

    %% Phase 4
    subgraph Phase4["Phase 4: Correlation"]
        RT["Runtime Findings"]
        ST["Static Correlation<br/>COM: CLSID binary scan / registry"]
    end

    %% Phase 5
    subgraph Phase5["Phase 5: Reporting"]
        SV["Severity Engine<br/>P1–P5"] --> OUT["Console Output"]
        SV --> JSON["JSON Report"]
        SV --> HTML["HTML Report"]
    end

    %% Cross-phase flow
    PM --> PF
    CSV --> HG
    LG --> RT
    ST -.-> RT
    RT --> SV

    %% Styling
    classDef p1 fill:#0f2a44,stroke:#4cc9f0,color:#e6f1ff
    classDef p2 fill:#2b193d,stroke:#f72585,color:#fde8f3
    classDef p3 fill:#1f2d1c,stroke:#7ae582,color:#eaf7ea
    classDef p4 fill:#3a1f1f,stroke:#ffb703,color:#fff3d6
    classDef p5 fill:#0b2e2a,stroke:#00f5d4,color:#e6fffb

    class Phase1 p1
    class Phase2 p2
    class Phase3 p3
    class Phase4 p4
    class Phase5 p5
    linkStyle default stroke:#9aa4b2,stroke-width:2px

Comparación



Módulos

Todos los módulos basados en Procmon requieren un archivo de filtro .pmc correspondiente en el directorio filters/ (ver Filtros).


Requisitos

Python

  • Python 3.8 o posterior
  • Debe ejecutarse como Administrador
  • Windows 10 / Server 2016 o más reciente

Paquetes de Python

Anvil instala automáticamente sus dos dependencias en la primera ejecución. También puedes instalarlas manualmente:

root@kitploit:~
pip install rich pefile
root@kitploit:~
pip install rich>=13.0 pefile>=2023.2.7

Herramientas Sysinternals

Anvil utiliza tres binarios de Sysinternals.

Orden de Resolución

En cada ejecución, Anvil resuelve cada herramienta usando la siguiente prioridad:

  1. Bandera explícita — --procmon, --handle o --accesschk (ver más abajo)
  2. Caché de registro — HKCU\Software\Anvil (escrita en la primera resolución exitosa)
  3. PATH — búsqueda estándar tipo where
  4. Descarga automática — obtenida de live.sysinternals.com y almacenada en %LOCALAPPDATA%\Anvil\sysinternals\

Una vez que una herramienta se resuelve por cualquier vía, su ruta se escribe en la caché de registro. Las ejecuciones posteriores omiten los pasos 1–3 por completo y van directamente a la ruta en caché.

Fallo de Descarga

Si una herramienta no se puede descargar (sin internet, cortafuegos o proxy), Anvil imprime un error estructurado y sale inmediatamente. Se muestra un mensaje de error listando las herramientas faltantes y la bandera a utilizar.

Proporcionar Binarios Manualmente

Proporciona la ruta a cualquier binario mediante su bandera. Anvil lo copiará en %LOCALAPPDATA%\Anvil\sysinternals\ y escribirá la ruta en la caché de registro — la bandera nunca necesitará usarse de nuevo después de la primera ejecución.

root@kitploit:~
python anvil.py --exe "C:\App\target.exe" --procmon   "D:\Tools\Procmon64.exe" --handle    "D:\Tools\handle.exe" --accesschk "D:\Tools\accesschk.exe"

Instalación

root@kitploit:~
# Clonar el repositorio
git clone https://github.com/shellkraft/Anvil.git
cd Anvil

# Ejecutar — las dependencias se instalan automáticamente en el primer análisis
python.exe anvil.py

Consejo: Inicie siempre su terminal con Ejecutar como Administrador antes de ejecutar Anvil.


Distribución

Compilar a un ejecutable independiente

Requiere PyInstaller (pip install pyinstaller):

root@kitploit:~
python -m PyInstaller --onefile --console --add-data "filters;filters" --add-data "modules/logo.png;." --icon .\modules\logo.ico --name Anvil anvil.py

El binario de salida estará en dist\Anvil.exe. No se requiere instalación de Python en la máquina objetivo.

Nota: Windows SmartScreen puede bloquear el ejecutable compilado en la primera ejecución porque no está firmado.

Binario precompilado

Un binario precompilado Anvil.exe está disponible en la página de Lanzamientos — si confiar en binarios aleatorios de internet está dentro de su modelo de amenazas.

VersiónSHA-256VirusTotal
V1.0.00ecf5a62...4/72

SHA-256 se puede verificar con certutil -hashfile Anvil.exe SHA256 (Windows) o sha256sum Anvil.exe (Linux).


Uso

root@kitploit:~
python anvil.py [--exe RUTA | --service NOMBRE | --pid PID] [opciones]

Objetivo (uno requerido)

BanderaDescripción
--exe RUTAEjecutable objetivo. Se lanza con integridad Media para la captura de Procmon.
--service NOMBRENombre del servicio de Windows. El ejecutable se resuelve desde el registro; el servicio se reinicia para capturar el inicio.
--pid PIDAdjuntarse a un proceso ya en ejecución. Procmon captura la actividad en curso.

Selección de Módulos

BanderaPor DefectoDescripción
--modules LISTAallLista separada por comas de los módulos a ejecutar.

Nombres de módulos: dll, com, registry, binary, configs, installdir, memory, symlink, unquoted, pesec, pipes

Rutas de Sysinternals

Captura

BanderaPor DefectoDescripción
--procmon-runtime SEG30Ventana de captura de Procmon en segundos. Aumentar para aplicaciones de arranque lento.

Salida


Ejemplos

Análisis básico de una aplicación de escritorio:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --report report.html

Ventana de captura más larga para una aplicación de arranque lento:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --procmon-runtime 60 --scan-install-dir

Apuntar a un servicio de Windows:

root@kitploit:~
python anvil.py --service MyAppSvc --modules dll,binary,unquoted,registry

Adjuntarse a un proceso ya en ejecución:

root@kitploit:~
python anvil.py --pid 4872 --report report.html --verbose

Ejecutar solo módulos específicos:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules dll,symlink,unquoted

Escanear memoria del proceso en busca de cadenas personalizadas adicionales:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules memory --memory-strings "InternalSecret,DevPassword"

Máquina aislada — proporcionar Sysinternals manualmente (copiado una vez):

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --procmon "E:\Sysint\Procmon64.exe" --handle "E:\Sysint\handle.exe" --accesschk "E:\Sysint\accesschk.exe"

Salida

Terminal

Código de colores por severidad con bloques opcionales de detalle --verbose. Requiere el paquete rich (auto-instalado).

Imagen

JSON (--report findings.json)

Matriz legible por máquina de objetos de hallazgo:

root@kitploit:~
[
  {
    "severity": "P1",
    "module": "DLL Hijacking",
    "message": "[System→User] Phantom DLL: version.dll",
    "detail": "DLL name   : version.dll\nAttempted  : C:\\ProgramData\\MyApp\\version.dll\n..."
  }
]

HTML (--report report.html) [Recomendado]

Reporte autocontenido de un solo archivo con:

  • Resumen ejecutivo y desglose de severidad
  • Tablas de hallazgos por módulo
  • Filtrado por severidad o clase de vulnerabilidad
  • Detalle completo al expandir
  • Metadatos del análisis (objetivo, marcas de tiempo, nivel de integridad)
Imagen

Modelo de Severidad


Filtros

Todos los archivos de filtro .pmc están incluidos en el directorio filters/ del repositorio — no se requiere configuración. Los módulos basados en Procmon los recogerán automáticamente.

Recrear un filtro

Si un archivo de filtro se pierde o corrompe, recréelo en Procmon usando las reglas anteriores: Filter → Filter… para configurar las condiciones, luego File → Export Configuration… y guarde en filters/<nombre>.pmc.

Anvil recogerá automáticamente el archivo .pmc en la próxima ejecución para ese módulo.


Aviso Legal

Anvil está diseñado para investigación de seguridad, caza de bugs y pruebas de penetración autorizadas. Úselo solo en sistemas que posea o para los que tenga permiso explícito por escrito para evaluar.

Notas operativas

  • Anvil reinicia servicios durante la captura — esto interrumpe brevemente el servicio objetivo en la máquina evaluada.
  • El módulo de memoria se adjunta a un proceso vivo; asegúrese de que esto sea aceptable en el entorno objetivo antes de ejecutarlo.
  • Se requiere ejecución como Administrador — asegúrese de que esto esté alineado con las reglas de enfrentamiento para la evaluación.
Descargar herramienta
[Correlación Estática]
  • Reporte
    Los hallazgos se imprimen en la terminal (con código de colores) y opcionalmente se escriben en JSON o un reporte HTML independiente.

  • CaracterísticaAnviLSpartacusRobberwinPEASProcmon
    Descubrimiento automatizado✅✅✅✅❌
    Descubrimiento verificado en tiempo de ejecución✅❌❌❌✅
    Detección de DLL fantasma✅✅❌❌◐
    Análisis consciente del orden de búsqueda✅❌❌❌❌
    Validación de escritura basada en ACL✅ (AccessChk)◐◐Básico❌
    Filtrado de señal por módulo✅ (filtros .pmc)❌❌❌❌
    Eliminación de falsos positivos (pipeline con compuertas)✅❌❌❌❌
    Reinicio de servicio y recaptura de PID✅❌❌❌❌
    Simulación de usuario con integridad Media✅❌❌❌❌
    Secuestro de DLL (consciente de cliente pesado)✅❌❌◐❌
    Correlación de secuestro COM✅❌❌❌❌
    Análisis de ACL de tuberías con nombre / suplantación✅❌❌❌❌
    Detección de abuso de enlaces simbólicos / uniones✅❌◐◐❌
    Secretos en memoria (escaneo de proceso vivo)✅❌❌◐❌
    Análisis de seguridad / mitigaciones de PE✅❌❌◐❌
    Evaluación de escalada de privilegios (no explotación)✅✅✅❌❌
    Explotación automatizada❌✅✅❌❌
    Puntuación de confianza / severidad✅ (P1–P5)❌❌❌❌
    Análisis específico del objetivo (exe / svc / pid)✅❌❌❌✅
    Reportes estructurados (JSON / HTML)✅❌❌TXT❌
    Distribución binaria autocontenida✅✅✅✅✅
    MóduloBanderaQué Verifica
    Secuestro de DLLdllEventos CreateFile para .dll — DLL fantasma y DLLs cargadas en directorios escribibles
    Secuestro COMcomClaves de registro de servidores COM escribibles por usuarios estándar; escaneo binario de ProgIDs
    Secuestro BinariobinaryEventos CreateFile para .exe — plantación de EXE fantasma y directorios EXE escribibles
    Configuraciones InsegurasconfigsAcceso a archivos de configuración (.ini, .xml, .json, .yaml, etc.) desde directorios escribibles
    Directorio de InstalacióninstalldirACL raíz, EXEs con manifiesto de elevación y subdirectorios escribibles
    Cadenas en MemoriamemoryEscaneo de memoria de proceso vivo en busca de credenciales, tokens, claves API, JWT, cadenas de conexión
    Ataques de Enlace SimbólicosymlinkVectores de unión y enlace simbólico en rutas temporales / appdata escribibles por el usuario
    Ruta de Servicio Sin ComillasunquotedServicios con ImagePaths sin comillas donde los directorios fantasma intermedios son escribibles
    Escalada de Privilegios por RegistroregistryClaves de registro escribibles por usuarios estándar que controlan el comportamiento del servicio/aplicación
    Indicadores de Seguridad PEpesecFalta de ASLR, DEP, CFG, SafeSEH y Authenticode en binarios objetivo
    ACL de Tubería con NombrepipesTuberías con nombre con DACL permisivos o ACEs capaces de suplantación
    BinarioUsado porDescarga
    Procmon64.exeTodos los módulos basados en ProcmonProcessMonitor.zip
    handle.exeMódulo de ACL de tubería con nombreHandle.zip
    accesschk.exeMódulo de ACL de tubería con nombre — enumeración DACL de tuberíasAccessChk.zip
    BanderaDescripción
    --procmon RUTARuta a Procmon64.exe. Copiado a %LOCALAPPDATA%\Anvil\sysinternals\
    --handle RUTARuta a handle.exe. Copiado a %LOCALAPPDATA%\Anvil\sysinternals\
    --accesschk RUTARuta a accesschk.exe. Copiado a %LOCALAPPDATA%\Anvil\sysinternals\
    BanderaPor DefectoDescripción
    --report ARCHIVO—Generar un reporte — la extensión determina el formato: .json para JSON, .html (o cualquier otra) para un reporte HTML autocontenido.
    --verboseoffImprimir bloques de detalle completos de los hallazgos en la terminal.
    --no-coloroffDeshabilitar la salida de color ANSI.
    --skip-authenticodeoffOmitir las comprobaciones de firma Authenticode (más rápido para directorios de instalación grandes).
    --scan-install-diroffIncluir todas las DLLs en el directorio de instalación en las comprobaciones de seguridad PE.
    --memory-strings STR,...—Cadenas adicionales separadas por comas para buscar en la memoria del proceso.
    NivelEtiquetaCVSS TípicoSignificado
    P1Crítico8.0 – 8.8Escalada de privilegios activada automáticamente (sin interacción del usuario)
    P2Alto7.0 – 7.9Explotable con interacción del usuario o activador más débil
    P3Mala Configuración4.0 – 6.9Rutas sin comillas, mitigaciones faltantes — no explotable directamente
    P4Bajo Impacto0.1 – 3.9Vectores informativos con impacto limitado en el mundo real
    P5InformativoN/AContexto y observaciones, no vulnerabilidades
    ArchivoMóduloReglas Clave del Filtro
    filters/dll.pmcSecuestro de DLLOperation is CreateFile, Path ends with .dll
    filters/binary.pmcSecuestro BinarioOperation is CreateFile, Path ends with .exe
    filters/config.pmcConfiguraciones InsegurasOperation is CreateFile (filtro de extensión en código)
    filters/com.pmcSecuestro COMOperation is RegQueryKey, Path contains HKLM
    filters/symlink.pmcAtaques de Enlace SimbólicoOperation is CreateFile