¿Por qué otra herramienta de post-explotación?
¿por qué no? no veo muchos frameworks de post-explotación para sistemas linux, incluso si los hubiera, no son nada como el de @jm33-m0.
Como usuario de Linux, la cosa más crítica para la administración remota es la terminal. si odias la experiencia de la shell inversa (a veces ni siquiera es una shell), echa un vistazo a emp3r0r, te impresionará.
Sí, la idea era desarrollar una herramienta de post-explotación para los usuarios de Linux (¿Sabes que existen 9+1 Tipos de Usuarios Recién Llegados a Linux?), que quieren una mejor experiencia en su hacking
Otra razón es la compatibilidad. Emp3r0r está escrito en su mayoría en Go, y es completamente estático (también lo son todos los plugins utilizados por emp3r0r), se ejecutará en cualquier lugar (probado en Linux 2.6 y superior) que desees, independientemente de los entornos. En algunos casos ni siquiera encontrarás bash en tu objetivo, no te preocupes, emp3r0r carga su propio bash y muchas otras herramientas útiles.
¿por qué se llama emp3r0r? porque hay un empire.
Qué Hace
Una mirada rápida:
- Hermosa interfaz de usuario de la terminal
- Shell inverso perfecto (color verdadero, enlaces de teclas, bashrc personalizado, binario bash personalizado, etc)
- Auto persistencia a través de varios métodos
- Herramientas de post-explotación como nmap, socat, están integradas con reverse shell
- Recolección de credenciales
- Inyección de procesos
- Inyección de shellcode y dropper
- Parcheador ELF
- Ocultar procesos y archivos mediante el secuestro de libc
- Mapeo de puertos, proxy socks5
- Auto root
- Recogida de información del sistema
- Gestión de archivos
- Limpiador de registros
- Conexión sigilosa
- Antivirus
- Comprobador de acceso a internet
- Autoproxy para redes semiaisladas
- Interoperabilidad con metasploit / Cobalt Strike
- y muchos más…
Características principales
Transportes
emp3r0r utiliza HTTP2 (TLS habilitado) para su comunicación CC, pero también puedes encapsularlo en otros transportes como TOR, y CDNs. todo lo que necesitas hacer es decirle al agente de emp3r0r que use tu proxy.
A continuación se muestra una captura de pantalla del servidor CC de emp3r0r, que tiene 3 agentes procedentes de 3 transportes diferentes
Auto proxy para agentes sin acceso directo a internet
Los agentes de emp3r0r comprueban si tienen acceso a internet al arrancar, e inician un proxy socks5 si lo tienen, entonces difunden sus direcciones proxy (de forma encriptada) en cada red que puedan alcanzar
Si un agente no tiene internet, va a escuchar esas broadcasts. cuando recibe un proxy que funciona, inicia un mapeo de puertos de ese proxy y lo difunde a sus propias redes, llevando el proxy a cada agente que pueda tocar, y eventualmente llevar a todos los agentes a nuestro servidor CC.
En el siguiente ejemplo, tenemos 3 agentes, entre los cuales sólo uno () tiene acceso a internet, y tiene que usar el proxy pasado por
Anti antivirus (o anti lo que sea)
- un criptor que carga el agente en la memoria
- un dropper de shellcode
- todo es aleatorio
- un agente construido para cada objetivo
Tráfico de agentes
Cada vez que un agente se inicia, comprueba el estado de CC en una URL preestablecida, si sabe que CC está fuera de línea, no se ejecutará ninguna acción más, espera a que CC se conecte.
Puedes establecer la URL a una página de GitHub u otros sitios menos sospechosos, tus agentes sondearán esa URL cada minuto al azar
No se producirá ninguna comunicación con CC cuando el agente crea que CC está desconectado
si no lo está:
desnuda el tráfico HTTP2:
Packer – iniciar el agente en memoria
El packer encripta el binario del agente, y lo ejecuta desde la memoria (usando memfd_create
)
Actualmente emp3r0r se basa principalmente en la memoria, si se utiliza con este packer:
dropper – lanzamiento de agente basado en memoria pura
dropper deja caer un shellcode o un script en su objetivo, que finalmente ejecuta su agente, de forma sigilosa
A continuación, se muestra una captura de pantalla de una entrega de shellcode basada en Python para la ejecución del agente:
Ocultar procesos y archivos
Aactualmente emp3r0r utiliza libemp3r0r para ocultar sus archivos y procesos, que utiliza glibc hijacking
Persistencia
Métodos actualmente implementados: (se añadirán más en el futuro)
- inyección de shellcode
- libemp3r0r
- cron
- inyección de perfiles y comandos bash
Módulos
- Inyección de shellcode
- Shellcode loader
- Shell de comandos básicos (esto no es un shell, sólo ejecuta cualquier comando que envíes con sh -c y te devuelve el resultado)
- Shell bash totalmente interactivo y sigiloso (un shell bash inverso, iniciado con el binario bash personalizado y el bashrc, sin dejar rastro en el shell del sistema)
- Recolección de credenciales
- Auto root (actualmente emp3r0r soporta CVE-2018-14665)
- Mapeo de puertos
- Mapeo de puertos inverso (interoperabilidad con otros frameworks)
- Sistema de plugins (leer Wiki para más información)
emp3r0r (este enlace se abre en una nueva ventana) por jm33-m0 (este enlace se abre en una nueva ventana)
Linux/Windows post-exploitation framework made by linux user