ℹ TENGA EN CUENTA
Desde macOS 13 (Ventura), la base de datos del historial de llamadas parece no estar cifrada. Puede ejecutar el programa con el indicador
-no-key
para ver el historial de llamadas. El indicador-k
ya no es necesario, pero aún está disponible para versiones anteriores de macOS.
Convierte el historial de llamadas de MacOS X al formato de archivo CSV.
Esta es la implementación de Golang del Call History Decryptor de n0fates y se basa en la presentación de n0fate que describe los aspectos internos de la base de datos: https://papers.put.as/papers/macosx/2014/Forensic-artifacts-for-Yosemite- historial-de-llamadas-y-anlaysis-sms-ESP.pdf
La motivación para esta implementación fue:
Todo el crédito por la lógica de descifrado es para n0fate.
Descifre y guarde el historial de llamadas de macOS en un archivo CSV.
Las descargas están disponibles en la página de Lanzamientos.
El programa crea una copia de la base de datos original en un directorio temporal y opera sobre esa copia. Una vez impreso el historial de llamadas, se elimina el archivo temporal.
La base de datos original no cambia durante la ejecución.
Como referencia: macOS almacena los datos del historial de llamadas en la siguiente ubicación:
"$HOME/Library/Application Support/CallHistoryDB/CallHistory.storedata"
Inicie el programa con el indicador de línea de comando -h
para ver la ayuda de uso.
Uso sencillo:
$ ./osx-callhistory-decryptor [flags] [database_file]
Donde database_file
es opcional en macOS (en Windows tendrías que proporcionar el nombre del archivo).
Abra la aplicación Terminal. (¿Cómo?)
Inicie el descifrador del historial de llamadas:
$ ./osx-callhistory-decryptor
Intentará localizar el archivo del historial de llamadas predeterminado, hacer una copia temporal y abrirlo.
Si aparece el mensaje "Operación no permitida" en los últimos MacOS:
Se le solicitará la contraseña de inicio de sesión de su usuario; esto permite que el programa obtenga la clave de cifrado del historial de llamadas del llavero de OS X. También puede proporcionar la clave de cifrado del historial de llamadas manualmente utilizando el indicador de línea de comando -k
. Ejemplo:
$ ./osx-callhistory-decryptor -k YSBzZWNyZXQga2V5IDEyCg==
La salida se imprimirá en el terminal de forma predeterminada. Puede especificar un archivo de salida proporcionando el indicador de línea de comando -o
:
$ ./osx-callhistory-decryptor -o output.csv
Si, por algún motivo, desea abrir un archivo diferente al predeterminado, el primer parámetro de la línea de comando debe contener la ubicación del nombre del archivo:
$ ./osx-callhistory-decryptor -o output.csv Calls.db
De forma predeterminada, el formato de hora es RFC3339 sin el separador de hora/fecha "T" ( "2006-01-02 15:04:05Z07:00"
). Opcionalmente, se puede cambiar ese comportamiento con el indicador -time-format
pasando un formato diferente. Por ejemplo, si se requiere tener solo una fecha y hora, invoque el programa así:
$ ./osx-callhistory-decryptor -time-format="2006-01-02 15:04"
El formato se describe en profundidad en la documentación del paquete Go time.
Deberá obtener la base de datos y la clave de cifrado del sistema macOS original.
Obtenga la copia de CallHistory.storedata
de la máquina OS X de origen. El archivo se almacena en esta ubicación:
$HOME/Library/Application Support/CallHistoryDB/CallHistory.storedata
siendo $HOME
el directorio de inicio del usuario.
Cópialo en el mismo directorio donde descomprimiste el 'callhistory'
Obtenga la clave del llavero fuente de macOS X:
Abra la terminal o el indicador cmd.exe en Windows (¿Cómo?). Inicie el descifrador del historial de llamadas en su máquina:
C:>osx-callhistory-decryptor.exe -k <key value from step 2> <filename from step 1>
La salida se imprimirá en el terminal de forma predeterminada. Puede especificar un archivo de salida proporcionando el indicador de línea de comando -o
:
C:>osx-callhistory-decryptor.exe -o your_ex_callhistory_lol.csv <filename from step 1>
Descifrador del historial de llamadas de OS X
Copyright (C) 2016 n0fate (licencia GPL2)
Copyright (C) 2018-2021 rusq (implementación de golang, GPL3)
Este programa es software libre: puede redistribuirlo y/o modificarlo según los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia o (a su elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea de utilidad, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia pública general de GNU para obtener más detalles.
Debería haber recibido una copia de la Licencia Pública General GNU junto con este programa. De lo contrario, consulte https://www.gnu.org/licenses/.