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

Android Implementation Issues

Part 1
Topics
• Part 1
• Reviewing Pre-installed Applications
• Exploiting Devices
• Start through "Explanation of Privilege
Levels" (up to p. 375)
Topics
• Part 2
• Exploiting Devices
• "Practical Physical Attacks" (p. 376)
through
• "Man-in-the-Middle Exploits" (up to p. 401)
Topics
• Part 3
• Exploiting Devices
• "Injecting Exploits for JavaScript
Interfaces" (p. 401) and following
• Infiltrating User Data
Reviewing Pre-Installed
Applications
Root Access
• Each installed app has its own attack surface
• But when you exploit an app, you get access
with the privileges of that app
• Not root access
• But you can often exfiltrate user data without
root access
Find Powerful Apps
INSTALL PACKAGES
• Exploiting an app with this permission allows
an attacker to install a Trojan app
• Permission level signature|system
• Defined by the android package
Drozer on an Emulator
• Real devices have many more apps with this
dangerous permission
Apps Running as System
• On an emulator
• Many more on a real device (66 in book)
Finding Remote Attack
Vectors
Techniques
• Trick user into installing a malicious app
• Server-side: exploit a listening port
• Client-side: open a malicious document
Browsers and Document
Readers
• Frequently vulnerable
• Complex parsers written in native code
• Fuzzers can fund vulnerabilities
• Samsung has Polaris Viewer for PDFs by
default
• No PDF reader on my emulator
BROWSEABLE Activities
• Allows users to open content inside an
installed app rather than the browser
• App stores installed on the device use this
functionality
• To open links that point to apps
Manifest
• From a rogue Drozer agent
• Opening a link starting with pwn:// will open
this activity
• But not in an iframe anymore
<activity
android:name="com.mwr.dz.PwnActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="pwn" />
</intent-filter>
</activity>
Two Methods
• Via pwn:// URI or "web intent"
<a href="pwn://me">Start drozer<a>
<a href="intent://me/#Intent;scheme=pwn;end">

Start Drozer</a>
Many apps use
BROWSABLE
filters on my
emulator
Custom Update
Mechanisms
• Apps often write their own update mechanisms
• Rather than using the Play Store
• This requires the INSTALL_PACKAGES
permission
• Code may be vulnerable
• May check for a new file over HTTP or
broken HTTPS
Remote Loading of Code
• Link Ch 8b
Remote Loading of Code
• Apps can load new code at runtime
• Using the Java Reflection API
• With the DexClassLoader class
• May load code over the network, or from a
local location that can be overwritten by
other applications
• May cause code injection vulnerabilities
WebViews
• Recipe for disaster
• Using a WebView
• Defining a JavaScript interface
• Loading from a cleartext source or having
SSL bypass code
• Targeting API versions prior to 17 or using
an Android version earlier than 4.2
• May allow JavaScript code injection
Listening Services
• Android is unlikely to have listening ports
• My Genymotion has a few
Messaging Applications
• Examples, may be vulnerable
• Short Message Service (SMS)
• Multimedia Messaging Service (MMS)
• Commercial Mobile Alert System (CMAS)
• Email clients
• Chat clients
Finding Local Vulnerabilities
• Manual process
• Download all installed apps
• Convert them to readable source code
• Use grep to search for vulnerabilities
• Or use Drozer's scanner modules
Drozer's SQLi Scanner
• Doesn't find the Sieve SQL injection
Exploiting Devices
Remote and Local Exploits
• Remote exploit
• Gives attacker a foothold on the device
• Such as software exploits, MITM attacks, or
malware
• Local exploit
• Requires a foothold on the device already
• Local privilege escalation
Using Attack Tools
• Performs ARP poisoning, DNS spoofing, etc.
• We're using local proxy settings
• You need ettercap to perform real MITM
attacks on a LAN
Ettercap
Burp
• Can inspect and modify traffic
• Sends fake TLS certificates
• Burp can be added as a "trusted CA"
Burp Extensions
• Supposedly you can add Python code
Burp Extensions
• But it doesn't work
• After several hours, I couldn't make any of
the useful examples work
• Scripts just fail without sending any error
messages anywhere
• It's torture
• Just ignoring Burp and writing Python scripts
outside it seems far more useful
Drozer
• Infrastructure Mode
• Runs a Drozer server, as a C&C server
• Make "rogue agents" which are like malware
• Custom-built to phone home to the Drozer
server
• Much like Metasploit
Privilege Levels
Non-System App without
Context
• Ex: a shell from a Web browser
• Attacker has privileges of the compromised
app
• Can navigate filesystem under the app's
user account
• Cannot use Java libraries
• Cannot install packages, or read SMS, etc.
Non-System App with
Context
• Attacker takes over app's execution flow and
can load arbitrary classes
• Attacker camn retrieve app Context
• Can do anything the app can do
Installed Package
• Can request arbitrary permissions
• Can be granted them, depending on
protection level
ADB Shell Access
• Can install apps
• Can interact with apps as a developer
System User Access
• Running as system user, can
• Install apps
• Change device configuration
• Access data from any app's private directory
Root User Access
• Ultimate power, can
• Install apps
• Read and write RAM
• Manipulate any aspect of the device
CNIT 128 8. Identifying and Exploiting Android Implementation Issues (Part 1)

More Related Content

What's hot (20)

PDF
CNIT 128 2. Analyzing iOS Applications (Part 2)
Sam Bowne
 
PDF
CNIT 128 7. Attacking Android Applications (Part 3)
Sam Bowne
 
PDF
CNIT 128: 3. Attacking iOS Applications (Part 2)
Sam Bowne
 
PDF
CNIT 128 2. Analyzing iOS Applications (Part 1)
Sam Bowne
 
PPT
iOS Application Pentesting
n|u - The Open Security Community
 
PDF
The Dark Side of PowerShell by George Dobrea
EC-Council
 
PDF
Abusing, Exploiting and Pwning with Firefox Add-ons
Ajin Abraham
 
PDF
Shellcoding in linux
Ajin Abraham
 
PDF
Hacking Tizen: The OS of everything - Whitepaper
Ajin Abraham
 
PPTX
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Ajin Abraham
 
PPTX
Kali net hunter
Prashanth Sivarajan
 
PDF
CSW2017 chuanda ding_state of windows application security
CanSecWest
 
PPTX
Permission in Android Security: Threats and solution
Tandhy Simanjuntak
 
PDF
CSW2017 Geshev+Miller logic bug hunting in chrome on android
CanSecWest
 
PDF
I Want More Ninja – iOS Security Testing
Jason Haddix
 
PPTX
Lateral Movement with PowerShell
kieranjacobsen
 
PPT
iOS Application Penetration Testing for Beginners
RyanISI
 
PDF
Pentesting iOS Apps
Herman Duarte
 
PDF
Android App Hacking - Erez Metula, AppSec
DroidConTLV
 
PPTX
Android secure offline storage - CC Mobile
Steve De Zitter
 
CNIT 128 2. Analyzing iOS Applications (Part 2)
Sam Bowne
 
CNIT 128 7. Attacking Android Applications (Part 3)
Sam Bowne
 
CNIT 128: 3. Attacking iOS Applications (Part 2)
Sam Bowne
 
CNIT 128 2. Analyzing iOS Applications (Part 1)
Sam Bowne
 
iOS Application Pentesting
n|u - The Open Security Community
 
The Dark Side of PowerShell by George Dobrea
EC-Council
 
Abusing, Exploiting and Pwning with Firefox Add-ons
Ajin Abraham
 
Shellcoding in linux
Ajin Abraham
 
Hacking Tizen: The OS of everything - Whitepaper
Ajin Abraham
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Ajin Abraham
 
Kali net hunter
Prashanth Sivarajan
 
CSW2017 chuanda ding_state of windows application security
CanSecWest
 
Permission in Android Security: Threats and solution
Tandhy Simanjuntak
 
CSW2017 Geshev+Miller logic bug hunting in chrome on android
CanSecWest
 
I Want More Ninja – iOS Security Testing
Jason Haddix
 
Lateral Movement with PowerShell
kieranjacobsen
 
iOS Application Penetration Testing for Beginners
RyanISI
 
Pentesting iOS Apps
Herman Duarte
 
Android App Hacking - Erez Metula, AppSec
DroidConTLV
 
Android secure offline storage - CC Mobile
Steve De Zitter
 

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

PDF
8 Android Implementation Issues (Part 1)
Sam Bowne
 
PPTX
Android Penetration Testing - Day 3
Mohammed Adam
 
PDF
CNIT 128 8. Android Implementation Issues (Part 3)
Sam Bowne
 
PDF
CNIT 128 8. Android Implementation Issues (Part 2)
Sam Bowne
 
PDF
CNIT 128: Android Implementation Issues (Part 2)
Sam Bowne
 
PDF
CNIT 128 Ch 4: Android
Sam Bowne
 
PDF
9 Writing Secure Android Applications
Sam Bowne
 
PPTX
128-ch4.pptx
SankalpKabra
 
PPTX
VAPT_FINAL SLIDES.pptx
karthikvcyber
 
PDF
CNIT 128 7. Attacking Android Applications (Part 2)
Sam Bowne
 
PDF
unit 2 confinement techniques.pdf
RohitGautam261127
 
PPTX
VAPT PRESENTATION full.pptx
DARSHANBHAVSAR14
 
PDF
Android_Malware_IOAsis_2014_Analysis.pdf
jjb117343
 
PDF
CNIT 128: 7. Attacking Android Applications (Part 1 of 3)
Sam Bowne
 
PPTX
Botnets Attacks.pptx
MuhammadRehan856177
 
PPTX
Creating Havoc using Human Interface Device
Positive Hack Days
 
PDF
3. APTs Presentation
isc2-hellenic
 
PPTX
Hacker Halted 2014 - Reverse Engineering the Android OS
EC-Council
 
PDF
Hacking your Droid (Aditya Gupta)
ClubHack
 
PPTX
Hacking By Nirmal
NIRMAL RAJ
 
8 Android Implementation Issues (Part 1)
Sam Bowne
 
Android Penetration Testing - Day 3
Mohammed Adam
 
CNIT 128 8. Android Implementation Issues (Part 3)
Sam Bowne
 
CNIT 128 8. Android Implementation Issues (Part 2)
Sam Bowne
 
CNIT 128: Android Implementation Issues (Part 2)
Sam Bowne
 
CNIT 128 Ch 4: Android
Sam Bowne
 
9 Writing Secure Android Applications
Sam Bowne
 
128-ch4.pptx
SankalpKabra
 
VAPT_FINAL SLIDES.pptx
karthikvcyber
 
CNIT 128 7. Attacking Android Applications (Part 2)
Sam Bowne
 
unit 2 confinement techniques.pdf
RohitGautam261127
 
VAPT PRESENTATION full.pptx
DARSHANBHAVSAR14
 
Android_Malware_IOAsis_2014_Analysis.pdf
jjb117343
 
CNIT 128: 7. Attacking Android Applications (Part 1 of 3)
Sam Bowne
 
Botnets Attacks.pptx
MuhammadRehan856177
 
Creating Havoc using Human Interface Device
Positive Hack Days
 
3. APTs Presentation
isc2-hellenic
 
Hacker Halted 2014 - Reverse Engineering the Android OS
EC-Council
 
Hacking your Droid (Aditya Gupta)
ClubHack
 
Hacking By Nirmal
NIRMAL RAJ
 
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
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
 
PDF
4. Block Ciphers
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
 
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
 
4. Block Ciphers
Sam Bowne
 
Ad

Recently uploaded (20)

PDF
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PDF
The Different Types of Non-Experimental Research
Thelma Villaflores
 
PPTX
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
PDF
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PPTX
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
PDF
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PDF
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PDF
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
PPTX
SPINA BIFIDA: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
PDF
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
The Different Types of Non-Experimental Research
Thelma Villaflores
 
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
SPINA BIFIDA: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 

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

  • 1. CNIT 128 Hacking Mobile Devices 8. Identifying and Exploiting 
 Android Implementation Issues Part 1
  • 2. Topics • Part 1 • Reviewing Pre-installed Applications • Exploiting Devices • Start through "Explanation of Privilege Levels" (up to p. 375)
  • 3. Topics • Part 2 • Exploiting Devices • "Practical Physical Attacks" (p. 376) through • "Man-in-the-Middle Exploits" (up to p. 401)
  • 4. Topics • Part 3 • Exploiting Devices • "Injecting Exploits for JavaScript Interfaces" (p. 401) and following • Infiltrating User Data
  • 6. Root Access • Each installed app has its own attack surface • But when you exploit an app, you get access with the privileges of that app • Not root access • But you can often exfiltrate user data without root access
  • 8. INSTALL PACKAGES • Exploiting an app with this permission allows an attacker to install a Trojan app • Permission level signature|system • Defined by the android package
  • 9. Drozer on an Emulator • Real devices have many more apps with this dangerous permission
  • 10. Apps Running as System • On an emulator • Many more on a real device (66 in book)
  • 12. Techniques • Trick user into installing a malicious app • Server-side: exploit a listening port • Client-side: open a malicious document
  • 13. Browsers and Document Readers • Frequently vulnerable • Complex parsers written in native code • Fuzzers can fund vulnerabilities • Samsung has Polaris Viewer for PDFs by default • No PDF reader on my emulator
  • 14. BROWSEABLE Activities • Allows users to open content inside an installed app rather than the browser • App stores installed on the device use this functionality • To open links that point to apps
  • 15. Manifest • From a rogue Drozer agent • Opening a link starting with pwn:// will open this activity • But not in an iframe anymore <activity android:name="com.mwr.dz.PwnActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="pwn" /> </intent-filter> </activity>
  • 16. Two Methods • Via pwn:// URI or "web intent" <a href="pwn://me">Start drozer<a> <a href="intent://me/#Intent;scheme=pwn;end">
 Start Drozer</a>
  • 18. Custom Update Mechanisms • Apps often write their own update mechanisms • Rather than using the Play Store • This requires the INSTALL_PACKAGES permission • Code may be vulnerable • May check for a new file over HTTP or broken HTTPS
  • 19. Remote Loading of Code • Link Ch 8b
  • 20. Remote Loading of Code • Apps can load new code at runtime • Using the Java Reflection API • With the DexClassLoader class • May load code over the network, or from a local location that can be overwritten by other applications • May cause code injection vulnerabilities
  • 21. WebViews • Recipe for disaster • Using a WebView • Defining a JavaScript interface • Loading from a cleartext source or having SSL bypass code • Targeting API versions prior to 17 or using an Android version earlier than 4.2 • May allow JavaScript code injection
  • 22. Listening Services • Android is unlikely to have listening ports • My Genymotion has a few
  • 23. Messaging Applications • Examples, may be vulnerable • Short Message Service (SMS) • Multimedia Messaging Service (MMS) • Commercial Mobile Alert System (CMAS) • Email clients • Chat clients
  • 24. Finding Local Vulnerabilities • Manual process • Download all installed apps • Convert them to readable source code • Use grep to search for vulnerabilities • Or use Drozer's scanner modules
  • 25. Drozer's SQLi Scanner • Doesn't find the Sieve SQL injection
  • 27. Remote and Local Exploits • Remote exploit • Gives attacker a foothold on the device • Such as software exploits, MITM attacks, or malware • Local exploit • Requires a foothold on the device already • Local privilege escalation
  • 29. • Performs ARP poisoning, DNS spoofing, etc. • We're using local proxy settings • You need ettercap to perform real MITM attacks on a LAN Ettercap
  • 30. Burp • Can inspect and modify traffic • Sends fake TLS certificates • Burp can be added as a "trusted CA"
  • 31. Burp Extensions • Supposedly you can add Python code
  • 32. Burp Extensions • But it doesn't work • After several hours, I couldn't make any of the useful examples work • Scripts just fail without sending any error messages anywhere • It's torture • Just ignoring Burp and writing Python scripts outside it seems far more useful
  • 33. Drozer • Infrastructure Mode • Runs a Drozer server, as a C&C server • Make "rogue agents" which are like malware • Custom-built to phone home to the Drozer server • Much like Metasploit
  • 35. Non-System App without Context • Ex: a shell from a Web browser • Attacker has privileges of the compromised app • Can navigate filesystem under the app's user account • Cannot use Java libraries • Cannot install packages, or read SMS, etc.
  • 36. Non-System App with Context • Attacker takes over app's execution flow and can load arbitrary classes • Attacker camn retrieve app Context • Can do anything the app can do
  • 37. Installed Package • Can request arbitrary permissions • Can be granted them, depending on protection level
  • 38. ADB Shell Access • Can install apps • Can interact with apps as a developer
  • 39. System User Access • Running as system user, can • Install apps • Change device configuration • Access data from any app's private directory
  • 40. Root User Access • Ultimate power, can • Install apps • Read and write RAM • Manipulate any aspect of the device