OS X Auditor

OS X Auditor es una herramienta gratuita de análisis forense informático para Mac OS X.
OS X Auditor analiza y genera hashes de los siguientes artefactos en el sistema en ejecución o en una copia de un sistema que desee analizar:
- las extensiones del kernel
- los agentes y demonios del sistema
- los agentes y demonios de terceros
- los elementos de inicio antiguos y obsoletos del sistema y de terceros
- los agentes de los usuarios
- los archivos descargados por los usuarios
- las aplicaciones instaladas
Extrae:
- los archivos en cuarentena de los usuarios
- el historial de Safari de los usuarios, descargas, top sites, LastSession, bases de datos HTML5 y almacenamiento local
- las cookies de Firefox de los usuarios, descargas, historial de formularios, permisos, lugares e inicios de sesión
- el historial de Chrome de los usuarios y el historial archivado, cookies, datos de inicio de sesión, top sites, datos web, bases de datos HTML5 y almacenamiento local
- las cuentas sociales y de correo electrónico de los usuarios
- los puntos de acceso WiFi a los que se ha conectado el sistema auditado (e intenta geolocalizarlos)
También busca palabras clave sospechosas en los propios archivos .plist.
Puede verificar la reputación de cada archivo en:
- MHR de Team Cymru
- VirusTotal
- su propia base de datos local
Puede agregar todos los registros de los siguientes directorios en un zip:
- /var/log (-> /private/var/log)
- /Library/logs
- el directorio ~/Library/logs del usuario
Finalmente, los resultados pueden ser:
- renderizados como un archivo de registro txt simple (para que pueda usar cat-pipe-grep… o simplemente grep)
- renderizados como un archivo de registro HTML
- enviados a un servidor Syslog
Autor
Jean-Philippe Teissier - @Jipe_ y otros.
Estado del desarrollo
OS X Auditor YA NO SE MANTIENE - NO DEBE USARLO
Soporte
OS X Auditor comenzó como un proyecto de fin de semana y ya no se mantiene. Ha sido bifurcado por los grandes chicos de Yelp, quienes crearon osxcollector.
Recomiendo usar osxcollector (https://github.com/Yelp/osxcollector)
Cómo instalar
Simplemente copie todos los archivos de GitHub.
Dependencias
Si planea ejecutar OS X Auditor en una Mac, obtendrá soporte completo para el análisis de plist con OS X Foundation a través de pyobjc:
Si no puede instalar pyobjc o si planea ejecutar OS X Auditor en otro sistema operativo que no sea Mac OS X, puede experimentar algunos problemas con el análisis de plist:
pip install biplist
pip install plist
Estas dependencias se eliminarán cuando un módulo plist nativo funcional esté disponible en Python.
Cómo ejecutar
- OS X Auditor funciona bien con Python >= 2.7.2 (2.7.9 está bien). No funciona con una versión diferente de Python todavía (debido a la pesadilla de plist).
- OS X Auditor se mantiene para funcionar en la última versión de OS X. Hará lo posible en versiones anteriores de OS X.
- Debe ejecutarlo como root (o mediante sudo) si desea usarlo en un sistema en ejecución; de lo contrario, no podrá acceder a algunos archivos del sistema y de otros usuarios.
- Si está utilizando claves de API de variables de entorno (ver más abajo), necesita usar
sudo -E para usar las variables de entorno del usuario.
Escriba osxauditor.py -h para obtener todas las opciones disponibles, luego ejecútelo con las opciones seleccionadas.
ej. [sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
Configuración de variables de entorno
API de VirusTotal:
export VT_API_KEY=aaaabbbbccccddddeeee
Registro de cambios
0.4.3
0.4.2
- CAMBIO: claves de API movidas del código a variables de entorno
0.4.1
- CAMBIO: búsqueda de puertas traseras genéricas en LaunchAgentPlist
0.4
- NUEVO: extrae eventos (arranque/apagado, hibernación entrada/salida, comandos sudo, dispositivos USB, ttys abiertos/cerrados, de los registros del sistema y crea una línea de tiempo (aún no legible) (-e/eventlogs)
- NUEVO: extrae LoginItems de usuarios
- NUEVO: extrae RecentItems de usuarios
- NUEVO: extrae LastSession de artefactos de Safari
- NUEVO: extrae detalles de grupos y usuarios del sistema
- CORRECCIÓN: llamadas incorrectas a os.path.join()
- CORRECCIÓN: error en ParsePackagesDir() recursivo
0.3.1
- NUEVO: proporciona el nombre del sistema, versión y compilación del sistema auditado
- NUEVO: capacidad de analizar aplicaciones instaladas (-i/--installedapps)
- NUEVO: extrae el historial archivado de artefactos de Google Chrome
- NUEVO: informe de registro HTML legible por humanos :)
- CORRECCIÓN: HTMLLog() y SYSLOGLog() ahora manejan excepciones
- CORRECCIÓN: ParsePackagesDir() ahora es recursivo y solo intenta analizar aplicaciones o extensiones del kernel. Se agregó algo de salida DEBUG
- CORRECCIÓN: GRAN mejora UTF-8/UNICODE
- CORRECCIÓN: los archivos .DS_Store y .localized se ignoran en ParsePackagesDir()
0.3
- NUEVO: capacidad de analizar artefactos de Google Chrome (historial e historial archivado, cookies, datos de inicio de sesión, top sites, datos web, bases de datos HTML5 y almacenamiento local) con -b/--browsers
- NUEVO: capacidad de extraer los AP WiFi a los que se ha conectado el sistema auditado desde las preferencias de Airport e intentar geolocalizarlos usando Geomena (-A/--airportprefs). Debe usar -g/--wifiapgeolocate para habilitar la geolocalización (o establecer GEOLOCATE_WIFI_AP en True en el código).
- NUEVO: capacidad de extraer cuentas sociales y de correo electrónico de los usuarios (-U/--usersaccounts)
- CORRECCIÓN: capacidad de manejar bases de datos sqlite bloqueadas, especialmente al auditar un sistema en vivo
- CORRECCIÓN: duplicados de hashes eliminados
- CORRECCIÓN: mejor identificación de md5 en la salida HTML
- CAMBIO: indica si una sección (elementos de inicio, directorio de paquetes, tablas de base de datos, etc.) está vacía para aclarar la salida
- CAMBIO: los artefactos de descargas (-d/--downloads) incluyen los directorios de descarga predeterminados antiguos y nuevos de Mail.app
0.2.1
- CAMBIO/CORRECCIÓN: implementar una función BigFileMd5() para hashear archivos muy grandes, evitar excepciones de MemoryError y reducir el uso de memoria
- CORRECCIÓN: entradas UTF-8 de LSQuarantineEvent en ParseQuarantines()
0.2
- NUEVO: capacidad de enviar los resultados a un servidor syslog remoto (-S)
- NUEVO: capacidad de crear un zip de todos los archivos de registro encontrados en el sistema auditado (-z)
- CAMBIO: el análisis de artefactos de inicio incluye los StartupItems antiguos y obsoletos
- CAMBIO: el análisis de artefactos de inicio incluye las ScriptingAdditions
- CAMBIO: el análisis de artefactos en cuarentena incluye los antiguos QuarantineEvents para sistemas Mac OS X <= 10.6
- CAMBIO: gran mejora en el manejo de plist utilizando el puente Python ⟷ Objective-C (PyObjC) y OS X Foundation
- CAMBIO: algunos cambios en los parámetros de opciones (-t, -l)
- CAMBIO: licencia cambiada de CC a GPL
- CAMBIO: los niveles de depuración ahora son más consistentes en los registros de salida
- CAMBIO: pequeño cambio con el Bootstrap CSS
- CAMBIO: la búsqueda en VirusTotal ahora se realiza en modo masivo
- CORRECCIÓN: error en ParseLaunchAgents() en archivos plist que contienen claves Program y ProgramArguments
0.1
Diseño y Capacidades
