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
LOLBITS — ** DESCONTINUADO ** Marco de C2 que utiliza el Servicio de Transferencia Inteligente en Segundo Plano (BITS) como protocolo de comunicación y Direct Syscalls + Dinvoke para la evasión de hooking en modo usuario de EDR. | Kitploit
Herramientas/GitHubGitHub/kudaes/lolbits
Escalada de PrivilegiosFrameworks de ExploitsMovimiento LateralPost-ExplotaciónComando y ControlRed TeamingDesarrollo de Payloads
GitHubkudaes/lolbits

LOLBITS

** DESCONTINUADO ** Marco de C2 que utiliza el Servicio de Transferencia Inteligente en Segundo Plano (BITS) como protocolo de comunicación y Direct Syscalls + Dinvoke para la evasión de hooking en modo usuario de EDR.

Ver Repositorio
222387hace 3 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

License

root@kitploit:~
			 ██╗      ██████╗ ██╗     ██████╗ ██╗████████╗███████╗
			 ██║     ██╔═══██╗██║     ██╔══██╗██║╚══██╔══╝██╔════╝
			 ██║     ██║   ██║██║     ██████╔╝██║   ██║   ███████╗
			 ██║     ██║   ██║██║     ██╔══██╗██║   ██║   ╚════██║
			 ███████╗╚██████╔╝███████╗██████╔╝██║   ██║   ███████║
			 ╚══════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝   ╚═╝   ╚══════╝

Índice de contenidos

  • Acerca del proyecto
    • Agradecimientos
  • Primeros pasos
    • Requisitos previos
    • Configuración
  • Uso
  • Contribuciones
  • Licencia
  • Contacto

Acerca del proyecto

LOLBITS es un framework C2 que utiliza el Servicio de Transferencia Inteligente en Segundo Plano (BITS) de Microsoft para establecer el canal de comunicación entre el host comprometido y el backend. El backend C2 está oculto tras una aplicación web Flask aparentemente inofensiva y solo es accesible cuando las solicitudes HTTP recibidas por la aplicación contienen un encabezado de autenticación válido. Dado que esta herramienta está diseñada para usarse en entornos altamente monitorizados, se han implementado las siguientes características para evitar la detección por EDR y AV:

  • Parcheo de ETW y AMSI.
  • Uso de syscalls directas para evitar el hooking de APIs en modo usuario por parte del EDR.
  • Mapeo manual de kernel32.dll y advapi32.dll en combinación con DInvoke.
  • Detección básica de sandbox antes de establecer el canal de comunicación con el backend C2.
  • Uso de BITS en modo background para generar el canal de comunicación sin molestar la experiencia del usuario.

En cuanto a la arquitectura, LOLBITS se compone de 3 elementos principales:

  • El agente en C# que se encarga de ejecutar los comandos en el host comprometido, enviando la salida de vuelta al servidor C2 una vez completada la tarea.
  • La aplicación web Flask que actúa como despachador. Este elemento permite ocultar la infraestructura C2 detrás de un sitio web inofensivo, al mismo tiempo que suministra los nuevos comandos al agente cuando se recibe una solicitud autenticada.
  • La consola C2, utilizada para controlar el agente.

Para denegar la inspección de contenido por parte de proxies, todo el contenido relevante enviado entre el agente y el servidor C2 se cifra usando RC4 con una clave secreta precompartida generada aleatoriamente. Un diagrama de alto nivel del comportamiento de la infraestructura sería como se muestra en la siguiente imagen:

Diagrama de alto nivel

Para evitar que el Equipo Azul pueda reproducir algunas de las solicitudes antiguas y descubrir la infraestructura del backend C2, cada encabezado de autenticación se genera aleatoriamente y es válido solo para un único ciclo (un ciclo se compone de una solicitud POST seguida de una solicitud GET, en ese orden). Los encabezados de autenticación antiguos serán ignorados y se mostrará el sitio web inofensivo para esas solicitudes.

Agradecimientos

Algunas de las características de esta herramienta se han implementado reutilizando código de otros proyectos o gracias al esfuerzo de varios investigadores de ciberseguridad. A continuación, enlazo algunos de los trabajos y proyectos externos que se han utilizado de una u otra forma para mejorar esta herramienta:

  • Salsa Tools
  • Dinvoke
  • SharpSploit
  • Windows System Call Table
  • CheckPlease para evasión de Sandbox

Primeros pasos

Requisitos previos

Para la infraestructura C2 se requiere un Windows Server 2016 o superior con Python 3.4+ y PowerShell 5.1+. El agente en C# ha sido probado con éxito en Windows Server 2012, Windows Server 2016, Windows Server 2019, Windows 7, Windows 8.1 y Windows 10. Para compilarlo se requiere:

  • Visual Studio 2017 o superior.
  • .NET Framework 4.5 o superior.

Configuración

1.- Clone este repositorio en su servidor C2

root@kitploit:~
git clone https://github.com/Kudaes/LOLBITS.git

2.- Instale el Servidor Web (IIS) a través del Administrador del Servidor Windows. Asegúrese de instalar los roles CGI, ASP.NET y .NET Extensibility.

Roles del servidor

También instale las características .NET Framework y BITS para IIS.

Características del servidor

3.- Ejecute el script setup.ps1 como administrador para desplegar toda la infraestructura y configurar el agente en C#.

4.- Compile el agente en C#. La compilación generará un .exe y una dependencia externa (Newtonsoft.Json.dll). Puede generar un único .exe usando ILMerge o simplemente enviar ambos archivos al host comprometido. Para evitar la salida DEBUG, asegúrese de compilar el proyecto como una Aplicación de Windows.

Aplicación de Windows

5.- (Opcional) Por defecto, el script setup.ps1 creará un nuevo Sitio Web en su IIS llamado lawlbits escuchando en el puerto HTTP predeterminado (80/TCP). Este nuevo Sitio Web no utiliza HTTP sobre TLS y, aunque el contenido de las solicitudes enviadas por el agente C# al C2 está cifrado usando RC4 con una clave secreta precompartida generada aleatoriamente, se recomienda configurar el uso de HTTPS para el nuevo sitio. Para ello, recomiendo usar Let's Encrypt sobre lawlbits, que es una de las formas más sencillas de configurar HTTPS. Después de eso, recuerde modificar la variable Url en Program.cs para usar HTTPS en lugar de HTTP, que es el comportamiento predeterminado.

Uso

Para obtener la shell reversa, simplemente escriba python lawlbin.py en una terminal del servidor C2 y ejecute el agente C# en el host comprometido.

Dado que este proyecto nace de las cenizas de un proyecto anterior y fallido, algunas de las funcionalidades antiguas se han conservado. El proyecto anterior era una shell donde todos los comandos disponibles se ejecutaban utilizando exclusivamente Living of The Land Binaries. De ahí proviene el LOL de LOLBITS, y por eso las siguientes funcionalidades se ejecutan utilizando exclusivamente LOLBINS (esto podría ayudar a evadir AWS y algunos filtros de AV/EDR):

  • download: Descarga un archivo desde un Webdav remoto al host comprometido.
  • base64encode: Usa base64 para codificar el contenido de un archivo local.
  • base64decode: Decodifica un archivo codificado en base64.
  • compile: Compila archivos .cs en .exe o .dll.

A pesar de que estas funcionalidades podrían ser interesantes en algunos entornos (¡descargar archivos remotos sin usar PowerShell? ¡Me gusta!) las mantuve solo para reutilizar parte del código antiguo de la consola C2. A continuación se muestra una lista con otras funcionalidades que seguramente serán más útiles en un contexto clásico de red team:

  • inject: Descarga desde el C2 un archivo shellcode (.bin) o PE (ensamblado .NET) y lo ejecuta en memoria. Con este comando, el payload nunca toca el disco sin cifrar, evitando la detección por AV. Los ensamblados .NET solo se pueden cargar en el mismo proceso llamante, mientras que los shellcode pueden inyectarse tanto en el propio proceso como en otros (solo procesos x64).
  • psh: Genera una shell reversa de PowerShell. Esta shell debe ser manejada con software adicional como netcat (solo ejecute nc -lvp ).
  • send: Para enviar un archivo desde su C2 al host comprometido, use esta opción. El archivo enviado se almacenará sin cifrar en el disco.
  • getsystem: Intenta obtener privilegios de Sistema. Se requiere nivel de integridad alto.
  • impersonate: Intenta robar un token de acceso de otro proceso para "convertirse" en otro usuario.
  • runas: Usa credenciales válidas para modificar su contexto de seguridad e iniciar sesión como otro usuario (local o de dominio).
  • rev2self: Revierte los cambios en el contexto de seguridad realizados por getsystem, impersonate o runas.
  • exfiltrate: Envía un archivo desde el host comprometido a su C2.

Para obtener consejos de uso, simplemente escriba help o <comando> help.

Contribuciones

Cualquier contribución será muy apreciada.

  1. Haga un Fork del Proyecto
  2. Cree su Rama de Característica (git checkout -b feature/CaracteristicaIncreible)
  3. Haga Commit de sus Cambios (git commit -m 'Añadir alguna característica increíble')
  4. Suba a la Rama (git push origin feature/CaracteristicaIncreible)
  5. Abra un Pull Request

Licencia

Distribuido bajo la Licencia GNU. Consulte LICENSE para más información.

Contacto

Mi Twitter

Mi Linkedin

Descargar herramienta