Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CIMplant — Traducción a C# de WMImplant que utiliza CIM o WMI para consultar sistemas remotos | Kitploit
Herramientas/GitHubGitHub/redsiege/cimplant
Movimiento LateralRecopilación de InformaciónPost-ExplotaciónPruebas de PenetraciónComando y ControlRed TeamingHerramienta de Acceso Remoto
GitHubredsiege/cimplant

CIMplant

Traducción a C# de WMImplant que utiliza CIM o WMI para consultar sistemas remotos

Ver Repositorio
2042860hace 5 añosRevisado 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

CIMplant

Versión en C# de WMImplant que utiliza CIM o WMI para consultar sistemas remotos. Puede usar credenciales proporcionadas o la sesión del usuario actual.

Nota: Algunos comandos usarán PowerShell en combinación con WMI, indicados con ** en el comando --show-commands.

Introducción

CIMplant es una reescritura y expansión en C# de @christruncer's WMImplant. Permite recopilar datos de un sistema remoto, ejecutar comandos, extraer datos y más. La herramienta permite conexiones usando Instrumentación de Administración de Windows, WMI, o Modelo de Interfaz Común, CIM ; bueno, más precisamente Infraestructura de Administración de Windows, MI. CIMplant requiere permisos de administrador local en el sistema objetivo.

Configuración:

Probablemente sea más fácil usar la versión compilada en Releases, solo ten en cuenta que está compilada en modo Debug. Si deseas compilar la solución tú mismo, sigue los pasos a continuación.

  1. Carga CIMplant.sln en Visual Studio
  2. Ve a Build en la parte superior y luego Build Solution si no se desean modificaciones

Uso

CIMplant.exe --help
CIMplant.exe --show-commands
CIMplant.exe --show-examples
CIMplant.exe -s [remote IP address] -c cat -f c:\users\user\desktop\file.txt
CIMplant.exe -s [remote IP address] -u [username] -d [domain] -p [password] -c cat -f c:\users\test\desktop\file.txt
CIMplant.exe -s [remote IP address] -u [username] -d [domain] -p [password] -c command_exec --execute "dir c:\\"

Funciones

Operaciones de archivos:

cat                          -  Lee el contenido de un archivo
copy                         -  Copia un archivo de una ubicación a otra
download**                   -  Descarga un archivo de la máquina objetivo
ls                           -  Listado de archivos/directorios de un directorio específico
search                       -  Busca un archivo en un usuario
upload**                     -  Sube un archivo a la máquina objetivo

Facilitación de movimiento lateral

command_exec**               -  Ejecuta un comando de línea de comandos y recibe la salida. Ejecutar con el flag nops para deshabilitar PowerShell
disable_wdigest              -  Establece el valor de registro UseLogonCredential a cero
enable_wdigest               -  Agrega el valor de registro UseLogonCredential
disable_winrm**              -  Deshabilita WinRM en el sistema objetivo
enable_winrm**               -  Habilita WinRM en el sistema objetivo
reg_mod                      -  Modifica el registro en la máquina objetivo
reg_create                   -  Crea el valor de registro en la máquina objetivo
reg_delete                   -  Elimina el registro en la máquina objetivo
remote_posh**                -  Ejecuta un script de PowerShell en una máquina remota y recibe la salida
sched_job                    -  No implementado debido a que Win32_ScheduledJobs accede a una API obsoleta
service_mod                  -  Crea, elimina o modifica servicios del sistema

Operaciones de procesos

process_kill                 -  Mata un proceso por nombre o ID de proceso en la máquina objetivo
process_start                -  Inicia un proceso en la máquina objetivo
ps                           -  Listado de procesos

Operaciones del sistema

active_users                 -  Lista usuarios del dominio con procesos activos en el sistema objetivo
basic_info                   -  Se usa para enumerar metadatos básicos del sistema objetivo
drive_list                   -  Lista unidades locales y de red
ifconfig                     -  Recibe información IP de NICs con conexiones de red activas
installed_programs           -  Recibe una lista de los programas instalados en la máquina objetivo
logoff                       -  Cierra la sesión de los usuarios en la máquina objetivo
reboot (or restart)          -  Reinicia la máquina objetivo
power_off (or shutdown)      -  Apaga la máquina objetivo
vacant_system                -  Determina si un usuario está ausente del sistema
edr_query                    -  Consulta el sistema local o remoto por proveedores EDR

Operaciones de registros

logon_events                 -  Identifica usuarios que han iniciado sesión en un sistema

* Todo PowerShell se puede deshabilitar usando el flag --nops, aunque algunos comandos no se ejecutarán (subir/descargar, habilitar/deshabilitar WinRM)
** Denota uso de PowerShell (ya sea usando un Runspace de PowerShell o mediante el método Win32_Process::Create)

Algunos comandos de uso de ejemplo

imagen

Cobalt Strike Execute-Assembly

Quise codificar CIMplant de manera que permita su uso a través de execute-assembly, por lo que todo está empaquetado en un único ejecutable y cargado de forma reflectiva. Deberías poder ejecutar todos los comandos a través de beacon sin problemas. ¡Disfruta!

imagen

Archivos importantes

  1. Program.cs

Este es el cerebro de la operación, el controlador del programa.

  1. Connector.cs

Aquí es donde se realizan las conexiones iniciales CIM/WMI y se pasan al resto de la aplicación

  1. ExecuteWMI.cs

Todo el código de las funciones para los comandos WMI

  1. ExecuteCIM.cs

Todo el código de las funciones para los comandos CIM (MI)

Detección

Por supuesto, lo primero que debemos tener en cuenta es la conexión inicial WMI o CIM. En general, WMI usa DCOM como protocolo de comunicación, mientras que CIM usa WSMan (o WinRM). Esto se puede modificar para CIM, y así se hace en CIMplant, pero por ahora solo revisemos los valores predeterminados. Para DCOM, lo primero que podemos hacer es buscar conexiones TCP iniciales en el puerto 135. Los sistemas conectante y receptor luego decidirán un nuevo puerto muy alto para usar, por lo que variará drásticamente. Para WSMan, la conexión TCP inicial es en el puerto 5985.

A continuación, querrás revisar el registro de eventos Microsoft-Windows-WMI-Activity/Trace en el Visor de eventos. Busca el Event ID 11 y filtra por la propiedad IsLocal si es posible. También puedes buscar el Event ID 1295 dentro del registro Microsoft-Windows-WinRM/Analytic.

Finalmente, querrás buscar cualquier modificación a la propiedad DebugFilePath con la clase Win32_OSRecoveryConfiguration. Se puede encontrar información más detallada sobre la detección en la Parte 1 de nuestra serie de blogs aquí: CIMplant Parte 1: Detección de una implementación en C# de WMImplant

Descargar herramienta