
Shell interactiva multiplataforma para Microsoft Defender for Endpoint Live Response
Intérprete interactivo multiplataforma para Live Response de Microsoft Defender para punto de conexión.
| Característica | Detalle |
|---|---|
| Plataforma | PowerShell Core 7.0+ (Windows, Linux, macOS) |
| Modos de API | Interno (portal, casi en tiempo real) y Oficial (pública, sin estado) |
| Ejecución | Comandos arbitrarios + 25 comandos nativos de LR |
| Autenticación | 7 métodos de autenticación, menú unificado, actualización automática |
| Licencia | MIT |
LaraC2 Shell se conecta a Live Response de MDE a través de dos rutas de API independientes: la API interna del portal (sesiones persistentes, latencia de ~2-5s) y la API pública oficial (por comando, latencia de ~20-60s). Carga automáticamente stubs de ejecutor, maneja la limitación de frecuencia de forma transparente y proporciona un REPL completo con gestión de máquinas, gestión de bibliotecas y un sistema de ayuda integrado.
| Documento | Propósito |
|---|---|
| Guía de usuario | Configuración paso a paso, autenticación y operación |
| Referencia de comandos | Todos los comandos, enrutamiento, agrupación, autocompletado |
| Referencia de errores | Códigos HTTP, errores del intérprete, errores de autenticación, correcciones |
| Rendimiento | Latencia interna vs oficial, rendimiento, límites |
| Arquitectura | Internos, cadenas de autenticación, puntos finales, estructura de archivos |
| Contribuciones | Cómo contribuir, probar, enviar PRs |
| Política de seguridad | Cómo reportar una vulnerabilidad de forma privada |
| Referencias | Trabajo previo, investigación relacionada, créditos |
| Descargo de responsabilidad | Autorización, créditos |
connect reautentica cuando la sesión expiramulti con filtrado por patrón de nombre y limitación top-NMachine.LiveResponse + Library.Manage (modo oficial)git clone https://github.com/akefallonitis/larac2shell.git cd larac2shell pwsh -File shell/Invoke-MDEShell.ps1
Eso es todo. El shell presenta un menú unificado de 7 métodos de autenticación al primer lanzamiento — elige uno, autentícate, selecciona una máquina, y estarás en un REPL. No hay archivo de configuración, no hay banderas, nada que configurar.```
Select API mode:
Internal API (security.microsoft.com — near real-time, ~2-5s/cmd)
1 Credentials + MFA username + password, TOTP/push/SMS [auto-refresh]
2 Software passkey FIDO2/WebAuthn JSON key file [auto-refresh]
3 ESTS cookie ESTSAUTHPERSISTENT from browser (~24hr)
4 Temporary Access Pass one-time admin-issued code
5 Direct sccauth + XSRF cookies from browser DevTools (~1hr)
Official API (api.securitycenter.microsoft.com — CI/CD ready, ~20-60s/cmd)
6 Device code browser login (interactive)
7 Client credentials app registration with client secret
Auth method (1-7):
Las opciones 1-5 establecen el modo interno, 6-7 establecen el oficial. Puedes cambiar de modo más tarde sin reiniciar — consulta Cambio de modos en línea a continuación.
[INT myhost C:]> mode Current mode: Internal API Switch with: 'mode internal' or 'mode official'.
[INT myhost C:]> mode official [Mode] Switching from Internal API to official... (auth menu for official mode opens) [Mode] Now in official mode. Run 'machines' to list targets or 'connect <name|id>' to select one.
`mode <target>` desconecta cualquier sesión LR actual, limpia el estado de autenticación anterior y vuelve a ejecutar el flujo de autenticación para el modo target. Cuando regresa, estás autenticado en el nuevo modo sin ninguna máquina seleccionada — ejecuta `machines` para listar, o `connect <name|id>` para saltar directamente a un objetivo. No se requiere reinicio.
### Atajos de CLI (opcional)
Para scripting o cuando quieras saltar el menú unificado:```powershell
# Pre-select the mode (narrows the auth menu to 1-5 or 6-7)
pwsh -File shell/Invoke-MDEShell.ps1 -Mode internal
pwsh -File shell/Invoke-MDEShell.ps1 -Mode official
# Pre-select a machine (skips the picker)
pwsh -File shell/Invoke-MDEShell.ps1 -Machine myhost
# Software passkey path (internal mode)
pwsh -File shell/Invoke-MDEShell.ps1 -PasskeyPath ./keys/passkey.json