Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
osxcollector — Un conjunto de herramientas forenses de recopilación y análisis de evidencia para OS X | Kitploit
Herramientas/GitHubGitHub/yelparchive/osxcollector
Forensia de DiscoOSINT (Inteligencia de Fuentes Abiertas)Forensia de MemoriaAnálisis ForenseForensia DigitalRespuesta a IncidentesArchived
GitHubyelparchive/osxcollector

osxcollector

Un conjunto de herramientas forenses de recopilación y análisis de evidencia para OS X

Ver Repositorio
1.9k239hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

osxcollector

Build Status PyPI

Manual de OSXCollector

OSXCollector es un conjunto de herramientas de recolección y análisis de evidencia forense para OSX.

Recolección Forense

El script de recolección se ejecuta en una máquina potencialmente infectada y genera un archivo JSON que describe la máquina objetivo. OSXCollector recopila información de plists, bases de datos SQLite y el sistema de archivos local.

Análisis Forense

Armado con la recolección forense, un analista puede responder preguntas como:

  • ¿Está infectada esta máquina?
  • ¿Cómo llegó ese malware allí?
  • ¿Cómo puedo prevenir y detectar una infección adicional?

Yelp automatiza el análisis de la mayoría de las ejecuciones de OSXCollector convirtiendo su salida en un resumen fácilmente legible y procesable de solo las cosas sospechosas. Revisa el proyecto OSXCollector Output Filters para aprender cómo aprovechar al máximo el análisis automatizado de la salida de OSXCollector.

Realizando la Recolección

osxcollector.py es un único archivo Python que se ejecuta sin dependencias en una máquina OSX estándar. Esto facilita mucho la ejecución de la recolección en cualquier máquina, sin tener que lidiar con brew, pip, archivos de configuración o variables de entorno. Simplemente copia el único archivo en la máquina y ejecútalo:

sudo osxcollector.py es todo lo que se necesita.

root@kitploit:~
$ sudo osxcollector.py
Wrote 35394 lines.
Output in osxcollect-2014_12_21-08_49_39.tar.gz

Si acabas de clonar el repositorio de GitHub, osxcollector.py está dentro del directorio osxcollector/, por lo que debes ejecutarlo como:

root@kitploit:~
$ sudo osxcollector/osxcollector.py

IMPORTANTE: asegúrate de que el comando python en tu máquina Mac OS X use el intérprete de Python predeterminado incluido con el sistema y no esté sobrescrito, por ejemplo, por la versión de Python instalada a través de brew. OSXCollector depende de un par de enlaces nativos de Python para bibliotecas de OS X, que podrían no estar disponibles en otras versiones de Python que no sean la instalada originalmente en tu sistema. Alternativamente, puedes ejecutar osxcollector.py especificando explícitamente la versión de Python que deseas usar:

root@kitploit:~
$ sudo /usr/bin/python2.7 osxcollector/osxcollector.py

La salida JSON del recolector, junto con algunos archivos útiles como registros del sistema, se ha agrupado en un archivo .tar.gz para su entrega a un analista.

osxcollector.py también tiene muchas opciones útiles para cambiar cómo funciona la recolección:

  • -i INCIDENT_PREFIX/--id=INCIDENT_PREFIX: Establece un identificador que se utiliza como prefijo del archivo de salida. El valor predeterminado es osxcollect.

    root@kitploit:~
    $ sudo osxcollector.py -i IncontinentSealord
    Wrote 35394 lines.
    Output in IncontinentSealord-2014_12_21-08_49_39.tar.gz
    

    Sé creativo con los nombres de incidentes, hace que sea más fácil reírse del dolor.

  • -p ROOTPATH/--path=ROOTPATH: Establece la ruta raíz del sistema de archivos sobre el que se ejecutará la recolección. El valor predeterminado es /. Esto es excelente para ejecutar la recolección en la imagen de un disco.

    root@kitploit:~
    $ sudo osxcollector.py -p '/mnt/powned'
    
  • -s SECTION/--section=SECTION: Ejecuta solo una parte de la recolección completa. Se puede especificar más de una vez. La lista completa de secciones y subsecciones es:

    • version

Detalles de la Recolección

El recolector genera un archivo .tar.gz que contiene todos los artefactos recolectados. El archivo contiene un archivo JSON con la mayor parte de la información. Además, se incluye un conjunto de registros útiles de los registros del sistema objetivo.

Claves Comunes

Cada Registro

Cada línea del archivo JSON registra 1 pieza de información. Hay algunas claves comunes que aparecen en cada registro JSON:

  • osxcollector_incident_id: Un ID único compartido por cada registro.
  • osxcollector_section: La sección o tipo de datos que contiene este registro.
  • osxcollector_subsection: La subsección o descriptor más detallado del tipo de datos que contiene este registro.
Registros de Archivos

Para registros que representan archivos, hay un montón de claves útiles:

  • atime: La hora de acceso al archivo.
  • ctime: La hora de creación del archivo.
  • mtime: La hora de modificación del archivo.
  • file_path: La ruta absoluta al archivo.
  • md5: Hash MD5 del contenido del archivo.
  • sha1: Hash SHA1 del contenido del archivo.
  • sha2: Hash SHA2 del contenido del archivo.

Para registros que representan archivos descargados:

  • xattr-wherefrom: Una lista que contiene las URLs de origen y de referencia para el archivo descargado.
  • xattr-quarantines: Una cadena que describe qué aplicación descargó el archivo.
Registros SQLite

Para registros que representan una fila de una base de datos SQLite:

  • osxcollector_table_name: El nombre de la tabla de la que proviene la fila.
  • osxcollector_db_path: La ruta absoluta al archivo SQLite.

Para registros que representan datos asociados a un usuario específico:

  • osxcollector_username: El nombre del usuario

Marcas de Tiempo

OSXCollector intenta convertir las marcas de tiempo a cadenas de fecha/hora legibles por humanos en el formato YYYY-mm-dd hh:MM:ss. Utiliza heurísticas para identificar automáticamente varias marcas de tiempo:

  • segundos desde la época
  • milisegundos desde la época
  • segundos desde 2001-01-01
  • segundos desde 1601-01-01

Secciones

Sección version

La versión actual de OSXCollector.

Sección system_info

Recoge información básica sobre el sistema:

  • nombre del sistema
  • nombre del nodo
  • versión del kernel
  • versión del sistema operativo
  • arquitectura de la máquina
Sección kext

Recoge las extensiones del kernel de:

  • /System/Library/Extensions
  • /Library/Extensions
Sección startup

Recoge información sobre los LaunchAgents, LaunchDaemons, ScriptingAdditions, StartupItems y otros elementos de inicio de sesión de:

  • /System/Library/LaunchAgents
  • /System/Library/LaunchDaemons
  • /Library/LaunchAgents
  • ~/Library/LaunchAgents
  • /Library/LaunchDaemons
  • /System/Library/ScriptingAdditions
  • /Library/ScriptingAdditions
  • /System/Library/StartupItems
  • /Library/StartupItems
  • ~/Library/Preferences/com.apple.loginitems.plist

Se puede encontrar más información sobre el inicio de Mac OS X aquí: http://www.malicious-streams.com/article/Mac_OSX_Startup.pdf

Sección applications

Genera hashes de las aplicaciones instaladas y recoge el historial de instalación de:

  • /Applications
  • ~/Applications
  • /Library/Receipts/InstallHistory.plist
Sección quarantines

Las cuarentenas son básicamente la información necesaria para mostrar el mensaje '¿Estás seguro de que quieres ejecutar esto?' cuando un usuario intenta abrir un archivo descargado de Internet. Para más detalles, consulta la explicación de Apple Support sobre las cuarentenas: http://support.apple.com/kb/HT3662

Esta sección también recoge información de la comprobación de malware basada en hash de XProtect para archivos en cuarentena. El plist está en: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist

XProtect también añade versiones mínimas para los complementos de Internet. Ese plist está en: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist

Sección downloads

Genera hashes de todos los archivos descargados por los usuarios de:

  • ~/Downloads
  • ~/Library/Mail Downloads
  • ~/Library/Containers/com.apple.mail/Data/Library/Mail Downloads
Sección chrome

Recoge la siguiente información del navegador web Google Chrome:

  • Historial
  • Historial archivado
  • Cookies
  • Extensiones
  • Datos de inicio de sesión
  • Sitios principales
  • Datos web

Estos datos se extraen de ~/Library/Application Support/Google/Chrome/Default

Sección firefox

Recoge información de las diferentes bases de datos SQLite en un perfil de Firefox:

  • Cookies
  • Descargas
  • Historial de formularios
  • Historial
  • Signons
  • Permisos
  • Addons
  • Extensiones
  • Preferencias de contenido
  • Informe de salud
  • Tienda de webapps

Esta información se extrae de ~/Library/Application Support/Firefox/Profiles

Para más detalles sobre la carpeta de perfil de Firefox, consulta http://kb.mozillazine.org/Profile_folder_-_Firefox

Sección safari

Recoge información de los diferentes plists y bases de datos SQLite en un perfil de Safari:

  • Descargas
  • Historial
  • Extensiones
  • Bases de datos
  • Almacenamiento local
Sección accounts

Recoge información sobre las cuentas de los usuarios:

  • administradores del sistema: /private/var/db/dslocal/nodes/Default/groups/admin.plist
  • usuarios del sistema: /private/var/db/dslocal/nodes/Default/users
  • cuentas sociales: ~/Library/Accounts/Accounts3.sqlite
  • elementos recientes de los usuarios: ~/Library/Preferences/com.apple.recentitems.plist
Sección mail

Genera hashes de los archivos en los directorios de la aplicación Mail:

  • ~/Library/Mail
  • ~/Library/Mail Downloads
Sección full_hash

Genera hashes de todos los archivos en el disco. Todos ellos. Esto no se ejecuta por defecto. Debe activarse con:

root@kitploit:~
$ sudo osxcollector.py -s full_hash

Análisis Manual Básico

El análisis forense es un poco de arte y un poco de ciencia. Cada analista verá una historia un poco diferente al leer la salida de OSXCollector. Eso es parte de lo que hace que el análisis sea divertido.

Generalmente, la recolección se realiza en una máquina objetivo porque algo anda mal: el antivirus encontró un archivo que no le gusta, la inspección profunda de paquetes observó una llamada externa, la monitorización del endpoint notó un nuevo elemento de inicio. Los detalles de esta alerta inicial (una ruta de archivo, una marca de tiempo, un hash, un dominio, una IP, etc.) son suficientes para empezar.

Marcas de Tiempo

Simplemente grepando unos minutos antes y después de una marca de tiempo funciona muy bien:

root@kitploit:~
$ cat INCIDENT32.json | grep '2014-01-01 11:3[2-8]'

Historial del Navegador

Está ahí dentro. Una herramienta como jq puede ser muy útil para hacer una salida más elaborada:

root@kitploit:~
$ cat INCIDENT32.json | grep '2014-01-01 11:3[2-8]' | jq 'select(has("url"))|.url'

Un Solo Usuario

root@kitploit:~
$ cat INCIDENT32.json | jq 'select(.osxcollector_username=="ivanlei")|.'

Análisis Automatizado

El proyecto OSXCollector Output Filters contiene filtros que procesan y transforman la salida de OSXCollector. El objetivo de los filtros es facilitar el análisis de la salida de OSXCollector.

Consejos de Desarrollo

La funcionalidad de OSXCollector está almacenada en un solo archivo: osxcollector.py. El recolector debería ejecutarse en una instalación limpia de OS X sin paquetes ni dependencias adicionales.

Asegúrate de que todas las pruebas de OSXCollector pasen antes de editar el código fuente. Puedes ejecutar las pruebas usando: make test

Después de hacer cambios en el código fuente, ejecuta make test nuevamente para verificar que tus cambios no hayan roto ninguna de las pruebas.

Licencia

Este trabajo está licenciado bajo la Licencia Pública General de GNU y es una derivación de https://github.com/jipegit/OSXAuditor

Publicación en el blog

  • OSXCollector: Forensic Collection and Automated Analysis for OS X por Ivan Leichtling

Presentaciones

  • OSXCollector: Automated forensic evidence collection & analysis for OS X por Kuba Sendor @ BruCON 0x07
  • Squashing Rotten Apples: Automated forensics & analysis for Mac OS X with OSXCollector por Kuba Sendor @ BSides Manchester 2015
  • OSXCollector por Ivan Leichtling @ Macbrained's August Meet-Up
  • OSXCollector - Automated Forensic Evidence Collection & Analysis for OS X por Ivan Leichtling @ OpenNSM
  • OSXCollector - Automated Forensic Evidence Collection & Analysis for OS X por Ivan Leichtling @ Duo Tech Talk (publicación en el blog)

Presentaciones Externas

  • OSX Archaeology: Becoming Indiana Jones with OSXCollector and Strata por Chris Henderson y Justin Larson @ SAINTCon 2015

Recursos

¿Quieres aprender más sobre la informática forense en OS X?

  • mac4n6.com de Sarah Edward - Las mejores presentaciones sobre informática forense en Mac.

Un par de otras herramientas interesantes:

  • KnockKnock - KnockKnock es un script de Python de línea de comandos que muestra los binarios persistentes de OS X que están configurados para ejecutarse automáticamente en cada inicio.
  • Grr - Google Rapid Response: informática forense remota en vivo para respuesta a incidentes
  • osquery - Instrumentación, monitoreo y análisis del sistema operativo impulsado por SQL
Descargar herramienta
  • system_info
  • kext
  • startup
    • launch_agents
    • scripting_additions
    • startup_items
    • login_items
  • applications
    • applications
    • install_history
  • quarantines
  • downloads
    • downloads
    • email_downloads
    • old_email_downloads
  • chrome
    • history
    • archived_history
    • cookies
    • login_data
    • top_sites
    • web_data
    • databases
    • local_storage
    • preferences
  • firefox
    • cookies
    • downloads
    • formhistory
    • history
    • signons
    • permissions
    • addons
    • extension
    • content_prefs
    • health_report
    • webapps_store
    • json_files
  • safari
    • downloads
    • history
    • extensions
    • databases
    • localstorage
    • extension_files
  • accounts
    • system_admins
    • system_users
    • social_accounts
    • recent_items
  • mail
  • full_hash
  • root@kitploit:~
    $ sudo osxcollector.py -s 'startup' -s 'downloads'
    
  • -c/--collect-cookies: Recoge el valor de las cookies. Por defecto, OSXCollector no vuelca el valor de una cookie, ya que puede contener información sensible (por ejemplo, el id de sesión).

  • -l/--collect-local-storage: Recoge los valores almacenados en el almacenamiento local de los navegadores web. Por defecto, OSXCollector no vuelca los valores ya que pueden contener información sensible.

  • -d/--debug: Habilita la salida detallada y los puntos de interrupción de Python. Si algo anda mal con OSXCollector, prueba esto.

    root@kitploit:~
    $ sudo osxcollector.py -d