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
Trawler — Script de PowerShell que ayuda a los respondedores de incidentes a descubrir posibles mecanismos de persistencia del adversario. | Kitploit
Herramientas/GitHubGitHub/joeavanzato/trawler
Herramientas DefensivasMecanismos de PersistenciaAnálisis ForenseForensia DigitalRespuesta a Incidentes
GitHubjoeavanzato/trawler

Trawler

Script de PowerShell que ayuda a los respondedores de incidentes a descubrir posibles mecanismos de persistencia del adversario.

Ver Repositorio
340381hace 1 añoRevisado 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 →
Compartir

Dragado de Windows para Persistencia

¿Qué es?

Trawler es un script de PowerShell diseñado para ayudar a los respondedores de incidentes a descubrir posibles indicadores de compromiso en hosts Windows, centrado principalmente en mecanismos de persistencia que incluyen tareas programadas, servicios, modificaciones del registro, elementos de inicio, modificaciones binarias y más.

Actualmente, Trawler puede detectar la mayoría de las técnicas de persistencia señaladas específicamente por MITRE y Atomic Red Team, y se agregan nuevas detecciones de forma regular.

Características principales

  • Escaneo del sistema operativo Windows para una variedad de técnicas de persistencia (enumeradas a continuación)
  • Salida CSV con técnica MITRE y metadatos de inicio de investigación
  • Documentación de guía de análisis y remediación (https://github.com/joeavanzato/Trawler/wiki/Analysis-and-Remediation-Guidance)
  • Asignación dinámica de riesgo para cada detección
  • Listas de permitidos integradas para configuraciones comunes de Windows que abarcan Windows 10/Server 2012|2016|2019|2022 para reducir el ruido
  • Captura de metadatos de persistencia desde una imagen empresarial 'golden' (instantánea) para su uso como lista de permitidos dinámica en tiempo de ejecución
  • Análisis de imágenes de disco montadas mediante redireccionamiento de unidad

¿Cómo lo uso?

Simplemente descargue y ejecute trawler.ps1 desde un símbolo de sistema de PowerShell/cmd administrativo: cualquier detección se mostrará en la consola y también se escribirá en un CSV ('detections.csv') en el directorio de trabajo actual. El CSV generado contendrá Nombre de detección, Origen, Riesgo, Metadatos y la técnica MITRE correspondiente.

O use esta línea única desde un terminal PowerShell administrativo:

root@kitploit:~
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/joeavanzato/Trawler/main/trawler.ps1'))

Ciertas detecciones tienen listas de permitidos integradas para ayudar a eliminar el ruido de las configuraciones predeterminadas de Windows (10/2016/2019/2022): tareas programadas, servicios, etc. esperados. Por supuesto, siempre es posible que los atacantes secuestren estos directamente y se hagan pasar con gran detalle como un proceso predeterminado del sistema operativo: tenga cuidado de utilizar múltiples formas de análisis y detección al tratar con adversarios hábiles.

Si tiene ejemplos o ideas para detecciones adicionales, no dude en enviar un Issue o PR con detalles técnicos/referencias relevantes; la base de código está un poco desordenada en este momento y se limpiará con el tiempo.

Además, si identifica falsos positivos obvios, hágamelo saber abriendo un issue o PR en GitHub. Los culpables obvios serán COM, Servicios o Tareas no estándar.

Parámetros de CLI

root@kitploit:~
-scanoptions : Navegue con tabulador entre las detecciones posibles y seleccione un subconjunto usando términos separados por comas (ej. .\trawler.ps1 -scanoptions Services,Processes) o omita para hacer todas las detecciones.
-quiet : Suprime la salida de detecciones en la consola.
-snapshot : Ruta a una salida JSON anterior de Trawler para usar como lista de permitidos.
-outpath : Define una ruta de archivo personalizada para guardar la salida de detecciones (por defecto: "$PSScriptRoot\detections.csv").
-drivetarget : Define la variable para una unidad de destino montada (ej. .\trawler.ps1 -targetdrive "D:") (por defecto: sistema local).
-daysago : Define cuántos 'días atrás' considerar para las detecciones basadas en tiempo (por defecto: 45).
-hashmode : Define qué algoritmo hash usar para las detecciones compatibles: soporta sha1, md5 o sha256 (por defecto: sha1).
-evtx : Habilita la creación de un origen de registro de eventos y la escritura de detecciones en el registro de eventos de Aplicación bajo Source=trawler con EID=9001 (por defecto desactivado).

¿Qué diferencia esto de PersistenceSniper?

PersistenceSniper es una herramienta increíble: la he usado mucho en el pasado, pero hay algunos puntos clave que diferencian estas utilidades:

  • Trawler es (actualmente) una utilidad local; aunque sería bastante sencillo envolverlo en un bucle y usar sesiones de WinRM/PowerShell para ejecutarlo en hosts remotos.
  • Trawler implementa listas de permitidos para muchas detecciones 'ruidosas' para ayudar a eliminar detecciones esperadas de configuraciones predeterminadas de Windows (10/2016/2019/2022) y se actualizan constantemente (PS también hace esto).
    • PersistenceSniper (en su mayoría) no contiene ningún tipo de lista de permitidos; por lo tanto, hay más ruido al considerar elementos como servicios, tareas programadas, escaneo general de DLL COM, etc.
  • La salida de Trawler es simplificada: Nombre, Riesgo, Origen, Técnica MITRE y Metadatos son los únicos elementos proporcionados para cada detección para ayudar a los analistas a iniciar sus esfuerzos de búsqueda de persistencia; esto es un arma de doble filo.
  • Se usa Regex en muchas comprobaciones para ayudar a detectar palabras clave o patrones 'sospechosos' en varias áreas críticas, incluido el contenido de archivos escaneados, valores de registro, etc. Esto proporciona un poco más de flexibilidad pero también una tasa potencialmente mayor de falsos positivos.
  • Trawler admite 'redireccionamiento de unidad' para verificar cajas muertas montadas en una máquina de análisis.

En general, estas herramientas son extremadamente similares pero abordan el problema desde ángulos ligeramente diferentes: PersistenceSniper devuelve toda la información al analista para su revisión, mientras que Trawler intenta limitar lo que se devuelve solo a resultados que probablemente sean mecanismos de persistencia de adversarios potenciales. Como tal, existe la posibilidad de falsos negativos con Trawler si un adversario imita completamente un elemento de la lista de permitidos.

Como ejemplo: PersistenceSniper devolverá todos los servicios de Windows 'no seguros', mientras que Trawler solo devolverá aquellos que coincidan con una regla de detección específica, etc.

Ajuste a su entorno

Trawler admite cargar una lista de permitidos a partir de una 'instantánea' (snapshot). Para ello se requieren dos pasos.

  1. Ejecute '.\trawler.ps1 -snapshot' en una "Imagen Golden" que represente los servidores de su entorno; una vez completado, además del 'detections.csv' estándar, se generará un archivo llamado 'snapshots.csv'.
  2. Este archivo se puede usar como entrada para Trawler cuando se ejecuta en otros hosts y los datos se cargarán dinámicamente como una lista de permitidos para cada detección apropiada.
    1. '.\trawler.ps1' -loadsnapshot "ruta\a\snapshot.csv"

Eso es todo: todas las detecciones relevantes se basarán en el archivo de instantánea como lista de permitidos para reducir el ruido e identificar cualquier cambio potencial en la imagen base que pueda haber ocurrido.

(La lista de permitidos está implementada para la mayoría de las comprobaciones, pero no para todas; todavía se está implementando activamente)

Redireccionamiento de unidad

A menudo, durante una investigación, los analistas pueden terminar montando una nueva unidad que representa un dispositivo Windows con imagen. Trawler ahora admite parcialmente el escaneo de estas unidades montadas mediante el parámetro '-drivetarget'.

En tiempo de ejecución, Trawler redirigirá las variables temporales a nivel de script para usarlas en la comprobación de artefactos basados en archivos y también intentará cargar las colmenas de registro relevantes (HKLM\SOFTWARE, HKLM\SYSTEM, NTUSER.DAT, USRCLASS.DAT) debajo de HKLM/HKU con el prefijo 'ANALYSIS_'. Trawler también intentará descargar estas colmenas cargadas temporalmente al finalizar el script.

Como ejemplo, si tiene una imagen montada en una ubicación como 'F:\Test' que contiene el sistema de archivos NTFS ('F:\Test\Windows', 'F:\Test\User', etc.), puede invocar Trawler de la siguiente manera;

root@kitploit:~
.\trawler.ps1 -drivetarget "F:\Test"

Tenga en cuenta que, dado que Trawler intenta cargar los archivos de colmena de registro desde la unidad en cuestión, NO funcionará asignar una ruta UNC a un dispositivo remoto en vivo porque esos archivos no serán accesibles debido a bloqueos del sistema. Estoy trabajando en un enfoque que manejará dispositivos remotos en vivo, estén atentos.

¿Qué no se inspecciona al redirigir la unidad?

  • Procesos en ejecución
  • Conexiones de red
  • DLL 'Fantasma'
  • Consumidores WMI (en desarrollo)
  • Trabajos BITS (en desarrollo)
  • Análisis de certificados (en desarrollo)

La mayoría de las otras comprobaciones funcionarán bien porque se basan completamente en la lectura de colmenas de registro o artefactos basados en archivos (o se pueden convertir para hacerlo, como leer directamente XML de tareas en lugar de usar cmdlets integrados).

Cualquier limitación en las comprobaciones al hacer redireccionamiento de unidad se discutirá más a fondo en la Wiki de GitHub.

Imágenes de ejemplo

¿Qué se inspecciona?

  • Tareas programadas
  • Usuarios
  • Servicios
  • Procesos en ejecución
  • Conexiones de red
  • Consumidores de eventos WMI (CommandLine/Script)
  • Descubrimiento de elementos de inicio
  • Descubrimiento de trabajos BITS
  • Modificaciones de la función de accesibilidad de Windows
  • Existencia de perfil de PowerShell
  • Documentos de confianza de Office
  • Complementos de Office desde ubicaciones de confianza
  • Monitorización de SilentProcessExit
  • Secuestro de DLL Helper de Winlogon
  • Secuestro de opciones de ejecución de archivos de imagen
  • Sombras de RDP
  • Configuración de UAC para sesiones remotas
  • DLL de monitores de impresión
  • Secuestro de paquetes de seguridad y autenticación LSA
  • DLL de proveedores de tiempo
  • DLL de procesadores de impresión
  • Configuración activa de arranque/inicio de sesión
  • Secuestro de script de inicio de sesión de inicialización de usuario
  • Secuestro de ejecutable de protector de pantalla
  • DLL de Netsh
  • DLL de AppCert
  • DLL de AppInit
  • Sombreado de aplicaciones
  • Secuestro de objetos COM
  • Secuestro de notificación LSA
  • Uso de 'Office test'
  • Uso de Office GlobalDotName
  • Secuestro de DLL de servicios de terminal
  • Secuestro de DLL de marcación automática
  • Abuso de procesador Command AutoRun
  • Secuestro de Outlook OTM
  • Secuestro de proveedor de confianza
  • Escaneo de destino LNK (términos sospechosos, extensiones múltiples, múltiples EXE)
  • Nombres de DLL 'fantasma' de Windows cargadas en un proceso en ejecución (ej. WptsExtensions.dll sin firmar)
  • Escaneo de directorios críticos del sistema operativo en busca de EXE/DLL sin firmar
  • Secuestro de ruta de servicio sin comillas
  • Secuestro binario PATH
  • Secuestros comunes de asociación de archivos y palabras clave sospechosas
  • Búsqueda de certificados sospechosos
  • Descubrimiento/escaneo de scripts GPO
  • Anulaciones de DLL de plataforma de desarrollo NLP
  • Reemplazos de depuración AeDebug/.NET/Script/Process/WER
  • 'Load' de Explorer
  • Secuestros de Windows Terminal startOnUserLogin
  • Desajustes de ruta de aplicación
  • Desajustes de DLL/ruta de imagen de servicio
  • DLL de extensión GPO
  • Posibles secuestros COM
  • Extensiones LSA no estándar
  • Presencia de DNSServerLevelPluginDll
  • Secuestro de utilidad Explorer\MyComputer
  • Comprobación de InitialProgram de servicios de terminal
  • Programas de inicio de RDP
  • Comandos de telemetría de Microsoft
  • Proveedores AMSI no estándar
  • DLL de error LUI de configuración de Internet
  • DLL de extensión PeerDist
  • Comprobaciones de ErrorHandler.CMD
  • DLL de diagnóstico integrado
  • DLL auxiliares de MiniDump
  • DLL de depurador administrado conocido
  • DLL de capa de compatibilidad WOW64
  • Secuestro de MSC de visor de eventos
  • Escaneo de cadenas de desinstalación
  • DLL de PolicyManager
  • DLL de billetera SEMgr
  • Controladores de excepciones en tiempo de ejecución WER
  • Ayuda HTML (.CHM)
  • Artefactos de herramientas de acceso remoto (archivos, directorios, claves de registro)
  • Comprobaciones de DLL de ContextMenuHandler
  • Presencia de Office AI.exe
  • Complementos de Notepad++
  • Secuestros de registro MSDTC
  • Secuestro de DLL de Narrador (MSTTSLocEnUS.DLL)
  • Comprobaciones de ubicación de archivo sospechoso
  • Comprobación de BootVerificationProgram
  • Comprobaciones de DiskCleanupHandler
  • Comprobaciones de aislamiento de integridad baja
  • Software instalado con nombre sospechoso
  • Estado del modo de restauración de servicios de directorio
  • Modificaciones del descriptor de seguridad del Administrador de control de servicios
  • Máquinas virtuales del subsistema de Windows para Linux
  • Análisis de extensiones de navegador

TODO

  • Agregar guía de análisis/remediación a cada detección en la Wiki de GitHub (en progreso)
  • Análisis de extensiones de navegador (?)
  • Secuestro RID [https://www.ired.team/offensive-security/persistence/rid-hijacking][https://pentestlab.blog/2020/02/12/persistence-rid-hijacking/]
  • Comprobaciones de PowerAutomate
  • Indicadores de ShadowPad [https://www.secureworks.com/research/shadowpad-malware-analysis, https://www.hexacorn.com/blog/2023/02/25/beyond-good-ol-run-key-part-141/]
  • Escaneo de scripts de inicio OBS [https://www.hexacorn.com/blog/2023/04/14/beyond-good-ol-run-key-part-142/]
  • Complementos de administración de SQL Server [https://www.hexacorn.com/blog/2019/09/28/beyond-good-ol-run-key-part-117/]
  • Inspección de controladores de reproducción automática [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers]
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\Pending\SPReviewEnabler
  • OCSetup [https://www.hexacorn.com/blog/2019/11/09/beyond-good-ol-run-key-part-122/]
  • Revisar https://hijacklibs.net/# para oportunidades adicionales
  • Revisar https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows para oportunidades adicionales
  • Revisar https://silentrunners.org/launchpoints.html para oportunidades adicionales

Técnicas MITRE evaluadas

Tenga en cuenta que algunas de estas (por supuesto) se detectan más que otras; por ejemplo, no estamos detectando todas las modificaciones de registro posibles, sino inspeccionando ciertas claves en busca de cambios obvios y utilizando la técnica MITRE genérica "Modify Registry" cuando no sea aplicable ninguna otra técnica. Para otros elementos, como el secuestro COM, estamos inspeccionando todas las entradas en la sección de registro correspondiente, verificando con patrones 'conocidos como buenos' y reportando valores desconocidos o no coincidentes, lo que resulta en una superficie de detección mucho más completa para esa técnica en particular.

  • T1037: Boot or Logon Initialization Scripts
  • T1037.001: Boot or Logon Initialization Scripts: Logon Script (Windows)
  • T1037.005: Boot or Logon Initialization Scripts: Startup Items
  • T1055.001: Process Injection: Dynamic-link Library Injection
  • T1059: Command and Scripting Interpreter
  • T1071: Application Layer Protocol
  • T1098: Account Manipulation
  • T1112: Modify Registry
  • T1053: Scheduled Task/Job
  • T1136: Create Account
  • T1137.001: Office Application Office Template Macros
  • T1137.002: Office Application Startup: Office Test
  • T1137.006: Office Application Startup: Add-ins
  • T1176: Browser Extensions
  • T1197: BITS Jobs
  • T1505.005: Server Software Component: Terminal Services DLL
  • T1543.003: Create or Modify System Process: Windows Service
  • T1546: Event Triggered Execution
  • T1546.001: Event Triggered Execution: Change Default File Association
  • T1546.002: Event Triggered Execution: Screensaver
  • T1546.003: Event Triggered Execution: Windows Management Instrumentation Event Subscription
  • T1546.007: Event Triggered Execution: Netsh Helper DLL
  • T1546.008: Event Triggered Execution: Accessibility Features
  • T1546.009: Event Triggered Execution: AppCert DLLs
  • T1546.010: Event Triggered Execution: AppInit DLLs
  • T1546.011: Event Triggered Execution: Application Shimming
  • T1546.012: Event Triggered Execution: Image File Execution Options Injection
  • T1546.013: Event Triggered Execution: PowerShell Profile
  • T1546.015: Event Triggered Execution: Component Object Model Hijacking
  • T1547.002: Boot or Logon Autostart Execution: Authentication Packages
  • T1547.003: Boot or Logon Autostart Execution: Time Providers
  • T1547.004: Boot or Logon Autostart Execution: Winlogon Helper DLL
  • T1547.005: Boot or Logon Autostart Execution: Security Support Provider
  • T1547.009: Boot or Logon Autostart Execution: Shortcut Modification
  • T1547.012: Boot or Logon Autostart Execution: Print Processors
  • T1547.014: Boot or Logon Autostart Execution: Active Setup
  • T1553: Subvert Trust Controls
  • T1553.004: Subvert Trust Controls: Install Root Certificate
  • T1556.002: Modify Authentication Process: Password Filter DLL
  • T1564.006: Hide Artifacts: Run Virtual Instance
  • T1574: Hijack Execution Flow
  • T1574.007: Hijack Execution Flow: Path Interception by PATH Environment Variable
  • T1574.009: Hijack Execution Flow: Path Interception by Unquoted Path

Referencias

Esta herramienta no existiría sin la increíble comunidad de InfoSec; las referencias más notables que utilicé se proporcionan a continuación.

  • PersistenceSniper
  • MITRE ATT&CK
  • Persistence Info GitHub
  • Hexacorn - Persistence Series
  • IRED
  • PayloadsAllTheThings

Más referencias

  • https://twitter.com/Laughing_Mantis/status/1645268114966470662
  • https://shellz.club/posts/a-novel-method-for-bypass-ETW/
  • https://pentestlab.blog/2023/03/20/persistence-service-control-manager/
  • https://ristbs.github.io/2023/02/15/hijack-explorer-context-menu-for-persistence-and-fun.html
  • https://pentestlab.blog/2022/02/14/persistence-notepad-plugins/
Descargar herramienta