PenTest Playbook
  • Welcome!
  • Web App Pentesting
    • SQL Injection
    • NoSQL Injection
    • XSS
    • CSRF
    • SSRF
    • XXE
    • IDOR
    • SSTI
    • Broken Access Control/Privilege Escalation
    • Open Redirect
    • File Inclusion
    • File Upload
    • Insecure Deserialization
      • XMLDecoder
    • LDAP Injection
    • XPath Injection
    • JWT
    • Parameter Pollution
    • Prototype Pollution
    • Race Conditions
    • CRLF Injection
    • LaTeX Injection
    • CORS Misconfiguration
    • Handy Commands & Payloads
  • Active Directory Pentest
    • Domain Enumeration
      • User Enumeration
      • Group Enumeration
      • GPO & OU Enumeration
      • ACLs
      • Trusts
      • User Hunting
    • Domain Privilege Escalation
      • Kerberoast
        • AS-REP Roast (Kerberoasting)
        • CRTP Lab 14
      • Targeted Kerberoasting
        • AS-REP Roast
        • Set SPN
      • Kerberos Delegation
        • Unconstrained Delegation
          • CRTP Lab 15
        • Constrained Delegation
          • CRTP Lab 16
        • Resource Based Constrained Delegation (RBCD)
          • CRTP Lab 17
      • Across Trusts
        • Child to Parent (Cross Domain)
          • Using Trust Tickets
            • CRTP Lab 18
          • Using KRBTGT Hash
            • CRTP Lab 19
        • Cross Forest
          • Lab 20
        • AD CS (Across Domain Trusts)
          • ESC1
            • CRTP Lab 21
        • Trust Abuse - MSSQL Servers
          • CRTP Lab 22
    • Lateral Movement
      • PowerShell Remoting
      • Extracting Creds, Hashes, Tickets
      • Over-PassTheHash
      • DCSync
    • Evasion
      • Evasion Cheetsheet
    • Persistence
      • Golden Ticket
        • CRTP Lab 8
      • Silver Ticket
        • CRTP Lab 9
      • Diamond Ticket
        • CRTP Lab 10
      • Skeleton Key
      • DSRM
        • CRTP Lab 11
      • Custom SSP
      • Using ACLs
        • AdminSDHolder
        • Rights Abuse
          • CRTP Lab 12
        • Security Descriptors
          • CRTP Lab 13
    • Tools
    • PowerShell
  • AI Security
    • LLM Security Checklist
    • GenAI Vision Security Checklist
    • Questionnaire for AI/ML/GenAI Engineering Teams
  • Network Pentesting
    • Information Gathering
    • Scanning
    • Port/Service Enumeration
      • 21 FTP
      • 22 SSH
      • 25, 465, 587 SMTP
      • 53 DNS
      • 80, 443 HTTP/s
      • 88 Kerberos
      • 135, 593 MSRPC
      • 137, 138, 139 NetBios
      • 139, 445 SMB
      • 161, 162, 10161, 10162/udp SNMP
      • 389, 636, 3268, 3269 LDAP
      • Untitled
      • Page 14
      • Page 15
      • Page 16
      • Page 17
      • Page 18
      • Page 19
      • Page 20
    • Nessus
    • Checklist
  • Mobile Pentesting
    • Android
      • Android PenTest Setup
      • Tools
    • iOS
  • DevSecOps
    • Building CI Pipeline
    • Threat Modeling
    • Secure Coding
      • Code Review Examples
        • Broken Access Control
        • Broken Authentication
        • Command Injection
        • SQLi
        • XSS
        • XXE
        • SSRF
        • SSTI
        • CSRF
        • Insecure Deserialization
        • XPath Injection
        • LDAP Injection
        • Insecure File Uploads
        • Path Traversal
        • LFI
        • RFI
        • Prototype Pollution
        • Connection String Injection
        • Sensitive Data Exposure
        • Security Misconfigurations
        • Buffer Overflow
        • Integer Overflow
        • Symlink Attack
        • Use After Free
        • Out of Bounds
      • C/C++ Secure Coding
      • Java/JS Secure Coding
      • Python Secure Coding
  • Malware Dev
    • Basics - Get detected!
    • Not so easy to stage!
    • Base64 Encode Shellcode
    • Caesar Cipher (ROT 13) Encrypt Shellcode
    • XOR Encrypt Shellcode
    • AES Encrypt Shellcode
  • Handy
    • Reverse Shells
    • Pivoting
    • File Transfers
    • Tmux
  • Wifi Pentesting
    • Monitoring
    • Cracking
  • Buffer Overflows
  • Cloud Security
    • AWS
    • GCP
    • Azure
  • Container Security
  • Todo
Powered by GitBook
On this page
  • Main Components
  • APK File
  • Android Application Security
  • Application Signing
  1. Mobile Pentesting

Android

  • Android is built using open-source Linux Kernel.

  • Dalvik Virtual Machine (DVM) provides a platform for running Android apps.

  • Android Run Time (ART) is modern translation layer from the application's bytecode to device instructions.

  • Android apps are written in either Java or Kotlin.

Main Components

  • Applications

    • Represents top layer of Android Architecture.

    • Includes pre-installed apps like Home, Contacts, Camera, Gallary, etc.

    • It runs within Android Runtime with the help of classes and services implemented by the application framework.

  • Application Framework

    • Provides several classes used to create apps.

    • Provides a generic abstraction for hardware access and manages the UI with app resources.

    • Includes services like Activity Manager, Notification Manager, View System, Package Manager, etc.

    • Content Providers

      • A way of sharing data to other applications via a specific directory (if exported)

        • content://<app-URI>/directory

    • View System

      • Utilized for making the App's UI and normalizing it.

    • Managers

      • Notifications, Telephony, Package, Location, etc.

  • Application Runtime

    • Contains components like core libraries and DVM.

    • DVM is optimized for Android to ensure device can run multiple instances efficiently.

  • Platform Libraries:

    • Includes C/C++ core libraries and Jave based libraries for various functionalities.

    • Media, SGL/OpenGL for graphics, SQLite for database, Web-Kit for web content loading, SSL for secure transmission, etc.

  • Linux Kernel:

    • Manages all avaibled drivers required during runtime such as Camera, Bluetooth, Audio, Memory, etc.

    • Responsible for Security, Memory Management, Process Management, Network Stack, Driver Model.

APK File

  • AndroidManifest.xml

    • Contains information about application including it's package name, version, required permissions, and components such as activities, services, and broadcast receivers.

      • minSDKVersion, Permissions, Activities, Content Providers

      • Look for activities that have "exported=true", which means that it can be accessed without authentication.

        • Copy the exported activity name and access it from ADB

adb shell

# Start Activity
am start b3mac.appname/.b123Activity
  • Classes.dex

    • Contains compiled Java bytecode for application's classes which are executed by Android Runtime (ART)

  • Resources.arsc

    • Contains compiled resources such as strings, images, and layouts used by app.

  • lib/

    • Folder contains compiled native code libs for specific device architecture such as ARM or x86.

    • Look for strings/information inside the .so shared object library files.

  • META-INF/

    • Folder contains manifest file, certificate of APK signature, and list of all the files in the APK along with their checksums

  • Assests/

    • Folder contains additional app data files such as sound and video that are not compiled into the APK.

  • res/: Folder contains the app resources such as layouts, strings, and images in their original format before being compiled into Resources.arsc file.

    • Look for Hardcoded secrets in the resources/values/strings.xml

      • Strings: API, Key, SQL, password, pass, AWS, http, firebase, secret, etc.

  • Android System Files:

    • Folder Contains system level files such as Android Runtime, framework libraries, and system components that the app may use.

Android Application Security

  • Every Android app can be reverse engineered, rebuilt, re-signed, and re-run

  • This means that an attacker can modify application functionality.

  • JADX-GUI or ApkTool can be used to obtain the source code.

  • Developers

    • Jave/Kotlin -> DEX Bytecode

  • Reverse Engineers

    • DEX Bytecode -> SMALI -> Decompiled Java

Application Signing

  • To ensure an application's integrity, we use Public-Key cryptography.

  • Three methods of verifying signatures:

    • APK Signature scheme v1, v2, v3.

    • Google implemented Google Play signing which adds unique signatures to the apps.

    • keytool, jarsigner, zipalign

PreviousMobile PentestingNextAndroid PenTest Setup

Last updated 10 months ago