Pairing and mounting an iPhone on Kali requires to install libimobiledevice and ifuse. The problem is, libimobiledevice 1.2.0 coming with the standard repositories does not work with iOS 10. The solution consists in installing the unreleased versions of libimobiledevice and ifuse from github.
Set up the environment
Install required packages:
$ sudo apt-get install -y build-essential git automake libtool pkg-config libplist-dev libplist++-dev python-dev libssl-dev libusb-1.0-0-dev libfuse-dev
Build and install compatible libraries
Clone git repositories of libimobiledevice and ifuse:
$ mkdir /tmp/src $ cd /tmp/src $ for x in libusbmuxd usbmuxd libimobiledevice ifuse; do git clone https://github.com/libimobiledevice/${x}.git; done
Build and install from source (order matters):
- libusbmuxd
$ cd /tmp/src/libusbmuxd $ ./autogen.sh --prefix="/usr" $ sudo make $ sudo make install
- libimobiledevice
$ cd /tmp/src/libimobiledevice $ ./autogen.sh --prefix="/usr" $ sudo make $ sudo make install
- usbmuxd
$ cd /tmp/src/usbmuxd $ ./autogen.sh --prefix="/usr" $ sudo make $ sudo make install
- ifuse
$ cd /tmp/src/ifuse $ ./autogen.sh --prefix="/usr" $ sudo make $ sudo make install
Then reboot.
Connect the iPhone
Create a mount point:
$ sudo mkdir /media/iphone $ sudo chown <user>:<group> /media/iphone $ chmod 775 /media/iphone
Connect your iPhone with the USB cable. Accept the pairing request when prompted.
Get your iPhone identifier (UDID):
$ /usr/bin/idevice_id -l
This command displays a 40 character hexadecimal identifier, unique to your device. If the command does not return, it is probably because you have not accepted the pairing from the iPhone side.
$ /usr/bin/idevicepair -u <udid> pair
Mount your iPhone
$ ifuse /media/iphone/ $ ls /media/iphone
Now you should have access to your iPhone data.
Unmount your iPhone
fusermount -u /media/iphone