Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
MoveKit — Kit de Cobalt Strike para Movimiento Lateral | Kitploit
Herramientas/GitHubGitHub/0xthirteen/movekit
Frameworks de ExploitsMovimiento LateralPost-ExplotaciónPruebas de PenetraciónRed Teaming
GitHub0xthirteen/movekit

MoveKit

Kit de Cobalt Strike para Movimiento Lateral

Ver Repositorio
67810821hace 6 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

MoveKit - Kit de movimiento lateral de Cobalt Strike

Movekit es una extensión del movimiento lateral integrado de Cobalt Strike que aprovecha la función execute_assembly con los ensamblados .NET SharpMove y SharpRDP. El script agresor maneja la creación de payloads leyendo los archivos de plantilla para un tipo de ejecución específico.

IMPORTANTE: Para usar el script, el usuario solo necesita cargar el script agresor MoveKit.cna, que cargará todos los demás scripts necesarios. Además, dependiendo de las acciones realizadas, los ensamblados SharpMove y SharpRDP deberán compilarse y colocarse en el directorio Assemblies. Finalmente, algunos movimientos de archivos requieren compilación dinámica, lo que requerirá Mono.

Al cargar el script agresor, se cargará un selector en la menubar llamado Move. Hay múltiples selecciones que el usuario puede elegir. Primero, los usuarios pueden seleccionar ejecutar un comando en un sistema remoto a través de WMI, DCOM, Programador de tareas, RDP o SCM. Segundo, está el mecanismo de ejecución Command que utiliza cradles de descarga para obtener y ejecutar los archivos. Tercero, el método File coloca un archivo en el sistema y lo ejecuta. Existe Write File Only que no realiza ninguna ejecución, solo mueve datos. Finalmente, hay una configuración para hacer más rápido el uso de la GUI y se usa con comandos de beacon. Las configuraciones predeterminadas se usan para cualquier cosa que pueda aceptar un valor por defecto.

Descargar herramienta
Default

Para usar los comandos de beacon, leerá la configuración predeterminada y usará algunos argumentos de línea de comandos. Un ejemplo de comando beacon: <exec-type> <target> <listener> <filename>

move-msbuild 192.168.1.1 http move.csproj

Adicionalmente, el comando beacon preconstruido personalizado es un poco diferente. Ejemplo de comando: move-pre-custom-file <target> <local-file> <remote-filename>

move-pre-custom-file computer001.local /root/payload.exe legit.exe

El campo de ubicación es la parte más complicada del proyecto. Al seleccionar el movimiento de archivos WMI, se usará location; si se selecciona SMB, no se usará (por lo que se puede dejar vacío). Location toma tres valores diferentes. Primero, si location es una URL, cuando se cree el payload, será alojado por el servidor web de Cobalt Strike. El host beacon desde el que se ejecutará el ensamblado hará una solicitud web a la URL y obtendrá el archivo, que se usará en un subevento en el host de destino para escribir el archivo. Segundo, si location es un directorio de Windows, subirá el archivo creado al host beacon y el ensamblado lo leerá del sistema de archivos y lo almacenará en el subevento para escribirlo en el host remoto. Finalmente, si el campo location es una ruta de Linux o la palabra local, entonces compilará dinámicamente el payload en el ensamblado que se está ejecutando. Sin embargo, si el archivo supera el límite de tamaño de 1MB, mostrará un error.

Para todos los métodos de archivo, el payload se creará a través del script agresor. Sin embargo, si ya se ha creado un payload, los usuarios pueden seleccionar la opción Custom (Prebuilt) para moverlo y ejecutarlo.

El kit contiene diferentes técnicas de movimiento de archivos, disparadores de ejecución y tipos de payload.

El movimiento de archivos se considera el método utilizado para llevar un archivo a un host remoto. Tipos de movimiento de archivos:

  • SMB a archivo plano
  • WMI a archivo plano
  • WMI a valor de clave de registro
  • WMI a propiedad de clase WMI personalizada

El disparador de comando se considera el método utilizado para ejecutar un comando específico en un host remoto. Tipos de disparadores de comando:

  • WMI
  • SCM
  • RDP
  • DCOM (Múltiple)
  • Tareas programadas
  • Modificar tarea programada (La tarea existente actualiza su acción, ejecuta la tarea y restablece la acción)
  • Modificar binpath de servicio (El servicio existente actualiza su binpath, se inicia el servicio y se restablece al estado original)

Ejecución solo de shellcode:

  • Excel 4.0 DCOM
  • Suscripción a eventos WMI (próximamente)

Secuestros:

  • Secuestro de DLL de servicio (próximamente)
  • Secuestro de servidor DCOM (próximamente)

Dependencias

  • Mono (MCS) para compilar ensamblados .NET (Usado con creación dinámica de payloads, InstallUtil y Custom-NonPreBuilt). También cuando se usa el ensamblado FileWrite.

Atención:

  • A veces execute_assembly se llamará antes del movimiento de archivos; si esto sucede, puede ejecutar el payload desmarcando la casilla Auto
  • El kit no limpia archivos automáticamente, queda a cargo del operador
Nota: Se recomienda no usar las plantillas predeterminadas con el proyecto.

Para reemplazar una plantilla, debe cumplir dos requisitos. Primero, la plantilla debe llamarse como la técnica (ejemplo: msbuild.csproj). Segundo, el código fuente debe contener la cadena $$PAYLOAD$$ donde irá el shellcode codificado en base64 y debe poder convertir una cadena base64 a un arreglo de bytes. Ejemplo para C#:

root@kitploit:~
string strSC = "$$PAYLOAD$$";
byte[] sc = Convert.FromBase64String(strSC);

Se agregó un cambio que permite que los valores predeterminados actualicen la 'Cadena de buscar y reemplazar' y los formatos de shellcode en el 'diálogo de actualizar valores predeterminados'. Por defecto, estos son $$PAYLOAD$$ y base64.

Consideraciones operativas

  • Si se usa el programador de tareas, se crearán y eliminarán tareas programadas
  • Si se usa SCM, se crearán y eliminarán servicios
  • Si se usa la omisión de AMSI, solo funcionará para WSH, no para PowerShell
  • Si se usa la omisión de AMSI, modificará el registro actualizando o creando una clave de registro y luego la restaurará a su valor original o la eliminará
  • Utiliza la función execute-assembly de Cobalt Strike, por lo que se inyectará en un proceso de sacrificio como otros trabajos posteriores a la explotación
  • Se colocarán archivos en el disco si se utiliza cualquiera de los métodos File o Command
  • No se deben usar las plantillas, todas son públicas
  • Todas las técnicas no son nuevas y son bastante conocidas

Créditos

Parte del código, las plantillas o la inspiración provienen de otras personas y proyectos

  • WMI - SharpWMI por harmj0y
  • DCOM - SharpCOM por rvrsh3ll y SharpSploit DCOM por cobbr
  • SCM - CSExec por Tim Malcomvetter
  • Secuestro de DLL de servicio SharpSC por djhohnstein
  • Modificación de binpath de servicio SCShell por Mr-Un1k0d3r
  • Plantilla de ejecutor de shellcode por subTee
  • Payloads CACTUSTORCH por vysecurity

Probablemente haya errores en algún lado, tienden a aparecer de vez en cuando. Solo menciónalos y los arreglaré