AutoMacTC Colector Automático Triaje Forense Mac
AutoMacTC Colector Automático Triaje Forense Mac

AutoMacTC: Colector Automático de Triaje Forense Mac

Se trata de un framework modular de recolección de triaje forense diseñado para acceder a diversos artefactos forenses en macOS, analizarlos y presentarlos en formatos viables para su análisis. El resultado puede proporcionar una valiosa información para la respuesta a incidentes en un entorno de MacOS. Automactc puede ejecutarse contra un sistema vivo o un disco muerto (como un volumen montado).

Requisitos

  • Python 3.7.3 o anterior (También es compatible con Python 2.7)
  • Sistemas objetivos MacOS, para la colección en vivo (probado con éxito en las versiones principales de MacOS 10.11 a 10.15)
  • Sistemas de análisis MacOS, para el triaje contra una imagen de disco montada (se admiten imágenes de disco de los sistemas macOS 10.11 a 10.14)

Uso Básico

En su forma más simple, puedes ejecutar automactc con la siguiente invocación.

Nota

Automactc requiere privilegios de sudo para ejecutarse, y debe ser llamado específicamente desde /usr/bin/python2.7 o /usr/bin/python3 para asegurar la completa funcionalidad.

sudo /usr/bin/python2.7 automactc.py -m all

Esto ejecutará todos los módulos (-m) con la configuración por defecto, es decir – el directorio de entrada por defecto será /, o la raíz del volumen actual – el directorio de salida por defecto será ./, o el directorio de trabajo desde el que se ejecuta automactc (NO la ubicación del script) – el prefijo por defecto para los nombres de los archivos de salida será automactc-output – el comportamiento por defecto es rellenar un runtime.log para depuración e información – el formato por defecto para los archivos de salida de los artefactos individuales es CSV – la prioridad por defecto de la CPU se establece en baja – el comportamiento por defecto al completarse es comprimir todos los archivos de salida a tar.gz

Para listar todos los módulos disponibles y no hacer nada más, simplemente ejecuta:

automactc.py -l

La dirección de entrada y la dirección de salida pueden especificarse con las flags -i y -o, respectivamente.

automactc.py -i / -o /automactc_output -m all

Los módulos pueden especificarse para su inclusión o exclusión sobre la base de cada uno de ellos. En otras palabras, se pueden INCLUIR módulos específicos, como pslist, bash y profiler:

automactc.py -m pslist bash profiler

O bien, puede excluir módulos específicos, para ejecutar todos EXCEPTO los especificados, como dirlist y autoruns:

automactc.py -x dirlist autoruns

Control de Salida

Para cada módulo, automactc generará un archivo de salida y lo llenará de datos. El formato del archivo de salida es por defecto CSV, pero se puede cambiar a JSON con la flag -fmt. Actualmente no es posible especificar el formato de salida por cada módulo.

automactc.py -m all -fmt json

Una vez que el archivo de salida se llena con datos, se pasa a un archivo .tar que se genera cuando automactc completa su primer módulo. Una vez completado el último módulo, automactc pasará el archivo .tar a .tar.gz.

El nombre del archivo tar sigue la siguiente convención de nombres:

prefix,hostname,ip,automactc_runtime.tar

El primer campo, prefijo, puede ser especificado en tiempo de ejecución con -p. Si no se especifica, el prefijo se establece en automactc-output. Los demás campos se rellenan a partir de los datos recopilados en tiempo de ejecución. Esto es útil cuando se ejecuta automactc en varios sistemas para un solo incidente.

automactc.py -m all -p granny-smith

Mientras que el comportamiento por defecto es generar un tarball, el uso de la flag -nt evitará la creación de un archivo tar y dejará los archivos de salida tal como están en el directorio de salida.

automactc.py -m all -p granny-smith -nt

Módulos Actuales

  • pslist (lista de procesos actuales en el momento de la ejecución de automactc)
  • lsof (archivo actual se maneja abierto en el momento de la ejecución de automactc)
  • netstat (conexiones actuales de la red en el momento de la ejecución de automactc)
  • asl (analizador de archivos Apple System Log (.asl))
  • auditlog (analizador de archivos /private/var/audit/*)
  • autoruns (analizador de varias ubicaciones de persistencia y plists)
  • bash (analizador de archivos bash/.*_history para todos los usuarios)
  • chrome (analizador de historial de visitas y descargas de Chrome)
  • cookies (analizador cookies de chrome y firefox)
  • coreanalytics (analizador pruebas de ejecución del programa producidas por los diagnósticos de Apple)
  • dirlist (lista de archivos y directorios a través del disco)
  • firefox (analizador de historial de visitas y descargas de Firefox)
  • installhistory (analizador historial de instalación de programas)
  • mru (analizador archivos plist SFL y MRU)
  • netconfig (analizador de configuración de airport e interfaz de red)
  • quarantines (analizador base de datos de QuarantineEventsV2)
  • quicklook (analizador base de datos Quicklooks)
  • safari (analizador historial de visitas y descargas en safari)
  • spotlight (analizador de búsqueda usuarios, spotlight)
  • ssh (analizador archivos known_hosts y authorized_keys de cada usuario
  • syslog (analizador archivos system.log)
  • systeminfo (identificación básica del sistema, como la dirección IP actual, el número de serie, el nombre del host)
  • terminalstate (analizador archivos Terminal savedState)
  • users (enumera los usuarios actuales y los eliminados del sistema)
  • utmpx (enumera las sesiones de usuario en los terminales)

Uso Avanzado

De forma predeterminada, automactc rellena la depuración detallada registrándose en un archivo llamado named prefix,hostname,ip,runtime.log. Puedes desactivar la generación de este registro con:

automactc.py -m all -nl

Por defecto, automactc imprimirá los mensajes de registro de INFO y ERROR en la consola. Para ejecutar automactc en modo silencioso y no escribir NINGÚN mensaje en la consola, usa -q. Los mensajes INFO incluyen mensajes de inicio del programa, un mensaje por inicio de módulo, y mensajes de finalización/limpieza.

automactc.py -m all -q

Para imprimir los mensajes DEBUG en la consola junto con los mensajes INFO y ERROR, use la flag -d.

automactc.py -m all -d

Automactc se ejecuta con la menor prioridad de CPU (niceness) posible por defecto. Es posible deshabilitar niceness y ejecutar con una prioridad normal con la flag -r.

automactc.py -m all -r

Automactc también puede funcionar contra un disco muerto, si el disco está montado como un volumen en el sistema de análisis. Una vez montado, ejecuta automactc con el directorio de entrada apropiado (apuntando al punto de montaje del volumen) y -f para activar el modo forense.

NOTA

Para un sistema vivo, si deseas recopilar dirlist en los dispositivos periféricos montados, puedes utilizar -f con -i /, de lo contrario la dirlist no volverá a aparecer en el /Volumen montado.

automactc.py -i /Volumes/mounted_IMAGE/ -o /path/to/output -f -m all

Argumentos Dirlist

Inclusión/exclusión en el Directorio

Es posible limitar la recursividad de las listas de direcciones a directorios específicos con la flag -K. Por defecto, dirlist intentará recursar desde la raíz del volumen de inputdir, a menos que se especifique lo contrario con este flag. Se pueden especificar varios directorios en una lista separada por espacios.

automactc.py -m dirlist -K /Users/ /Applications/ /tmp

También es posible excluir directorios específicos de la recursividad de la lista con la flag -E.

automactc.py -m dirlist -E /path/to/KnownDevDirectory

Por defecto, los siguientes directorios y archivos se excluyen en los sistemas activos:

/.fseventsd (to reduce output verbosity)
/.DocumentRevisions-V100 (to reduce output verbosity)
/.Spotlight-V100 (to reduce output verbosity)
/Users//Pictures (to avoid permissions errors) /Users//Library/Application Support/AddressBook (to avoid permissions errors)
/Users//Calendar (to avoid permissions errors) /Users//Library/Calendars (to avoid permissions errors)
/Users/*/Library/Preferences/com.apple.AddressBook.plist (to avoid permissions errors)

Por defecto, los siguientes directorios se excluyen cuando se ejecuta el modo forense contra una imagen montada:

/.fseventsd (to reduce output verbosity)
/.DocumentRevisions-V100 (to reduce output verbosity)
/.Spotlight-V100 (to reduce output verbosity)

Cualquier directorio adicional a excluir se añadirá a esta lista por defecto, a menos que proporcione primero el argumento -E no-defaults, en cuyo caso sólo se excluirán los directorios especificados.

automactc.py -m dirlist -E no-defaults /path/to/KnownDevDirectory

Hashing

Los argumentos hashing de abajo pueden ser usados para AMBAS dirlist y los módulos autoruns.

Por defecto, el módulo dirlist sólo tiene archivos de hash con el algoritmo sha256. Si deseas utilizar ambos algoritmos, el SHA256 y el MD5, utiliza -H sha256 md5. Si deseas usar sólo md5, usa -H md5. Si no deseas utilizar ninguno de los dos, usa -H none.

Nota

Si ejecutas el módulo dirlist contra un disco muerto con el hashing activado, esto actualmente toma un tiempo LARGO para ejecutarse.

automactc.py -m dirlist -H sha256 md5

Por defecto, el módulo dirlist sólo tiene archivos con tamaños inferiores a 10mb. Para anular esta configuración y los archivos de hash con un umbral de tamaño diferente, el umbral se puede cambiar con la flag -S en número de megabytes. NOTA: si se aumentas el umbral de tamaño, es probable que aumente el tiempo de ejecución del módulo dirlist. Por ejemplo, para hacer hash de archivos de hasta 15MB:

automactc.py -m dirlist -S 15

Paquetes, Firmas, Multihilo

De forma predeterminada, el módulo dirlist NO se reincorporará a los directorios del paquete, incluyendo los siguientes:

'.app', '.framework','.lproj','.plugin','.kext','.osax','.bundle','.driver','.wdgt'

Para anular este ajuste, use la flag -R. NOTA: esto produce un volumen de salida mucho más alto y lleva mucho más tiempo. Estos directorios de paquetes serán configurables en una futura actualización.

Por defecto, el módulo dirlist comprobará las firmas de código de todos los archivos .app, .kext y .osax encontrados. Para evitar que el módulo dirlist compruebe cualquier firma de código, utiliza la flag -NC. Este argumento puede ser usado para AMBOS módulos dirlist y autoruns.

automactc.py -m dirlist -NC

Por defecto, el módulo dirlist ha sido multihilo para aumentar la velocidad de procesamiento. El multihilo se puede desactivar con la flag -NM.

automactc.py -m dirlist -NM

Menú de Ayuda

Plain Text
Más artículos
Wacker Diccionario de Cracking WPA3
Wacker: Un Diccionario de Cracking WPA3