SlideShare a Scribd company logo
CNIT 128
Hacking Mobile Devices
8. Identifying and Exploiting 

Android Implementation Issues

Part 2
Topics
• Part 1
• Reviewing Pre-installed Applications
• Exploiting Devices
• Start through "Explanation of Privilege
Levels" (up to p. 402)
Topics
• Part 2
• Exploiting Devices
• "Practical Physical Attacks" (p. 375)
through
• "Polaris Viewer Memory Corruption" (up to
p. 402)
Topics
• Part 3
• Exploiting Devices
• "Injecting Exploits for JavaScript
Interfaces" (p. 402) and following
• Infiltrating User Data
Practical Physical Attacks
Bypassing Lock Screen
• Getting ADB Shell
Access: Two Ways
• USB Debugging
• Unlocked
Bootloaders
USB Debugging
• adb shell
• Usually turned off by
default
• Exposes data and
can be used to install
new packages
• User must approve it
• Not possible if
screen is locked
Bug
• In Android up to 4.4.2
• Navigating to energency dialer or lock screen
camera
• Allows the USB debugging authorization
prompt
• With the screen locked
Privilege Levels
• /default.prop file controld ADB privileges
• By default: ro.secure=1
• Adb runs as the shell user
• If ro.secure=0
• Adb runs as root
ALLOW_ADBD_ROOT
• From Android 4.3 onwards
• ADB won't run as root unless it's compiled with
the ALLOW_ADBD_ROOT flag
• Even if rro.secure=0
• To get root, compile a custom version of adbd
and overwrite the binary on the device
Unlocked Bootloaders
• First boot phone into Fastboot mode
• Hold down power and volume keys while
turning on the phone
• or adb reboot bootloader
• Not possible with Genymotion, Nox, or
Bluestacks
• They have no recovery partition
Unlock Bootloader
• Forces factory
reset
• Wipes all user
data
• To stop thieves
Unlocked Bootloader
• If user unlocked it and left it unlocked
• Boot into ClockworkMod Recovery ROM
(not updated since 2014)
• Get a root ADB shell
Bypassing Lock Screens
• Using the DISABLE_KEYGUARD Permission
• Allows an app to remove the lock screen
• App code:
KeyguardManager kgm =
((KeyguardManager)getSystemService("keyguard"));
KeyGuardManager.KeyguardLock kgl =
kgm.newKeyguardLock("mahh");
kgl.disableKeyguard(); Even though the
KeyguardManager.KeyguardLock
Custom Drozer Agent
drozer agent build --permission
android.permission.DISABLE_KEYGUARD
• Install agent with adb, launch it, and bypass
screen lock
• Works on Nox (Android 5.1.1)
• Fails on Genymotion (Android 9.0)
Removing Key Files
• Pattern lock screen uses data from
• /data/system/gesure.key
• PIN or password lock uses data from
• /data/system/password.key
• Removing these files disables lock screen
entirely
Removing Key Files
• But that requires running as system or root
• Privilege escalation
Abusing Android
Application Issues
• On Android 4.3 and earlier, this intent unlocks
the phone:
shell@android:/ $ am start -n 

com.android.settings/
com.android.settings.ChooseLockGeneric 

--ez confirm_credentials false 

--ei lockscreen.password_type 0 --activity-clear-task
Starting: Intent { flg=0x8000
cmp=com.android.settings/.ChooseLockGeneric (has
extras) }
Using Logic Flaws that
Don't Require Shell Access
• Some actions are allowed when a phone is
locked
• Make emergency phone calls
• Receive phone calls
• Allow third-party apps to temporarily disable
the lock screen
• Or place an activity in front of it
Motorola Droid
• Phone the locked device
• Answer the call
• Press Back button
• Escape the lock screen
Viber
• Messaging and calling app
• Place a Viber call
• Answer it
• Press the back button multiple times
• Escape the lock screen
Usng Legitimate Lock
Screen Reset Functionality
• Entering the PIN
five times
incorrectly
• Connects to a
linked Google
account
Android Device Manager
• Allows lock
screen to be
bypassed from
a Google
account
• Not active by
default--user
must enable it
Practical Remote Attacks
Remote Exploits
• Launched over the Internet
• Three modes of exploitation:
• Loading a drozer JAR that loads a limited
agent
• Installing and starting a rogue drozer agent
by abusing INSTALL_PACKAGES
• Loading a drozer JAR that is passed
Context
Browser Memory
Corruption
• The most technical method
• Reverse shells via buffer overflow, etc.
• Becoming rarer as the browser becomes more
secure
Polaris Viewer
Memory Corruption
• Office and PDF file viewer
• Pre-installed on some devices
• Exploited in 2012 with a crafted DOCX file
• Using a stack-based buffer overflow
• App also had INSTALL_PACKAGES
permission
CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 2)
Android Browser JavaScript
Interface
• All WebViews using JavaScriptInterface
• And targeting API before 17
• Are vulnerable to code execution flaws
• Includes all stock Android browsers on Android
4.1.1 and below
• Can get Context and use full permissions of
browser
Use Metasploit
• Link Ch 8g
CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 2)
Privilege Escalation
• Exynos driver exploit on some devices
• Drozer has a exploit.mmap_abuse module
• Tries to get root by abusing the map device
operation
• Similar to the exynos exploit
• Very dangerous: may cause a kernel panic
and reboot the device
Maintaining Access
• Must install a special su binary bundled with
Drozer, called "minimal su"
• Allows every app to escalate to root
• Without alerting the user
Man-in-the-Middle Exploits
• Getting in the middie
• Host a wireless network
• ARP Poisoning
• Use Burp
Man-in-the-Middle Exploits
• Intercepting SSL requires the ability to get a
root CA certificate
• Only nation-states or very rich attackers
• But many apps ignore this defense and allow
MITM attacks anyway
CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 2)

More Related Content

What's hot (20)

PDF
6. Analyzing Android Applications Part 2
Sam Bowne
 
PDF
CNIT 128 7. Attacking Android Applications (Part 3)
Sam Bowne
 
PDF
CNIT 128: Android Implementation Issues (Part 2)
Sam Bowne
 
PDF
CNIT 128 9. Writing Secure Android Applications
Sam Bowne
 
PDF
CNIT 128 2. Analyzing iOS Applications (Part 1)
Sam Bowne
 
PDF
CNIT 128 7. Attacking Android Applications (Part 3)
Sam Bowne
 
PDF
CNIT 128: 7. Attacking Android Applications (Part 1 of 3)
Sam Bowne
 
PDF
CNIT 128 8. Android Implementation Issues (Part 2)
Sam Bowne
 
PDF
CNIT 128: 3. Attacking iOS Applications (Part 2)
Sam Bowne
 
PDF
CNIT 128 6. Analyzing Android Applications (Part 2 of 3)
Sam Bowne
 
PDF
CNIT 128 7. Attacking Android Applications (Part 2)
Sam Bowne
 
PDF
CNIT 128 8. Android Implementation Issues (Part 3)
Sam Bowne
 
PDF
CNIT 128 9. Writing Secure Android Applications
Sam Bowne
 
PDF
Hacking Tizen: The OS of everything - Whitepaper
Ajin Abraham
 
PDF
2015.04.24 Updated > Android Security Development - Part 1: App Development
Cheng-Yi Yu
 
PPT
iOS Application Pentesting
n|u - The Open Security Community
 
PDF
Abusing, Exploiting and Pwning with Firefox Add-ons
Ajin Abraham
 
PDF
Shellcoding in linux
Ajin Abraham
 
PPTX
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Ajin Abraham
 
PPT
iOS Hacking: Advanced Pentest & Forensic Techniques
Ömer Coşkun
 
6. Analyzing Android Applications Part 2
Sam Bowne
 
CNIT 128 7. Attacking Android Applications (Part 3)
Sam Bowne
 
CNIT 128: Android Implementation Issues (Part 2)
Sam Bowne
 
CNIT 128 9. Writing Secure Android Applications
Sam Bowne
 
CNIT 128 2. Analyzing iOS Applications (Part 1)
Sam Bowne
 
CNIT 128 7. Attacking Android Applications (Part 3)
Sam Bowne
 
CNIT 128: 7. Attacking Android Applications (Part 1 of 3)
Sam Bowne
 
CNIT 128 8. Android Implementation Issues (Part 2)
Sam Bowne
 
CNIT 128: 3. Attacking iOS Applications (Part 2)
Sam Bowne
 
CNIT 128 6. Analyzing Android Applications (Part 2 of 3)
Sam Bowne
 
CNIT 128 7. Attacking Android Applications (Part 2)
Sam Bowne
 
CNIT 128 8. Android Implementation Issues (Part 3)
Sam Bowne
 
CNIT 128 9. Writing Secure Android Applications
Sam Bowne
 
Hacking Tizen: The OS of everything - Whitepaper
Ajin Abraham
 
2015.04.24 Updated > Android Security Development - Part 1: App Development
Cheng-Yi Yu
 
iOS Application Pentesting
n|u - The Open Security Community
 
Abusing, Exploiting and Pwning with Firefox Add-ons
Ajin Abraham
 
Shellcoding in linux
Ajin Abraham
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Ajin Abraham
 
iOS Hacking: Advanced Pentest & Forensic Techniques
Ömer Coşkun
 

Similar to CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 2) (20)

PDF
CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 1)
Sam Bowne
 
PDF
8 Android Implementation Issues (Part 1)
Sam Bowne
 
PPTX
Android Hacking + Pentesting
Sina Manavi
 
PPTX
Android Application Penetration Testing - Mohammed Adam
Mohammed Adam
 
PDF
Android Pentesting
n|u - The Open Security Community
 
PPT
Securely Deploying Android Device - ISSA (Ireland)
Angelill0
 
PPTX
Mobile security
priyanka pandey
 
PDF
ToorCon 14 : Malandroid : The Crux of Android Infections
Aditya K Sood
 
PPTX
Cybersecurity and Mobile Device Protection - Nakov at CareerShow (Sept 2019)
Svetlin Nakov
 
PPTX
Hacker Halted 2014 - Reverse Engineering the Android OS
EC-Council
 
PDF
Android Security
Robin De Croon
 
PPTX
Mobile security
Stefaan
 
PDF
Hacking your Android (slides)
Justin Hoang
 
PDF
pentest mobile app issue
shekar M
 
PDF
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
Felipe Prado
 
PDF
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
Romansh Yadav
 
PPTX
Android Security
Arqum Ahmad
 
PPTX
Security testing of mobile applications
GTestClub
 
PDF
Android Security
Lars Jacobs
 
PPTX
Untitled 1
Sergey Kochergan
 
CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 1)
Sam Bowne
 
8 Android Implementation Issues (Part 1)
Sam Bowne
 
Android Hacking + Pentesting
Sina Manavi
 
Android Application Penetration Testing - Mohammed Adam
Mohammed Adam
 
Securely Deploying Android Device - ISSA (Ireland)
Angelill0
 
Mobile security
priyanka pandey
 
ToorCon 14 : Malandroid : The Crux of Android Infections
Aditya K Sood
 
Cybersecurity and Mobile Device Protection - Nakov at CareerShow (Sept 2019)
Svetlin Nakov
 
Hacker Halted 2014 - Reverse Engineering the Android OS
EC-Council
 
Android Security
Robin De Croon
 
Mobile security
Stefaan
 
Hacking your Android (slides)
Justin Hoang
 
pentest mobile app issue
shekar M
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
Felipe Prado
 
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
Romansh Yadav
 
Android Security
Arqum Ahmad
 
Security testing of mobile applications
GTestClub
 
Android Security
Lars Jacobs
 
Untitled 1
Sergey Kochergan
 
Ad

More from Sam Bowne (20)

PDF
Introduction to the Class & CISSP Certification
Sam Bowne
 
PDF
Cyberwar
Sam Bowne
 
PDF
3: DNS vulnerabilities
Sam Bowne
 
PDF
8. Software Development Security
Sam Bowne
 
PDF
4 Mapping the Application
Sam Bowne
 
PDF
3. Attacking iOS Applications (Part 2)
Sam Bowne
 
PDF
12 Elliptic Curves
Sam Bowne
 
PDF
11. Diffie-Hellman
Sam Bowne
 
PDF
2a Analyzing iOS Apps Part 1
Sam Bowne
 
PDF
9 Writing Secure Android Applications
Sam Bowne
 
PDF
12 Investigating Windows Systems (Part 2 of 3)
Sam Bowne
 
PDF
10 RSA
Sam Bowne
 
PDF
12 Investigating Windows Systems (Part 1 of 3
Sam Bowne
 
PDF
9. Hard Problems
Sam Bowne
 
PDF
11 Analysis Methodology
Sam Bowne
 
PDF
8. Authenticated Encryption
Sam Bowne
 
PDF
7. Attacking Android Applications (Part 2)
Sam Bowne
 
PDF
7. Attacking Android Applications (Part 1)
Sam Bowne
 
PDF
5. Stream Ciphers
Sam Bowne
 
PDF
6 Scope & 7 Live Data Collection
Sam Bowne
 
Introduction to the Class & CISSP Certification
Sam Bowne
 
Cyberwar
Sam Bowne
 
3: DNS vulnerabilities
Sam Bowne
 
8. Software Development Security
Sam Bowne
 
4 Mapping the Application
Sam Bowne
 
3. Attacking iOS Applications (Part 2)
Sam Bowne
 
12 Elliptic Curves
Sam Bowne
 
11. Diffie-Hellman
Sam Bowne
 
2a Analyzing iOS Apps Part 1
Sam Bowne
 
9 Writing Secure Android Applications
Sam Bowne
 
12 Investigating Windows Systems (Part 2 of 3)
Sam Bowne
 
10 RSA
Sam Bowne
 
12 Investigating Windows Systems (Part 1 of 3
Sam Bowne
 
9. Hard Problems
Sam Bowne
 
11 Analysis Methodology
Sam Bowne
 
8. Authenticated Encryption
Sam Bowne
 
7. Attacking Android Applications (Part 2)
Sam Bowne
 
7. Attacking Android Applications (Part 1)
Sam Bowne
 
5. Stream Ciphers
Sam Bowne
 
6 Scope & 7 Live Data Collection
Sam Bowne
 
Ad

Recently uploaded (20)

PPTX
How to use grouped() method in Odoo 18 - Odoo Slides
Celine George
 
PDF
Rapid Mathematics Assessment Score sheet for all Grade levels
DessaCletSantos
 
PDF
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
DOCX
ANNOTATION on objective 10 on pmes 2022-2025
joviejanesegundo1
 
PPTX
Urban Hierarchy and Service Provisions.pptx
Islamic University of Bangladesh
 
PDF
VCE Literature Section A Exam Response Guide
jpinnuck
 
PDF
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
PPTX
Iván Bornacelly - Presentation of the report - Empowering the workforce in th...
EduSkills OECD
 
PPTX
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
PDF
Free eBook ~100 Common English Proverbs (ebook) pdf.pdf
OH TEIK BIN
 
PPTX
How Physics Enhances Our Quality of Life.pptx
AngeliqueTolentinoDe
 
PDF
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
PDF
Gladiolous Cultivation practices by AKL.pdf
kushallamichhame
 
PPTX
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
PPTX
How to use _name_search() method in Odoo 18
Celine George
 
PPTX
How to Add New Item in CogMenu in Odoo 18
Celine George
 
PPTX
How to Setup Automatic Reordering Rule in Odoo 18 Inventory
Celine George
 
PDF
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
PPTX
Project 4 PART 1 AI Assistant Vocational Education
barmanjit380
 
PDF
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 
How to use grouped() method in Odoo 18 - Odoo Slides
Celine George
 
Rapid Mathematics Assessment Score sheet for all Grade levels
DessaCletSantos
 
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
ANNOTATION on objective 10 on pmes 2022-2025
joviejanesegundo1
 
Urban Hierarchy and Service Provisions.pptx
Islamic University of Bangladesh
 
VCE Literature Section A Exam Response Guide
jpinnuck
 
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
Iván Bornacelly - Presentation of the report - Empowering the workforce in th...
EduSkills OECD
 
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
Free eBook ~100 Common English Proverbs (ebook) pdf.pdf
OH TEIK BIN
 
How Physics Enhances Our Quality of Life.pptx
AngeliqueTolentinoDe
 
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
Gladiolous Cultivation practices by AKL.pdf
kushallamichhame
 
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
How to use _name_search() method in Odoo 18
Celine George
 
How to Add New Item in CogMenu in Odoo 18
Celine George
 
How to Setup Automatic Reordering Rule in Odoo 18 Inventory
Celine George
 
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
Project 4 PART 1 AI Assistant Vocational Education
barmanjit380
 
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 

CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 2)

  • 1. CNIT 128 Hacking Mobile Devices 8. Identifying and Exploiting 
 Android Implementation Issues Part 2
  • 2. Topics • Part 1 • Reviewing Pre-installed Applications • Exploiting Devices • Start through "Explanation of Privilege Levels" (up to p. 402)
  • 3. Topics • Part 2 • Exploiting Devices • "Practical Physical Attacks" (p. 375) through • "Polaris Viewer Memory Corruption" (up to p. 402)
  • 4. Topics • Part 3 • Exploiting Devices • "Injecting Exploits for JavaScript Interfaces" (p. 402) and following • Infiltrating User Data
  • 6. Bypassing Lock Screen • Getting ADB Shell Access: Two Ways • USB Debugging • Unlocked Bootloaders
  • 7. USB Debugging • adb shell • Usually turned off by default • Exposes data and can be used to install new packages • User must approve it • Not possible if screen is locked
  • 8. Bug • In Android up to 4.4.2 • Navigating to energency dialer or lock screen camera • Allows the USB debugging authorization prompt • With the screen locked
  • 9. Privilege Levels • /default.prop file controld ADB privileges • By default: ro.secure=1 • Adb runs as the shell user • If ro.secure=0 • Adb runs as root
  • 10. ALLOW_ADBD_ROOT • From Android 4.3 onwards • ADB won't run as root unless it's compiled with the ALLOW_ADBD_ROOT flag • Even if rro.secure=0 • To get root, compile a custom version of adbd and overwrite the binary on the device
  • 11. Unlocked Bootloaders • First boot phone into Fastboot mode • Hold down power and volume keys while turning on the phone • or adb reboot bootloader • Not possible with Genymotion, Nox, or Bluestacks • They have no recovery partition
  • 12. Unlock Bootloader • Forces factory reset • Wipes all user data • To stop thieves
  • 13. Unlocked Bootloader • If user unlocked it and left it unlocked • Boot into ClockworkMod Recovery ROM (not updated since 2014) • Get a root ADB shell
  • 14. Bypassing Lock Screens • Using the DISABLE_KEYGUARD Permission • Allows an app to remove the lock screen • App code: KeyguardManager kgm = ((KeyguardManager)getSystemService("keyguard")); KeyGuardManager.KeyguardLock kgl = kgm.newKeyguardLock("mahh"); kgl.disableKeyguard(); Even though the KeyguardManager.KeyguardLock
  • 15. Custom Drozer Agent drozer agent build --permission android.permission.DISABLE_KEYGUARD • Install agent with adb, launch it, and bypass screen lock • Works on Nox (Android 5.1.1) • Fails on Genymotion (Android 9.0)
  • 16. Removing Key Files • Pattern lock screen uses data from • /data/system/gesure.key • PIN or password lock uses data from • /data/system/password.key • Removing these files disables lock screen entirely
  • 17. Removing Key Files • But that requires running as system or root • Privilege escalation
  • 18. Abusing Android Application Issues • On Android 4.3 and earlier, this intent unlocks the phone: shell@android:/ $ am start -n 
 com.android.settings/ com.android.settings.ChooseLockGeneric 
 --ez confirm_credentials false 
 --ei lockscreen.password_type 0 --activity-clear-task Starting: Intent { flg=0x8000 cmp=com.android.settings/.ChooseLockGeneric (has extras) }
  • 19. Using Logic Flaws that Don't Require Shell Access • Some actions are allowed when a phone is locked • Make emergency phone calls • Receive phone calls • Allow third-party apps to temporarily disable the lock screen • Or place an activity in front of it
  • 20. Motorola Droid • Phone the locked device • Answer the call • Press Back button • Escape the lock screen
  • 21. Viber • Messaging and calling app • Place a Viber call • Answer it • Press the back button multiple times • Escape the lock screen
  • 22. Usng Legitimate Lock Screen Reset Functionality • Entering the PIN five times incorrectly • Connects to a linked Google account
  • 23. Android Device Manager • Allows lock screen to be bypassed from a Google account • Not active by default--user must enable it
  • 25. Remote Exploits • Launched over the Internet • Three modes of exploitation: • Loading a drozer JAR that loads a limited agent • Installing and starting a rogue drozer agent by abusing INSTALL_PACKAGES • Loading a drozer JAR that is passed Context
  • 26. Browser Memory Corruption • The most technical method • Reverse shells via buffer overflow, etc. • Becoming rarer as the browser becomes more secure
  • 27. Polaris Viewer Memory Corruption • Office and PDF file viewer • Pre-installed on some devices • Exploited in 2012 with a crafted DOCX file • Using a stack-based buffer overflow • App also had INSTALL_PACKAGES permission
  • 29. Android Browser JavaScript Interface • All WebViews using JavaScriptInterface • And targeting API before 17 • Are vulnerable to code execution flaws • Includes all stock Android browsers on Android 4.1.1 and below • Can get Context and use full permissions of browser
  • 32. Privilege Escalation • Exynos driver exploit on some devices • Drozer has a exploit.mmap_abuse module • Tries to get root by abusing the map device operation • Similar to the exynos exploit • Very dangerous: may cause a kernel panic and reboot the device
  • 33. Maintaining Access • Must install a special su binary bundled with Drozer, called "minimal su" • Allows every app to escalate to root • Without alerting the user
  • 34. Man-in-the-Middle Exploits • Getting in the middie • Host a wireless network • ARP Poisoning • Use Burp
  • 35. Man-in-the-Middle Exploits • Intercepting SSL requires the ability to get a root CA certificate • Only nation-states or very rich attackers • But many apps ignore this defense and allow MITM attacks anyway