This page looks best with JavaScript enabled

Sliver Framework C2 - Ataque fuera de Lan y primeros pasos

 ·   ·   6 min read

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 para salir del Slive que estemos interactuando tenemos que ejecutar background

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

Share on
Support the author with

Avatar
WRITTEN BY