El día de hoy empezamos con una nueva serie de entradas de framework pensados para una post explotación y tener un Command Center, el que veremos en esta entrada es Sliver realizando un ataque fuera de LAN con ayuda de Serveo.
El motivo principal de esta nueva serie es conocer otras alternativas a Empire ya que @xorrior dio a conocer la semana pasada que Empire Framework no tendrá mas soporte.
PSA for Empire development: The original objective of the Empire project was to demonstrate the post-exploitation capabilities of PowerShell and bring awareness to PowerShell attacks used by (at the time) more advanced adversaries.
— Chris (@xorrior) July 31, 2019
Esta sonando por la parroquia que Luis Cybervaca reanimará Empire con algunos cambios, ya que el es el creador del Mod de Hackplayers.
Que es Sliver
Un framework C2 que puede ejecutar tanto el servidor, cliente y los implantes en Mac, Windows y Linux, esta desarrollado en Golang. Los implantes son conocidos como Slivers que son los que permiten tener la conexión desde el servidor.
Instalación de Sliver
Para el proceso de instalación basta con seguir el proceso en la Wiki propia del proyecto o utilizar directamente el binario compilado.
Repositorio de Github <Sliver>
¿Que es Serveo?
Serveo nos brinda un servidor SSH que tiene el objetivo el reenvío de puertos remotos, permitiendo conectarnos y generar una URL pública que cualquiera puede conectarse a un servidor local siendo este un resumen de lo que nos permite hacer serveo si quieren conocer mas de el mismo pueden acceder al sitio serveo.net a continuación un ejemplo.
snifer@Kvothe$ ssh -R loquesea:80:localhost:80 serveo.net
Forwarding HTTP traffic from https://loquesea.serveo.net
Press g to start a GUI session and ctrl-c to quit.
El resultado es el siguiente cualquier solicitud al sitio la veremos y los recursos que son consumidos.
¿Serveo es una alternativa a ngrok?
Ya con todo esto podemos iniciar con Sliver y explicar un poco la funcionalidad de Sliver.
Al ejecutar un help tenemos las siguientes opciones como siempre help [comando] nos dara un mejor detalle de cada una de ellas.
Commands:
\=========
clear clear the screen
exit exit the shell
help use 'help \[command\]' for command help
Generic:
\========
background Background an active session
canaries List previously generated canaries
dns Start a DNS listener
generate Generate a sliver binary
generate-egg Generate an egg shellcode (sliver stager)
generate-profile Generate Sliver from a profile
http Start an HTTP listener
https Start an HTTPS listener
jobs Job control
mtls Start an mTLS listener
new-profile Save a new sliver profile
profiles List existing profiles
regenerate Regenerate target sliver
sessions Session management
slivers List old Sliver builds
use Switch the active sliver
websites Host a static file on a website (used with HTTP C2)
La opción de Multiplayer nos permite contar con “Agentes” que llegan a interactuar con los Slivers directamente a traves desde nuestro Servidor, esta configuración la veremos proximamente.
Multiplayer:
\============
kick-player Kick a player from the server
multiplayer Enable multiplayer mode
new-player Create a new player config file
players List players
Las opciones que tenemos con el Sliver (equipo infectado) en esta entrada veremos lo principal.
Sliver:
\=======
cat Dump file to stdout
cd Change directory
download Download a file
execute-shellcode Executes the given shellcode in the sliver process
getgid Get Sliver process GID
getpid Get Sliver pid
getuid Get Sliver process UID
info Get info about sliver
kill Kill a remote sliver process
ls List current directory
mkdir Make a directory
msf Execute an MSF payload in the current process
msf-inject Inject an MSF payload into a process
ping Test connection to Sliver (does not use ICMP)
procdump Dump process memory
ps List remote processes
pwd Print working directory
rm Remove a file or directory
shell Start an interactive shell
upload Upload a file
whoami Get Sliver user execution context
Contamos con opciones únicas para Windows las cuales son las siguientes.
Sliver - Windows:
\=================
elevate Spawns a new sliver session as an elevated process (UAC bypass/Windows Only)
execute-assembly Loads and executes a .NET assembly in a child process (Windows Only)
getsystem Spawns a new sliver session as the NT AUTHORITY\\SYSTEM user (Windows Only)
impersonate Run a new process in the context of the designated user (Windows Only)
migrate Migrate into a remote process
Listeners
Con Sliver tenemos la opcion de ejecutar 4 diferentes listeners DNS, HTTP, HTTPS y MTLS que son los que se ponen en la escucha en los puertos respectivos.
La ejecución de cada uno basta con el nombre como se muestra a continuación iniciamos un listener por http puerto 80.
Generando un Sliver
La generación de un sliver es el binario que debemos de hacer que se ejecute en nuestros objetivos para conocer un detalle de las diferentes opciones debemos de ejecutar help generate.
En este caso generamos algunos binarios para Windows de 32 y 64 bits para Linux y MAC.
Como vemos en la captura anterior le indicamos que no realice ningun proceso de ofuscación sobre el binario que es la flag –skip-symbols.
--http: El listener para el cual generaremos.
--save: Donde se generara el binario.
-a: La arquitectura por defecto este genere para 64 bits.
--os: El ultimo parámetro determinamos el sistema operativo.
Si ejecutamos slivers visualizamos los sliver generados.
Basta con mandar los binarios generados y esperar que llegue la Shell.
Configuración del dominio personalizado con Serveo
El ataque fuera de LAN sera posible generando el dominio que indicamos anteriormente en Serveo en este caso la levanto con sniferl4bs, el resultado cuando empezamos a recibir las conexiones de nuestros slivers.
Para visualizar los Slivers con sessions listamos los que se encuentren.
Cuando llega un nuevo Sliver el mensaje que recibimos es el siguiente.
Si deseamos interactuar con alguno basta con use
Es posible visualizar información del Sliver con info.
Con PS vemos todos los procesos relacionados al sliver que estamos interactuando en este caso vemos el nombre del Sliver como tambien un antivirus?
A todo esto mas de uno se debe de preguntar si los antivirus detectan, se hicieron pruebas con Avast, AVG, TrendMicro y Windows Defender y ninguno de estos salto ya que la generación de los binarios se realizo sin ofuscación, en próximas entradas veremos con otros antivirus.
Recuerden que antes de probar con algun antivirus deben de quitar la opción que envie muestras.
Estas llegan a ser algunas opciones que tenemos dentro de Sliver, como primera toma de contacto sirve para realizar nuestras propias pruebas e ir conociendo en la siguiente entrada veremos el uso de MSF, los multiplayers, utilizar esta shell inicial para obtener otros accesos.
“La libertad y el poder conllevan responsabilidad.” - Sri Pandit Jawaharlal Nehru
Regards,
Snifer