43
HITBSecConf2013 Vladimir Katalov, ElcomSoft Co. Ltd. Modern smartphone forensics Apple iCloud (backups, FindMyPhone, document storage) encrypted BlackBerry backups (BB 10 and Olympia Service) Windows Phone 8 (yet another cloud for backups)

Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

  • Upload
    others

  • View
    13

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

HITBSecConf2013 Vladimir Katalov ElcomSoft Co Ltd

Modern smartphone forensics1313

Apple iCloud (backups FindMyPhone document storage)13encrypted BlackBerry backups (BB 10 and Olympia Service)13

Windows Phone 8 (yet another cloud for backups)

Global smartphone market

(Source IDC Worldwide Quarterly Mobile Phone Tracker)

bull About 12 billion smartphones worldwide bull ldquoSmart devicesrdquo ndash carry a lot of sensitive data bull Corporate deployments are increasing bull hard need for forensics

Smartphone forensics methods

Android iOS Windows Phone

BlackBerry OS

Logical acquisition Yes Yes Yes

Physical acquisition YesNo YesNo No Yes

Chip-off YesNo No Yes

Local backup Yes Yes No Yes

Cloud backup Yes Yes Yes No

Documents in cloud Yes Yes Yes No

Location service Yes Yes Yes No

Backups to cloud why

iOS forensics - logical amp physical acquisition

bull Logical acqusition

bull ldquoAskrdquo device to produce backup

bull Device must be unlocked (by passcode or iTunes)

bull Device may produce encrypted backup

bull Limited amount of information

bull Physical acqusition

bull Boot-time exploit to run unsigned code or jailbreak

bull Device lock state isnrsquot relevant can bruteforce passcode

bull Can get all information from the device

bull but not for iPhone 5 and iPad 4 (

iOS passcodebull Device passcode

bull Protect unauthorized access to the device bull Bypassing is not enough (used in encryption)

bull Disk encryption bull Keychain

bull System-wide storage for sensitive data (keys passwords etc) bull Data is encrypted

iCloud services

bull Introduced in Oct 2011 bull Introduced with iOS 5 bull 5 GB free storage bull Up to 50 GB paid storage bull Over 320 million users in July 2013 bull Backups documents notes calendar Find My Phone

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 2: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Global smartphone market

(Source IDC Worldwide Quarterly Mobile Phone Tracker)

bull About 12 billion smartphones worldwide bull ldquoSmart devicesrdquo ndash carry a lot of sensitive data bull Corporate deployments are increasing bull hard need for forensics

Smartphone forensics methods

Android iOS Windows Phone

BlackBerry OS

Logical acquisition Yes Yes Yes

Physical acquisition YesNo YesNo No Yes

Chip-off YesNo No Yes

Local backup Yes Yes No Yes

Cloud backup Yes Yes Yes No

Documents in cloud Yes Yes Yes No

Location service Yes Yes Yes No

Backups to cloud why

iOS forensics - logical amp physical acquisition

bull Logical acqusition

bull ldquoAskrdquo device to produce backup

bull Device must be unlocked (by passcode or iTunes)

bull Device may produce encrypted backup

bull Limited amount of information

bull Physical acqusition

bull Boot-time exploit to run unsigned code or jailbreak

bull Device lock state isnrsquot relevant can bruteforce passcode

bull Can get all information from the device

bull but not for iPhone 5 and iPad 4 (

iOS passcodebull Device passcode

bull Protect unauthorized access to the device bull Bypassing is not enough (used in encryption)

bull Disk encryption bull Keychain

bull System-wide storage for sensitive data (keys passwords etc) bull Data is encrypted

iCloud services

bull Introduced in Oct 2011 bull Introduced with iOS 5 bull 5 GB free storage bull Up to 50 GB paid storage bull Over 320 million users in July 2013 bull Backups documents notes calendar Find My Phone

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 3: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Smartphone forensics methods

Android iOS Windows Phone

BlackBerry OS

Logical acquisition Yes Yes Yes

Physical acquisition YesNo YesNo No Yes

Chip-off YesNo No Yes

Local backup Yes Yes No Yes

Cloud backup Yes Yes Yes No

Documents in cloud Yes Yes Yes No

Location service Yes Yes Yes No

Backups to cloud why

iOS forensics - logical amp physical acquisition

bull Logical acqusition

bull ldquoAskrdquo device to produce backup

bull Device must be unlocked (by passcode or iTunes)

bull Device may produce encrypted backup

bull Limited amount of information

bull Physical acqusition

bull Boot-time exploit to run unsigned code or jailbreak

bull Device lock state isnrsquot relevant can bruteforce passcode

bull Can get all information from the device

bull but not for iPhone 5 and iPad 4 (

iOS passcodebull Device passcode

bull Protect unauthorized access to the device bull Bypassing is not enough (used in encryption)

bull Disk encryption bull Keychain

bull System-wide storage for sensitive data (keys passwords etc) bull Data is encrypted

iCloud services

bull Introduced in Oct 2011 bull Introduced with iOS 5 bull 5 GB free storage bull Up to 50 GB paid storage bull Over 320 million users in July 2013 bull Backups documents notes calendar Find My Phone

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 4: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Backups to cloud why

iOS forensics - logical amp physical acquisition

bull Logical acqusition

bull ldquoAskrdquo device to produce backup

bull Device must be unlocked (by passcode or iTunes)

bull Device may produce encrypted backup

bull Limited amount of information

bull Physical acqusition

bull Boot-time exploit to run unsigned code or jailbreak

bull Device lock state isnrsquot relevant can bruteforce passcode

bull Can get all information from the device

bull but not for iPhone 5 and iPad 4 (

iOS passcodebull Device passcode

bull Protect unauthorized access to the device bull Bypassing is not enough (used in encryption)

bull Disk encryption bull Keychain

bull System-wide storage for sensitive data (keys passwords etc) bull Data is encrypted

iCloud services

bull Introduced in Oct 2011 bull Introduced with iOS 5 bull 5 GB free storage bull Up to 50 GB paid storage bull Over 320 million users in July 2013 bull Backups documents notes calendar Find My Phone

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 5: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iOS forensics - logical amp physical acquisition

bull Logical acqusition

bull ldquoAskrdquo device to produce backup

bull Device must be unlocked (by passcode or iTunes)

bull Device may produce encrypted backup

bull Limited amount of information

bull Physical acqusition

bull Boot-time exploit to run unsigned code or jailbreak

bull Device lock state isnrsquot relevant can bruteforce passcode

bull Can get all information from the device

bull but not for iPhone 5 and iPad 4 (

iOS passcodebull Device passcode

bull Protect unauthorized access to the device bull Bypassing is not enough (used in encryption)

bull Disk encryption bull Keychain

bull System-wide storage for sensitive data (keys passwords etc) bull Data is encrypted

iCloud services

bull Introduced in Oct 2011 bull Introduced with iOS 5 bull 5 GB free storage bull Up to 50 GB paid storage bull Over 320 million users in July 2013 bull Backups documents notes calendar Find My Phone

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 6: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iOS passcodebull Device passcode

bull Protect unauthorized access to the device bull Bypassing is not enough (used in encryption)

bull Disk encryption bull Keychain

bull System-wide storage for sensitive data (keys passwords etc) bull Data is encrypted

iCloud services

bull Introduced in Oct 2011 bull Introduced with iOS 5 bull 5 GB free storage bull Up to 50 GB paid storage bull Over 320 million users in July 2013 bull Backups documents notes calendar Find My Phone

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 7: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud services

bull Introduced in Oct 2011 bull Introduced with iOS 5 bull 5 GB free storage bull Up to 50 GB paid storage bull Over 320 million users in July 2013 bull Backups documents notes calendar Find My Phone

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 8: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud Control Panel

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 9: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backup - what amp whenbull Contacts and Contact Favorites bull Messages (including iMessages) bull Call history bull Application data bull Device settings bull Camera roll (photos and videos) bull Purchases (music movies TV apps books) bull Mail accounts bull Network settings (saved Wi-Fi hotspots VPN settings etc) bull Paired Bluetooth devices bull Offline web application cachedatabase bull Safari bookmarks cookies history offline data bull and much more

bull Backup runs daily when device is bull Connected to the Internet over Wi-Fi bull Connected to a power source bull Locked

bull Can force backup bull [Settings] | [iCloud] | [Storage amp Backup] | [Back Up Now]

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 10: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backups reverse-engineering

13

bull jailbreak iPhone

bull Install Open SSH get keychain (keychain-2db)

bull [Settings] | [iCloud] | [Delete Account] | [Delete from My iPhone]

bull [Settimngs] | [General] | [Reset] | [Reset All Settings]

bull reboot

bull set up Wi-Fi connection (proxy)

bull replace keychain with our own trusted root certificate (need key 0x835 amp keychain)

bull read all the traffic )

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 11: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backup protocol flow

bull Dynamic endpoints depend on Apple ID

bull Built on Google Protocol Buffers (mostly)

bull Files are split into chunks

bull Apple provides file-to-chunks mapping chunk encryption keys and full request info to 3rd-party storage provider (AmazonMicrosoft)

bull Encryption key depends on chunk data

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 12: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Files in iCloud

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 13: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backup authentication

queryhttpssetupicloudcomsetupauthenticate$APPLE_ID$ AuthorizationBasic ltauthentication datagt authentication data = mime64 (AppleIDpassword) 13returns mmeAuthToken dsPrsID example GET setupauthenticate$APPLE_ID$ HTTP11 Host setupicloudcom Accept User-Agent iCloudexe (unknown version) CFNetwork52026 X-Mme-Client-Info ltPCgt ltWindows 617601SP10 Wgt ltcomappleAOSKit88gt Accept-Language en-US Authorization Basic cXR0LnRld3RAaWNtb3VkLmNvbTqRd2VydHkxMjM0NQ==

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 14: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backup get auth token backup IDs keys

queryhttpssetupicloudcomsetupget_account_settings AuthorizationBasic ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns mmeAuthToken (newother one) queryhttpsp11-mobilebackupicloudcommbs(dsPrsID) Authorization ltauthentication datagt authentication data = mime64 (dsPrsIDmmeAuthToken) 13returns list of backup IDs (backupudid) queryhttpsp11-mobilebackupicloudcommbs2005111682(backupudid)getKeys

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 15: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backup download files (1)

Enumerate snapshots HTTPS GEThttpsp11-mobilebackupicloudcommbs(dsPrsID) (backupudid) (snapshotid)listFilesoffset=(offset)amplimit=(limit)Get file authentication tokens HTTPS POST httpsp11-mobilebackupicloudcommbs(dsPrsID)(backupudid)(snapshotid)getFiles

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 16: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backup download files (2)

Download chunks Windows Azurehttpmsbnx000004blobcorewindowsnet80cntg6YMJKQBPxQruxQAr30Csp=rampsr=bampbyte-range=154-31457433ampse=2013-06-07T1014Zampst=2013-06-07T0919Zampsig=0EdHy75gGHCee2BjKePZBqz8xbWxpTxaYyASwFXVx22Fg3D se contains iCloud authorization time (expires in one hour) Amazon AWShttpus-std-00001s3-external-1amazonawscomI9rh20QBPX4jizMAr3vYx-client-request-

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 17: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud encryptionbull Data stored at 3rd-party storage providers is encrypted bull Apple has encryption keys to that data bull Few files are further encrypted using keys from OTA backup keybag bull Keychain items are encrypted using keys from OTA backup keybag bull Need key 0x835 (securityd) to decrypt most keys from OTA backup keybag

bull There is no user-configurable encryption for iCloud backups bull iCloud backups are stored in Microsoft and Amazon clouds in encrypted form bull Apple holds encryption keys and thus have access to data in iCloud backups bull If Apple stores 0x835 keys then it can also have access to Keychain data (ie passwords)13bull Apple may have legal obligations to do this (eg LE) bull No notification after backup downloading (as with device restore)

iCloud backups - summary

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 18: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Find My Phone

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 19: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

FindMyPhone protocol

Authorization

validatehttpssetupicloudcomsetupws1validate) ClientBuildNumber=1M63768 (constant) ClientId (random GUID) lt- instanceloginhttpssetupicloudcomsetupws1login AppleIDextended_loginid=sha1(apple_id+instance)passwordlt- dsid

How just sniffing HTTP traffic (wwwicloudcom Find My Phone)

Get devices with location

initClienthttpsp11-fmipwebicloudcomfmipserviceclientwebinitClient refreshClienthttpsp11-fmipwebicloudcomfmipserviceclientwebrefreshClientiddsidlt- content (location)

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 20: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

FindMyPhone - demo output

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 21: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud documents

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 22: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Get files from iCloudTo get list of files1313bull Authentication request (with given AppleID amp password) Client gets mmeAuthToken in return

which in order is used to create authentication token (together with dsid) dsid (Destination Signaling IDentifier) is an unique ID assigned to the user when registering at iCloudcom 13

bull Request to get AccountSettings Client gets an URL (ubiquityUrl) with an address to get UUID (unique user identifier) file list info on file tokens and for authorization 13

bull Request to get file list (POST) Output (for every file) 13

bull file name bull file id bull parent folder id bull last change time bull checksum bull access rights

13To download given file1313bull Request to get file token (using file id checksum and aliasMap) 13

bull Authorization request Returns information on file chunks and containers Output container list (with URLs) and chunk information

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 23: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud backup packages

bullKeyNote PDF Microsoft PowerPoint KeyNote rsquo09 bullPages PDF Microsoft Word Pages rsquo09 bullNumbers PDF Microsoft Excel Numbers rsquo09 bullSome other programs (1Password etc)

13

Storage plist + content (text media files)

Reguests 13

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 24: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud docs demo output

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 25: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Apple 2FA (two-step verification)

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 26: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Apple 2FA (cont-d)

Requires to verify your identity using one of your devices before you can 13bull Sign in to My Apple ID to manage your account 13

bull Make an iTunes App Store or iBookstore purchase from a new device 13

bull Get Apple ID-related support from Apple 13

13Does NOT protect 13bull iCloud backups 13

bull Find My Phone data 13

bull Documents stored in the cloud

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 27: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Apple iOS 7 iCloud keychain

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 28: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

iCloud keychain

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 29: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Apple iOS 7 iCloud keychain - cont-d

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 30: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Apple iCloud Conclusion

bull Balance between security privacy and convenience bull iCloud security risks bull Use additional encryption bull Better 2FA implementation bull Need further work

bull My Photo Stream bull Photo Sharing bull 3rd party apps data bull New security classes bull iCloud keychain bull Back To My Mac bull FindMyPhone on iOS 7 bull Touch ID (iPhone 5S)

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 31: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Windows Phone backupsWhat is saved13

bull Internet Explorer Favourites13

bull List of installed apps13

bull Theme and accent configuration13

bull Call history13

bull App settings (where applicable - email and accounts lock screen etc)13

bull Test messages (SMS conversations)13

bull Photos (good quality - uses data allowance)13

Can get with LiveSDK13

bull Basic user information13

bull Contacts13

bull Calendars13

bull Files photos videos documents13

Download full backup13

13

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 32: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Windows Phone Live SDKIdentity API

bull Get basic information on user

Hotmail API

bull Manage contacts

bull Manage calandars amp events

SkyDrive API

bull Files amp documents

bull Photos

bull Videos

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 33: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Windows Live SDK (contrsquod)bull Authentication13

bull Needs client_id of registered application13bull Several requests to httpsloginlivecom to get redirects and some

parameters13bull Get antiForgeryVerificationToken13bull Get access_token1313

bull Get basic info13GET httpsapislivenetv50meaccess_token=hellip1313

bull Get contacts13GET httpsapislivenetv50mecontactsaccess_token==hellip1313

bull Get access to SkyDrive13GET httpsapislivenetv50meskydrivemy_documentsaccess_token==

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 34: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

WP8 get SMSbull Server https-mhotmailcom

(to get correct name send request to blum-hotmailcom) bull Protocol ASHTTP bull Data format wbxml bull Can be compressed (Accept-Encoding gzip deflate)

Requestsresponces bull Get (login password in base64

success bull FolderHierarchy

success bull SyncKeys

success bull CategoriesItems (CollectionId)

return SyncKey bull GetItemEstimate (SyncKey CollectionId)

number of SMS bull GetSMS (SyncKey CollectionId)

new SyncKey and SMS bull GetClosedSMS

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 35: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

WP8 get mailGET httpmaillivecom HTTP1113Host maillivecom13Connection keep-alive13Accept texthtmlapplicationxhtml+xmlapplicationxmlq=09q=0813User-Agent Mozilla50 (Windows NT 62 WOW64) AppleWebKit53736 (KHTML like Gecko) Chrome2701453116 Safari5373613Accept-Encoding gzipdeflatesdch1313lt redirect to authentication (httpsloginlivecomloginsrf)1313gt POST httpsloginlivecomppsecurepostsrf (login password)1313lt redirect to maillivecomid=XXX1313gt GET httpsmaillivecomid=XXX1313lt redirect to mailbox1313HTTP11 302 Found13Location httpscol131maillivecomdefaultaspxid=XXXamprru=inbox1313Go to mailbox1313GET httpscol131maillivecomdefaultaspxid=XXXamprru=inbox HTTP1113Host col131maillivecom13Connection keep-alive13

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 36: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

WP8 find my phonebull Map phonersquos location13

GET httpswwwwindowsphonecomru-rumyfind HTTP1113or13GET httpswwwwindowsphonecomru-rumyphoneslocate-statusrequest=1713

bull Make the phone ring13httpswwwwindowsphonecomru-rumyphonesc34a5c89b6aabc87cdc457b49e5f3abbf81c72e0b19d48bdbd3918e36785f646ring13

bull Lock the phone and show a message13bull Erase the phone1313Authentication is required of course

You can set up Find My Phone to save your location every few hours or to use push notifications instead of text messages to send commands (and apps)

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 37: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

BlackBerry backupsOld format

bull IPD files (all databases in a single container)

bull BBB files (in fact ZIP archives with several IPDs one database per IPD)

New format

bull Unencrypted BBB-QNX (three tar files inside) for PlayBook with firmware lt20

bull Encrypted BBB-QNX (all tar files are encrypted) for BB OS 10 (backup created with BlackBerry Link

For old formats - simple password protection

bull Encryption AES-256

bull Password verification

bull BlackBerry Desktop Software 5 pbkdf2 (1) - yes just one iteration

bull BlackBerry Desktop Software 6 pbkdf2 (20000)

13

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 38: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

BB10 backupsbull mounting QNX6 partitions

bull backup encryption AES-256

bull authenticationverification HMAC-SHA1

bull backupcgibackuparch

bull backupcgiscramble

bull bbid (BlackBerry ID) (libbbidsobbid_profile_get_user_properties(urnbbidusername)

bull qbek (libbbidsobbid_profile_get_user_properties(urnbbidbackupandrestorekey)

bull cache storage accountsltidgtsysbbidkeyCache

bull if not found request to BB Olympia Service (blackberryidblackberrycom)

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 39: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

BlackBerry Token Servicebull request bbid password pin salt (clientrsquos entropy) bull response Нct=1379081439336ampst=1379168703336ampse=PF3V5ikbH8fx2wSb2mbHITGy0q1xIcGZZ66Oma3o66kampet=1381673439336ampfn=Johnampln=Doeampnn=johndoe-59094ampun=johndoe40gmailcomampec=AcDGzWbVM12nd0BigqIfJYw3Dampem=johndoe40gmailcomampat=AQAQzTh0_L5BwTuZf0w0L2CYVGmMyrzSbs7OszPBq72NIYYibKt2ZKGOsAjODk6lITmQAasSsJMYRzS8Tf2IMQY44_HiCDaWzCBRwQj68XDDH0z6Qhp7gCXuKqSk6_v4KTQ8pWMtpVriBNBWO4t2lg879MY_Oro2upCzw32EmCgAKapUPGTIeAlKeo3kr13v-Td2IpWU0b3kQJVJsTMz9GBjG29RFkcxw-039ksxUJYnDxkCrgbrAwVFpw5Pg5XmAZxtA

bull se - server entropy bull at - authentication token bull ec - user ID for BB cloud rervices (saved to devrpmbBBID_BDEK) bull at (creation time) st (server time) et (expity time) bull further reuests RST (Request Secure Token) with token type and serice name bull to get qbek

bull get authentication token bull get BBIDAuthN_1 token for urnbbidv1olympia) bull send request for authzoqbek token bull register device ob BB server (using authzoqbek token) bull get request on backupAndRestoreKey info (two IDs) bull get janusUrl by request to kronosbbprotectblackberrycom bull get qbek from janusUrlFlashGetFile

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom

Page 40: Modern smartphone forensics · • Device must be unlocked (by passcode or iTunes) • Device may produce encrypted backup • Limited amount of information • Physical acqusition

Thank you 13

Modern smartphone forensicsVladimir Katalov ElcomSoft Co Ltd

(twitter vkatalov)

httpwwwelcomsoftcom httpblogcrackpasswordcom