Apple Pattern of Life Lazy Output'er (APOLLO)
December 3, 2020 ยท View on GitHub
v1.4
- Gather database files on macOS and jailbroken iOS devices, gather_macos and gather_ios (IP/Port required)
- Ability to ignore certain directories with --ignore
- Improved CSV Output
- JSON Output within SQLite Output
v1.3
- License Updated
Dependencies
- SimpleKML - Copy the
simplekmldirectory to the directory where apollo.py is being run from. Download here
To install simplekml dependencies on macOS:
sudo easy_install pippip3 install simplekml
Usage
python3 apollo.py {gather_macos, gather_ios} <modules directory> <data directory> --ignore <dir>
python3 apollo.py extract -o {csv, sql, sql_json} -p {apple, android, windows, yolo} -v {8,9,10,11,12,13,14,10.13,10.14,10.15,10.16,and9,and10,and11,win10_1803,win10_1809,win10_1903,win10_1909,yolo} -k <modules directory> <data directory>
Output Options (-o)
csv- CSV (Tab Delimited)sql- SQLite Database (Output in square brackets)sql_json- SQLite Database (Output in JSON)
KMZ Output(-k)
- Outputs location coordinates to separate files based on module.
- iOS Location Mapping with APOLLO - I Know Where You Were Today, Yesterday, Last Month, and Years Ago!
- iOS Location Mapping with APOLLO โ Part 2: Cellular and Wi-Fi Data (locationd)
Platform Options (-p)
appleandroidwindowsyolo- Just parse whatever. Will use all available queries. Be careful with this option as you may get redundant data.
Version Options (-v)
- iOS
8,9,10,11,12,13,14 - macOS
10.13,10.14,10.15,10.16(macOS 11) - Android
and8,and9,and10 - Windows 10
win10_1803,win10_1809,win10_1903,win10_1909 yolo- Just parse whatever. Will use all available queries. Be careful with this option as you may get redundant data.
Getting Errors? Try This (Windows users, use eqivlent commands)
- Pro Tip: The 'gather' functions chmod/chown the files to ensure they are accessible.
You may see that APOLLO reports back "0 databases" found when executed, most likely from CurrentPowerlog.PLSQL and locationd modules. Two common directories with databases that cause problems due to permissions (depends on how files were extracted from device):
/private/var/root/Library/Caches/locationd//private/var/containers/Shared/SystemGroup/[GUID]/Library/BatteryLife
Fix Permissions:
chmod -R 755 /private/var/containers/Shared/SystemGroup/[GUID_for BatteryLife Data]/chmod -R 755 /private/var/root
Still not working?
- Check database permissions - Use
chmodto give some databases with "all blank" permissions some sort of permission. (Happens with many types of physical-logical extractions.) - Check database ownership - Use
chownto take ownership of the files.
To Do List
- Powerlog Gzip Files
- Database Coalescing
- Visualizations
- Accept Zip file input
- Output Formats (JSON?)
- Modules:
- Additional Health modules
- Additional Native App Specific Modules
Thank You!
- Thanks to Sam Alptekin of @sjc_CyberCrimes, script is much, much faster than original.
- Thanks to @AlexisBrignoni for Python 3 support.
References
- Search APOLLO on mac4n6.com