
Adquisidor de evidencia forense

Compilado y probado con Rust 1.50+. Abra una terminal en el directorio del proyecto y para compilar una versión de lanzamiento escriba
cargo build --release
La compilación de depuración se puede compilar usando
cargo build
El ejecutable compilado se encuentra en target/release/gargamel.exe o target/debug/gargamel.exe, respectivamente.
Si desea cambiar el nivel de registro:
src/main.rsLevelFilter::Info por (por ejemplo) LevelFilter::Trace para un registro más detallado.
LevelFilter::Trace registrará todo, incluyendo contraseñas.Por ahora, esta aplicación solo funciona en Windows y la computadora de destino debe usar Windows o Linux.
Asegúrese de tener los siguientes programas en el mismo directorio que Gargamel.
psexec, descargarpaexec, una alternativa de código abierto a PsExec, descargarwinpmem, una herramienta de imagen de memoria de código abierto, descargar.
plink y pscp, clientes CLI de SSH/SCP de código abierto, descargarSharpRDP, un ejecutor de comandos de código abierto que usa RDP, descargarWMImplant, un ejecutor de comandos WMI de PowerShell de código abierto, descargar7za.exe, una versión independiente de consola del archivador 7zip, descargarNota: Necesitamos tanto psexec como paexec. Aunque se supone que ambas aplicaciones son funcionalmente equivalentes, en realidad tienen un comportamiento diferente bajo algunas circunstancias.
Gargamel debe ejecutarse desde un terminal elevado para ser completamente funcional. Actualmente no soporta el diálogo UAC ni ningún tipo de notificación cuando se ejecuta con privilegios limitados. Cuando se ejecuta con privilegios limitados de usuario, algunas operaciones como el volcado de memoria de destino no funcionarán.
Suponga que desea conectarse a una computadora con los siguientes parámetros:
192.168.42.47Janonbusr123El siguiente comando adquirirá el estado del firewall, el estado de la red, los usuarios conectados, los procesos en ejecución,
las conexiones de red activas, el registro, los registros de eventos del sistema y de la aplicación utilizando el método PsExec.
La evidencia se almacenará en el directorio testResults relativo a la ubicación de Gargamel.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults
Gargamel le pedirá la contraseña del usuario remoto, en nuestro ejemplo la contraseña es nbusr123.
Tenga en cuenta que la contraseña se ocultará al escribir.
También es posible especificar la contraseña directamente como argumento del programa.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -p nbusr123 -o testResults
Suponga que desea conectarse a una computadora en un dominio con los siguientes parámetros:
WORKSPACEJanovPCJanonbusr123El siguiente comando adquirirá el estado del firewall, el estado de la red, los usuarios conectados, los procesos en ejecución, las conexiones de red activas, el registro, los registros de eventos del sistema y de la aplicación utilizando el método PsExec.
gargamel.exe -c JanovPC -u Jano -d WORKSPACE --psexec -o testResults
O para omitir la solicitud de contraseña, especifique la contraseña directamente.
gargamel.exe -c JanovPC -u Jano -d WORKSPACE --psexec -p nbusr123 -o testResults
PsExec es uno de los 5 métodos de conexión soportados.
Puede reemplazar --psexec con las siguientes opciones:
--psexec--psrem, si la administración remota de PowerShell está configurada en la máquina de destino.--rdp, si RDP está habilitado en la máquina de destino.--wmi.--ssh, si la máquina de destino usa Linux.Es posible usar varios métodos a la vez. Por ejemplo, para usar tanto PsExec como RDP, se puede usar el siguiente comando.
gargamel.exe -c 192.168.42.47 -u Jano --psexec --rdp -o testResults
También hay un interruptor especial --all que equivale a especificar --psexec --rdp --psrem --wmi.
Nota: Los parámetros de lanzamiento son independientes del orden, es decir, no importa en qué orden se especifiquen los parámetros.
Para adquirir también un volcado de memoria, simplemente añada la bandera -m a los parámetros del programa, es decir,
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -m
Si desea adquirir SOLO el volcado de memoria sin otra evidencia, use el siguiente comando.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -m --no-events-search --no-evidence-search --no-registry-search
Esta funcionalidad está disponible solo para objetivos Windows.
Gargamel puede ejecutar comandos personalizados de Windows CMD o shell de Linux en la máquina remota.
Primero cree un archivo custom-commands.txt con el siguiente contenido.
# Will be run using any method
ipconfig
# Will run only when launching with at least one of --all, --psexec, --wmi methods
:psexec:wmi ipconfig -all
Los resultados de los comandos anteriores se almacenarán en el directorio especificado por la opción -o.
Para ejecutar los comandos anteriores escritos en custom-commands.txt use el interruptor -e, es decir,
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -e custom-commands.txt
Gargamel puede descargar archivos remotos.
Primero cree un archivo custom-files.txt con el siguiente contenido.
C:\Users\Public\sss*
C:\Users\Jano\danove.pdf
# This line and the next one will be ignored
# C:\Users\Jano\somBajecny.pptx
Los resultados de los comandos anteriores se almacenarán en el directorio especificado por la opción -o.
Para ejecutar los comandos anteriores escritos en custom-files.txt use el interruptor -s, es decir,
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -s custom-files.txt
Todos los interruptores soportados se describen a continuación.
USAGE:
gargamel.exe [FLAGS] [OPTIONS] --user <user>