hacktricks
  • 👾Welcome!
    • HackTricks
  • 🤩Generic Methodologies & Resources
    • Pentesting Methodology
    • External Recon Methodology
      • Wide Source Code Search
      • Github Dorks & Leaks
    • Pentesting Network
      • DHCPv6
      • EIGRP Attacks
      • GLBP & HSRP Attacks
      • IDS and IPS Evasion
      • Lateral VLAN Segmentation Bypass
      • Network Protocols Explained (ESP)
      • Nmap Summary (ESP)
      • Pentesting IPv6
      • Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
      • Spoofing SSDP and UPnP Devices with EvilSSDP
    • Pentesting Wifi
      • Evil Twin EAP-TLS
    • Phishing Methodology
      • Clone a Website
      • Detecting Phishing
      • Phishing Files & Documents
    • Basic Forensic Methodology
      • Baseline Monitoring
      • Anti-Forensic Techniques
      • Docker Forensics
      • Image Acquisition & Mount
      • Linux Forensics
      • Malware Analysis
      • Memory dump analysis
        • Volatility - CheatSheet
      • Partitions/File Systems/Carving
        • File/Data Carving & Recovery Tools
      • Pcap Inspection
        • DNSCat pcap analysis
        • Suricata & Iptables cheatsheet
        • USB Keystrokes
        • Wifi Pcap Analysis
        • Wireshark tricks
      • Specific Software/File-Type Tricks
        • Decompile compiled python binaries (exe, elf) - Retreive from .pyc
        • Browser Artifacts
        • Deofuscation vbs (cscript.exe)
        • Local Cloud Storage
        • Office file analysis
        • PDF File analysis
        • PNG tricks
        • Video and Audio file analysis
        • ZIPs tricks
      • Windows Artifacts
        • Interesting Windows Registry Keys
    • Brute Force - CheatSheet
    • Python Sandbox Escape & Pyscript
      • Bypass Python sandboxes
        • LOAD_NAME / LOAD_CONST opcode OOB Read
      • Class Pollution (Python's Prototype Pollution)
      • Python Internal Read Gadgets
      • Pyscript
      • venv
      • Web Requests
      • Bruteforce hash (few chars)
      • Basic Python
    • Exfiltration
    • Tunneling and Port Forwarding
    • Threat Modeling
    • Search Exploits
    • Shells (Linux, Windows, MSFVenom)
      • MSFVenom - CheatSheet
      • Shells - Windows
      • Shells - Linux
      • Full TTYs
  • 🐧Linux Hardening
    • Checklist - Linux Privilege Escalation
    • Linux Privilege Escalation
      • Arbitrary File Write to Root
      • Cisco - vmanage
      • Containerd (ctr) Privilege Escalation
      • D-Bus Enumeration & Command Injection Privilege Escalation
      • Docker Security
        • Abusing Docker Socket for Privilege Escalation
        • AppArmor
        • AuthZ& AuthN - Docker Access Authorization Plugin
        • CGroups
        • Docker --privileged
        • Docker Breakout / Privilege Escalation
          • release_agent exploit - Relative Paths to PIDs
          • Docker release_agent cgroups escape
          • Sensitive Mounts
        • Namespaces
          • CGroup Namespace
          • IPC Namespace
          • PID Namespace
          • Mount Namespace
          • Network Namespace
          • Time Namespace
          • User Namespace
          • UTS Namespace
        • Seccomp
        • Weaponizing Distroless
      • Escaping from Jails
      • euid, ruid, suid
      • Interesting Groups - Linux Privesc
        • lxd/lxc Group - Privilege escalation
      • Logstash
      • ld.so privesc exploit example
      • Linux Active Directory
      • Linux Capabilities
      • NFS no_root_squash/no_all_squash misconfiguration PE
      • Node inspector/CEF debug abuse
      • Payloads to execute
      • RunC Privilege Escalation
      • SELinux
      • Socket Command Injection
      • Splunk LPE and Persistence
      • SSH Forward Agent exploitation
      • Wildcards Spare tricks
    • Useful Linux Commands
    • Bypass Linux Restrictions
      • Bypass FS protections: read-only / no-exec / Distroless
        • DDexec / EverythingExec
    • Linux Environment Variables
    • Linux Post-Exploitation
      • PAM - Pluggable Authentication Modules
    • FreeIPA Pentesting
  • 🍏MacOS Hardening
    • macOS Security & Privilege Escalation
      • macOS Apps - Inspecting, debugging and Fuzzing
        • Introduction to x64
        • Introduction to ARM64v8
      • macOS AppleFS
      • macOS Bypassing Firewalls
      • macOS Defensive Apps
      • macOS GCD - Grand Central Dispatch
      • macOS Kernel & System Extensions
        • macOS IOKit
        • macOS Kernel Extensions
        • macOS Kernel Vulnerabilities
        • macOS System Extensions
      • macOS Network Services & Protocols
      • macOS File Extension & URL scheme app handlers
      • macOS Files, Folders, Binaries & Memory
        • macOS Bundles
        • macOS Installers Abuse
        • macOS Memory Dumping
        • macOS Sensitive Locations & Interesting Daemons
        • macOS Universal binaries & Mach-O Format
      • macOS Objective-C
      • macOS Privilege Escalation
      • macOS Process Abuse
        • macOS Dirty NIB
        • macOS Chromium Injection
        • macOS Electron Applications Injection
        • macOS Function Hooking
        • macOS IPC - Inter Process Communication
          • macOS MIG - Mach Interface Generator
          • macOS XPC
            • macOS XPC Authorization
            • macOS XPC Connecting Process Check
              • macOS PID Reuse
              • macOS xpc_connection_get_audit_token Attack
          • macOS Thread Injection via Task port
        • macOS Java Applications Injection
        • macOS Library Injection
          • macOS Dyld Hijacking & DYLD_INSERT_LIBRARIES
          • macOS Dyld Process
        • macOS Perl Applications Injection
        • macOS Python Applications Injection
        • macOS Ruby Applications Injection
        • macOS .Net Applications Injection
      • macOS Security Protections
        • macOS Gatekeeper / Quarantine / XProtect
        • macOS Launch/Environment Constraints & Trust Cache
        • macOS Sandbox
          • macOS Default Sandbox Debug
          • macOS Sandbox Debug & Bypass
            • macOS Office Sandbox Bypasses
        • macOS SIP
        • macOS TCC
          • macOS Apple Events
          • macOS TCC Bypasses
            • macOS Apple Scripts
          • macOS TCC Payloads
        • macOS Dangerous Entitlements & TCC perms
        • macOS FS Tricks
          • macOS xattr-acls extra stuff
      • macOS Users
    • macOS Red Teaming
      • macOS MDM
        • Enrolling Devices in Other Organisations
        • macOS Serial Number
      • macOS Keychain
    • macOS Useful Commands
    • macOS Auto Start
  • 🪟Windows Hardening
    • Checklist - Local Windows Privilege Escalation
    • Windows Local Privilege Escalation
      • Abusing Tokens
      • Access Tokens
      • ACLs - DACLs/SACLs/ACEs
      • AppendData/AddSubdirectory permission over service registry
      • Create MSI with WIX
      • COM Hijacking
      • Dll Hijacking
        • Writable Sys Path +Dll Hijacking Privesc
      • DPAPI - Extracting Passwords
      • From High Integrity to SYSTEM with Name Pipes
      • Integrity Levels
      • JuicyPotato
      • Leaked Handle Exploitation
      • MSI Wrapper
      • Named Pipe Client Impersonation
      • Privilege Escalation with Autoruns
      • RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
      • SeDebug + SeImpersonate copy token
      • SeImpersonate from High To System
      • Windows C Payloads
    • Active Directory Methodology
      • Abusing Active Directory ACLs/ACEs
        • Shadow Credentials
      • AD Certificates
        • AD CS Account Persistence
        • AD CS Domain Escalation
        • AD CS Domain Persistence
        • AD CS Certificate Theft
      • AD information in printers
      • AD DNS Records
      • ASREPRoast
      • BloodHound & Other AD Enum Tools
      • Constrained Delegation
      • Custom SSP
      • DCShadow
      • DCSync
      • Diamond Ticket
      • DSRM Credentials
      • External Forest Domain - OneWay (Inbound) or bidirectional
      • External Forest Domain - One-Way (Outbound)
      • Golden Ticket
      • Kerberoast
      • Kerberos Authentication
      • Kerberos Double Hop Problem
      • LAPS
      • MSSQL AD Abuse
      • Over Pass the Hash/Pass the Key
      • Pass the Ticket
      • Password Spraying / Brute Force
      • PrintNightmare
      • Force NTLM Privileged Authentication
      • Privileged Groups
      • RDP Sessions Abuse
      • Resource-based Constrained Delegation
      • Security Descriptors
      • SID-History Injection
      • Silver Ticket
      • Skeleton Key
      • Unconstrained Delegation
    • Windows Security Controls
      • UAC - User Account Control
    • NTLM
      • Places to steal NTLM creds
    • Lateral Movement
      • AtExec / SchtasksExec
      • DCOM Exec
      • PsExec/Winexec/ScExec
      • SmbExec/ScExec
      • WinRM
      • WmicExec
    • Pivoting to the Cloud
    • Stealing Windows Credentials
      • Windows Credentials Protections
      • Mimikatz
      • WTS Impersonator
    • Basic Win CMD for Pentesters
    • Basic PowerShell for Pentesters
      • PowerView/SharpView
    • Antivirus (AV) Bypass
  • 📱Mobile Pentesting
    • Android APK Checklist
    • Android Applications Pentesting
      • Android Applications Basics
      • Android Task Hijacking
      • ADB Commands
      • APK decompilers
      • AVD - Android Virtual Device
      • Bypass Biometric Authentication (Android)
      • content:// protocol
      • Drozer Tutorial
        • Exploiting Content Providers
      • Exploiting a debuggeable application
      • Frida Tutorial
        • Frida Tutorial 1
        • Frida Tutorial 2
        • Frida Tutorial 3
        • Objection Tutorial
      • Google CTF 2018 - Shall We Play a Game?
      • Install Burp Certificate
      • Intent Injection
      • Make APK Accept CA Certificate
      • Manual DeObfuscation
      • React Native Application
      • Reversing Native Libraries
      • Smali - Decompiling/[Modifying]/Compiling
      • Spoofing your location in Play Store
      • Tapjacking
      • Webview Attacks
    • iOS Pentesting Checklist
    • iOS Pentesting
      • iOS App Extensions
      • iOS Basics
      • iOS Basic Testing Operations
      • iOS Burp Suite Configuration
      • iOS Custom URI Handlers / Deeplinks / Custom Schemes
      • iOS Extracting Entitlements From Compiled Application
      • iOS Frida Configuration
      • iOS Hooking With Objection
      • iOS Protocol Handlers
      • iOS Serialisation and Encoding
      • iOS Testing Environment
      • iOS UIActivity Sharing
      • iOS Universal Links
      • iOS UIPasteboard
      • iOS WebViews
    • Cordova Apps
    • Xamarin Apps
  • 👽Network Services Pentesting
    • Pentesting JDWP - Java Debug Wire Protocol
    • Pentesting Printers
    • Pentesting SAP
    • Pentesting VoIP
      • Basic VoIP Protocols
        • SIP (Session Initiation Protocol)
    • Pentesting Remote GdbServer
    • 7/tcp/udp - Pentesting Echo
    • 21 - Pentesting FTP
      • FTP Bounce attack - Scan
      • FTP Bounce - Download 2ºFTP file
    • 22 - Pentesting SSH/SFTP
    • 23 - Pentesting Telnet
    • 25,465,587 - Pentesting SMTP/s
      • SMTP Smuggling
      • SMTP - Commands
    • 43 - Pentesting WHOIS
    • 49 - Pentesting TACACS+
    • 53 - Pentesting DNS
    • 69/UDP TFTP/Bittorrent-tracker
    • 79 - Pentesting Finger
    • 80,443 - Pentesting Web Methodology
      • 403 & 401 Bypasses
      • AEM - Adobe Experience Cloud
      • Angular
      • Apache
      • Artifactory Hacking guide
      • Bolt CMS
      • Buckets
        • Firebase Database
      • CGI
      • DotNetNuke (DNN)
      • Drupal
      • Electron Desktop Apps
        • Electron contextIsolation RCE via preload code
        • Electron contextIsolation RCE via Electron internal code
        • Electron contextIsolation RCE via IPC
      • Flask
      • NodeJS Express
      • Git
      • Golang
      • GWT - Google Web Toolkit
      • Grafana
      • GraphQL
      • H2 - Java SQL database
      • IIS - Internet Information Services
      • ImageMagick Security
      • JBOSS
      • JIRA
      • Joomla
      • JSP
      • Laravel
      • Moodle
      • Nginx
      • PHP Tricks
        • PHP - Useful Functions & disable_functions/open_basedir bypass
          • disable_functions bypass - php-fpm/FastCGI
          • disable_functions bypass - dl function
          • disable_functions bypass - PHP 7.0-7.4 (*nix only)
          • disable_functions bypass - Imagick <= 3.3.0 PHP >= 5.4 Exploit
          • disable_functions - PHP 5.x Shellshock Exploit
          • disable_functions - PHP 5.2.4 ionCube extension Exploit
          • disable_functions bypass - PHP <= 5.2.9 on windows
          • disable_functions bypass - PHP 5.2.4 and 5.2.5 PHP cURL
          • disable_functions bypass - PHP safe_mode bypass via proc_open() and custom environment Exploit
          • disable_functions bypass - PHP Perl Extension Safe_mode Bypass Exploit
          • disable_functions bypass - PHP 5.2.3 - Win32std ext Protections Bypass
          • disable_functions bypass - PHP 5.2 - FOpen Exploit
          • disable_functions bypass - via mem
          • disable_functions bypass - mod_cgi
          • disable_functions bypass - PHP 4 >= 4.2.0, PHP 5 pcntl_exec
        • PHP - RCE abusing object creation: new $_GET["a"]($_GET["b"])
        • PHP SSRF
      • Python
      • Rocket Chat
      • Special HTTP headers
      • Source code Review / SAST Tools
      • Spring Actuators
      • Symfony
      • Tomcat
        • Basic Tomcat Info
      • Uncovering CloudFlare
      • VMWare (ESX, VCenter...)
      • WAF Bypass
      • Web API Pentesting
      • WebDav
      • Werkzeug / Flask Debug
      • Wordpress
    • 88tcp/udp - Pentesting Kerberos
      • Harvesting tickets from Windows
      • Harvesting tickets from Linux
    • 110,995 - Pentesting POP
    • 111/TCP/UDP - Pentesting Portmapper
    • 113 - Pentesting Ident
    • 123/udp - Pentesting NTP
    • 135, 593 - Pentesting MSRPC
    • 137,138,139 - Pentesting NetBios
    • 139,445 - Pentesting SMB
      • rpcclient enumeration
    • 143,993 - Pentesting IMAP
    • 161,162,10161,10162/udp - Pentesting SNMP
      • Cisco SNMP
      • SNMP RCE
    • 194,6667,6660-7000 - Pentesting IRC
    • 264 - Pentesting Check Point FireWall-1
    • 389, 636, 3268, 3269 - Pentesting LDAP
    • 500/udp - Pentesting IPsec/IKE VPN
    • 502 - Pentesting Modbus
    • 512 - Pentesting Rexec
    • 513 - Pentesting Rlogin
    • 514 - Pentesting Rsh
    • 515 - Pentesting Line Printer Daemon (LPD)
    • 548 - Pentesting Apple Filing Protocol (AFP)
    • 554,8554 - Pentesting RTSP
    • 623/UDP/TCP - IPMI
    • 631 - Internet Printing Protocol(IPP)
    • 700 - Pentesting EPP
    • 873 - Pentesting Rsync
    • 1026 - Pentesting Rusersd
    • 1080 - Pentesting Socks
    • 1098/1099/1050 - Pentesting Java RMI - RMI-IIOP
    • 1414 - Pentesting IBM MQ
    • 1433 - Pentesting MSSQL - Microsoft SQL Server
      • Types of MSSQL Users
    • 1521,1522-1529 - Pentesting Oracle TNS Listener
    • 1723 - Pentesting PPTP
    • 1883 - Pentesting MQTT (Mosquitto)
    • 2049 - Pentesting NFS Service
    • 2301,2381 - Pentesting Compaq/HP Insight Manager
    • 2375, 2376 Pentesting Docker
    • 3128 - Pentesting Squid
    • 3260 - Pentesting ISCSI
    • 3299 - Pentesting SAPRouter
    • 3306 - Pentesting Mysql
    • 3389 - Pentesting RDP
    • 3632 - Pentesting distcc
    • 3690 - Pentesting Subversion (svn server)
    • 3702/UDP - Pentesting WS-Discovery
    • 4369 - Pentesting Erlang Port Mapper Daemon (epmd)
    • 4786 - Cisco Smart Install
    • 4840 - OPC Unified Architecture
    • 5000 - Pentesting Docker Registry
    • 5353/UDP Multicast DNS (mDNS) and DNS-SD
    • 5432,5433 - Pentesting Postgresql
    • 5439 - Pentesting Redshift
    • 5555 - Android Debug Bridge
    • 5601 - Pentesting Kibana
    • 5671,5672 - Pentesting AMQP
    • 5800,5801,5900,5901 - Pentesting VNC
    • 5984,6984 - Pentesting CouchDB
    • 5985,5986 - Pentesting WinRM
    • 5985,5986 - Pentesting OMI
    • 6000 - Pentesting X11
    • 6379 - Pentesting Redis
    • 8009 - Pentesting Apache JServ Protocol (AJP)
    • 8086 - Pentesting InfluxDB
    • 8089 - Pentesting Splunkd
    • 8333,18333,38333,18444 - Pentesting Bitcoin
    • 9000 - Pentesting FastCGI
    • 9001 - Pentesting HSQLDB
    • 9042/9160 - Pentesting Cassandra
    • 9100 - Pentesting Raw Printing (JetDirect, AppSocket, PDL-datastream)
    • 9200 - Pentesting Elasticsearch
    • 10000 - Pentesting Network Data Management Protocol (ndmp)
    • 11211 - Pentesting Memcache
      • Memcache Commands
    • 15672 - Pentesting RabbitMQ Management
    • 24007,24008,24009,49152 - Pentesting GlusterFS
    • 27017,27018 - Pentesting MongoDB
    • 44134 - Pentesting Tiller (Helm)
    • 44818/UDP/TCP - Pentesting EthernetIP
    • 47808/udp - Pentesting BACNet
    • 50030,50060,50070,50075,50090 - Pentesting Hadoop
  • 🕸️Pentesting Web
    • Web Vulnerabilities Methodology
    • Reflecting Techniques - PoCs and Polygloths CheatSheet
      • Web Vulns List
    • 2FA/OTP Bypass
    • Account Takeover
    • Browser Extension Pentesting Methodology
      • BrowExt - ClickJacking
      • BrowExt - permissions & host_permissions
      • BrowExt - XSS Example
    • Bypass Payment Process
    • Captcha Bypass
    • Cache Poisoning and Cache Deception
      • Cache Poisoning to DoS
    • Clickjacking
    • Client Side Template Injection (CSTI)
    • Client Side Path Traversal
    • Command Injection
    • Content Security Policy (CSP) Bypass
      • CSP bypass: self + 'unsafe-inline' with Iframes
    • Cookies Hacking
      • Cookie Tossing
      • Cookie Jar Overflow
      • Cookie Bomb
    • CORS - Misconfigurations & Bypass
    • CRLF (%0D%0A) Injection
    • CSRF (Cross Site Request Forgery)
    • Dangling Markup - HTML scriptless injection
      • SS-Leaks
    • Dependency Confusion
    • Deserialization
      • NodeJS - __proto__ & prototype Pollution
        • Client Side Prototype Pollution
        • Express Prototype Pollution Gadgets
        • Prototype Pollution to RCE
      • Java JSF ViewState (.faces) Deserialization
      • Java DNS Deserialization, GadgetProbe and Java Deserialization Scanner
      • Basic Java Deserialization (ObjectInputStream, readObject)
      • PHP - Deserialization + Autoload Classes
      • CommonsCollection1 Payload - Java Transformers to Rutime exec() and Thread Sleep
      • Basic .Net deserialization (ObjectDataProvider gadget, ExpandedWrapper, and Json.Net)
      • Exploiting __VIEWSTATE knowing the secrets
      • Exploiting __VIEWSTATE without knowing the secrets
      • Python Yaml Deserialization
      • JNDI - Java Naming and Directory Interface & Log4Shell
    • Domain/Subdomain takeover
    • Email Injections
    • File Inclusion/Path traversal
      • phar:// deserialization
      • LFI2RCE via PHP Filters
      • LFI2RCE via Nginx temp files
      • LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
      • LFI2RCE via Segmentation Fault
      • LFI2RCE via phpinfo()
      • LFI2RCE Via temp file uploads
      • LFI2RCE via Eternal waiting
      • LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure
    • File Upload
      • PDF Upload - XXE and CORS bypass
    • Formula/CSV/Doc/LaTeX/GhostScript Injection
    • gRPC-Web Pentest
    • HTTP Connection Contamination
    • HTTP Connection Request Smuggling
    • HTTP Request Smuggling / HTTP Desync Attack
      • Browser HTTP Request Smuggling
      • Request Smuggling in HTTP/2 Downgrades
    • HTTP Response Smuggling / Desync
    • Upgrade Header Smuggling
    • hop-by-hop headers
    • IDOR
    • Integer Overflow
    • JWT Vulnerabilities (Json Web Tokens)
    • LDAP Injection
    • Login Bypass
      • Login bypass List
    • NoSQL injection
    • OAuth to Account takeover
    • Open Redirect
    • Parameter Pollution
    • Phone Number Injections
    • PostMessage Vulnerabilities
      • Blocking main page to steal postmessage
      • Bypassing SOP with Iframes - 1
      • Bypassing SOP with Iframes - 2
      • Steal postmessage modifying iframe location
    • Proxy / WAF Protections Bypass
    • Race Condition
    • Rate Limit Bypass
    • Registration & Takeover Vulnerabilities
    • Regular expression Denial of Service - ReDoS
    • Reset/Forgotten Password Bypass
    • SAML Attacks
      • SAML Basics
    • Server Side Inclusion/Edge Side Inclusion Injection
    • SQL Injection
      • MS Access SQL Injection
      • MSSQL Injection
      • MySQL injection
        • MySQL File priv to SSRF/RCE
      • Oracle injection
      • Cypher Injection (neo4j)
      • PostgreSQL injection
        • dblink/lo_import data exfiltration
        • PL/pgSQL Password Bruteforce
        • Network - Privesc, Port Scanner and NTLM chanllenge response disclosure
        • Big Binary Files Upload (PostgreSQL)
        • RCE with PostgreSQL Languages
        • RCE with PostgreSQL Extensions
      • SQLMap - Cheetsheat
        • Second Order Injection - SQLMap
    • SSRF (Server Side Request Forgery)
      • URL Format Bypass
      • SSRF Vulnerable Platforms
      • Cloud SSRF
    • SSTI (Server Side Template Injection)
      • EL - Expression Language
      • Jinja2 SSTI
    • Reverse Tab Nabbing
    • Unicode Injection
      • Unicode Normalization
    • WebSocket Attacks
    • Web Tool - WFuzz
    • XPATH injection
    • XSLT Server Side Injection (Extensible Stylesheet Language Transformations)
    • XXE - XEE - XML External Entity
    • XSS (Cross Site Scripting)
      • Abusing Service Workers
      • Chrome Cache to XSS
      • Debugging Client Side JS
      • Dom Clobbering
      • DOM Invader
      • DOM XSS
      • Iframes in XSS, CSP and SOP
      • JS Hoisting
      • Misc JS Tricks & Relevant Info
      • PDF Injection
      • Server Side XSS (Dynamic PDF)
      • Shadow DOM
      • SOME - Same Origin Method Execution
      • Sniff Leak
      • Steal Info JS
      • XSS in Markdown
    • XSSI (Cross-Site Script Inclusion)
    • XS-Search/XS-Leaks
      • Connection Pool Examples
      • Connection Pool by Destination Example
      • Cookie Bomb + Onerror XS Leak
      • URL Max Length - Client Side
      • performance.now example
      • performance.now + Force heavy task
      • Event Loop Blocking + Lazy images
      • JavaScript Execution XS Leak
      • CSS Injection
        • CSS Injection Code
  • ⛈️Cloud Security
    • Pentesting Kubernetes
    • Pentesting Cloud (AWS, GCP, Az...)
    • Pentesting CI/CD (Github, Jenkins, Terraform...)
  • 😎Hardware/Physical Access
    • Physical Attacks
    • Escaping from KIOSKs
    • Firmware Analysis
      • Bootloader testing
      • Firmware Integrity
  • 🎯Binary Exploitation
    • Basic Binary Exploitation Methodology
      • ELF Basic Information
      • Exploiting Tools
        • PwnTools
    • Stack Overflow
      • Pointer Redirecting
      • Ret2win
        • Ret2win - arm64
      • Stack Shellcode
        • Stack Shellcode - arm64
      • Stack Pivoting - EBP2Ret - EBP chaining
      • Uninitialized Variables
    • ROP - Return Oriented Programing
      • BROP - Blind Return Oriented Programming
      • Ret2csu
      • Ret2dlresolve
      • Ret2esp / Ret2reg
      • Ret2lib
        • Leaking libc address with ROP
          • Leaking libc - template
        • One Gadget
        • Ret2lib + Printf leak - arm64
      • Ret2syscall
        • Ret2syscall - ARM64
      • Ret2vDSO
      • SROP - Sigreturn-Oriented Programming
        • SROP - ARM64
    • Array Indexing
    • Integer Overflow
    • Format Strings
      • Format Strings - Arbitrary Read Example
      • Format Strings Template
    • Heap
      • Use After Free
      • Heap Overflow
    • Common Binary Exploitation Protections & Bypasses
      • ASLR
        • Ret2plt
        • Ret2ret & Reo2pop
      • CET & Shadow Stack
      • Libc Protections
      • Memory Tagging Extension (MTE)
      • No-exec / NX
      • PIE
        • BF Addresses in the Stack
      • Relro
      • Stack Canaries
        • BF Forked & Threaded Stack Canaries
        • Print Stack Canary
    • Write What Where 2 Exec
      • WWW2Exec - atexit()
      • WWW2Exec - .dtors & .fini_array
      • WWW2Exec - GOT/PLT
      • WWW2Exec - __malloc_hook
    • Common Exploiting Problems
    • Windows Exploiting (Basic Guide - OSCP lvl)
    • Linux Exploiting (Basic) (SPA)
  • 🔩Reversing
    • Reversing Tools & Basic Methods
      • Angr
        • Angr - Examples
      • Z3 - Satisfiability Modulo Theories (SMT)
      • Cheat Engine
      • Blobrunner
    • Common API used in Malware
    • Word Macros
  • 🔮Crypto & Stego
    • Cryptographic/Compression Algorithms
      • Unpacking binaries
    • Certificates
    • Cipher Block Chaining CBC-MAC
    • Crypto CTFs Tricks
    • Electronic Code Book (ECB)
    • Hash Length Extension Attack
    • Padding Oracle
    • RC4 - Encrypt&Decrypt
    • Stego Tricks
    • Esoteric languages
    • Blockchain & Crypto Currencies
  • 🦂C2
    • Salseo
    • ICMPsh
    • Cobalt Strike
  • ✍️TODO
    • Other Big References
    • Rust Basics
    • More Tools
    • MISC
    • Pentesting DNS
    • Hardware Hacking
      • I2C
      • UART
      • Radio
      • JTAG
      • SPI
    • Radio Hacking
      • Pentesting RFID
      • Infrared
      • Sub-GHz RF
      • iButton
      • Flipper Zero
        • FZ - NFC
        • FZ - Sub-GHz
        • FZ - Infrared
        • FZ - iButton
        • FZ - 125kHz RFID
      • Proxmark 3
      • FISSURE - The RF Framework
      • Low-Power Wide Area Network
      • Pentesting BLE - Bluetooth Low Energy
    • Industrial Control Systems Hacking
    • Burp Suite
    • Other Web Tricks
    • Interesting HTTP
    • Emails Vulnerabilities
    • Android Forensics
    • TR-069
    • 6881/udp - Pentesting BitTorrent
    • Online Platforms with API
    • Stealing Sensitive Information Disclosure from a Web
    • Post Exploitation
    • Cookies Policy
由 GitBook 提供支持
在本页
  • Android 应用程序基础知识
  • ADB(Android 调试桥)
  • Smali
  • 其他有趣的技巧
  • 静态分析
  • 寻找有趣的信息
  • 对应用程序的基本理解 - Manifest.xml,strings.xml
  • Tapjacking
  • 任务劫持
  • 不安全的数据存储
  • 破解加密
  • 其他检查
  • React Native 应用程序
  • Xamarin 应用程序
  • 超级打包应用程序
  • 自动化静态代码分析
  • 泄露的机密信息
  • 绕过生物识别身份验证
  • 其他有趣的功能
  • 其他技巧
  • 动态分析
  • 在线动态分析
  • 本地动态分析
  • 非预期数据泄漏
  • SQLite数据库
  • Drozer(利用活动、内容提供程序和服务)
  • 利用导出的活动
  • 利用内容提供程序 - 访问和操纵敏感信息
  • 利用服务
  • 利用广播接收器
  • 利用方案 / 深层链接
  • 传输层检查和验证失败
  • Frida
  • 转储内存 - Fridump
  • Keystore中的敏感数据
  • 指纹/生物识别绕过
  • 背景图片
  • Android应用程序分析器
  • Intent注入
  • 主要要点
  • Android客户端注入和其他漏洞
  • 自动分析
  • MobSF
  • 使用MobSF进行辅助动态分析
  • 使用 Inspeckage 进行辅助动态分析
  • Yaazhini
  • Qark
  • ReverseAPK
  • SUPER Android Analyzer
  • StaCoAn
  • AndroBugs
  • Androwarn
  • MARA Framework
  • Koodous
  • 代码混淆/反混淆
  • ProGuard
  • DexGuard
  • DeGuard
  • Simplify
  • APKiD
  • 手动
  • 实验室
  • Androl4b
  • 参考资料
  • 尚未尝试
  1. Mobile Pentesting

Android Applications Pentesting

上一页Android APK Checklist下一页Android Applications Basics

最后更新于1年前

从零开始学习 AWS 黑客技术,成为 !

支持 HackTricks 的其他方式:

  • 如果您想看到您的公司在 HackTricks 中做广告或下载 PDF 版本的 HackTricks,请查看!

  • 获取

  • 探索,我们的独家收藏品

  • 加入 💬 或 或在 Twitter 🐦 ** 上关注**我们。

  • 通过向 和 github 仓库提交 PR 来分享您的黑客技巧。

黑客见解 参与深入探讨黑客的刺激和挑战的内容

实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界

最新公告 了解最新的赏金计划发布和重要平台更新

Android 应用程序基础知识

强烈建议阅读此页面,了解与 Android 安全相关的最重要部分以及 Android 应用程序中最危险的组件:

ADB(Android 调试桥)

这是您连接到 Android 设备(模拟或实体)所需的主要工具。 ADB 允许从计算机控制设备,可以通过USB或网络连接。此实用程序使文件双向复制、应用程序安装和卸载、执行 shell 命令、备份数据、读取日志等功能成为可能。

Smali

其他有趣的技巧

  • 从设备中提取 APK:

adb shell pm list packages
com.android.insecurebankv2

adb shell pm path com.android.insecurebankv2
package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk

adb pull /data/app/com.android.insecurebankv2- Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk

静态分析

寻找有趣的信息

仅仅查看APK的字符串,你就可以搜索密码,URLs,API密钥,加密,蓝牙UUIDs,令牌以及任何有趣的内容... 甚至查找代码执行后门或身份验证后门(应用中硬编码的管理员凭据)。

Firebase

对应用程序的基本理解 - Manifest.xml,strings.xml

对应用程序的_Manifest.xml和strings.xml_文件的检查可以揭示潜在的安全漏洞。可以使用反编译器访问这些文件,或者将APK文件扩展名更改为.zip,然后解压缩它。

从Manifest.xml中识别的漏洞包括:

  • 可调试应用程序:在_Manifest.xml_文件中设置为可调试(debuggable="true")的应用程序存在风险,因为它们允许可能导致利用的连接。要进一步了解如何利用可调试应用程序,请参考有关在设备上查找和利用可调试应用程序的教程。

  • 备份设置:对于处理敏感信息的应用程序,应明确设置android:allowBackup="false"属性,以防止通过adb进行未经授权的数据备份,特别是当启用USB调试时。

  • 网络安全:在_res/xml/_中自定义网络安全配置(android:networkSecurityConfig="@xml/network_security_config")可以指定安全详细信息,如证书固定和HTTP流量设置。一个示例是允许特定域的HTTP流量。

  • 导出的活动和服务:在清单中识别导出的活动和服务可以突出显示可能被误用的组件。在动态测试期间进一步分析可以揭示如何利用这些组件。

  • 内容提供程序和文件提供程序:公开的内容提供程序可能允许未经授权访问或修改数据。还应仔细审查文件提供程序的配置。

  • 广播接收器和URL方案:这些组件可能被利用进行攻击,特别要注意URL方案的管理方式,以防止输入漏洞。

  • SDK版本:minSdkVersion,targetSDKVersion和maxSdkVersion属性指示支持的Android版本,强调不支持过时、易受攻击的Android版本的重要性。

从strings.xml文件中,可以发现诸如API密钥、自定义模式和其他开发者注释等敏感信息,强调需要仔细审查这些资源。

Tapjacking

Tapjacking是一种攻击,其中启动一个恶意应用程序,并将其定位在受害者应用程序的顶部。一旦它明显遮挡了受害者应用程序,其用户界面被设计成以一种方式欺骗用户与其交互,同时将交互传递给受害者应用程序。 实际上,它使用户无法知道他们实际上是在受害者应用程序上执行操作。

在以下找到更多信息:

任务劫持

launchMode设置为singleTask且未定义任何taskAffinity的活动容易受到任务劫持的影响。这意味着,如果安装了一个应用程序,并且在真正的应用程序之前启动了它,它可能会劫持真正应用程序的任务(因此用户将与恶意应用程序交互,以为自己在使用真正的应用程序)。

在以下找到更多信息:

不安全的数据存储

内部存储

在Android中,存储在内部存储中的文件专门设计为仅由创建它们的应用程序访问。这一安全措施由Android操作系统强制执行,通常足以满足大多数应用程序的安全需求。然而,开发人员有时会使用MODE_WORLD_READABLE和MODE_WORLD_WRITABLE等模式,以允许文件在不同应用程序之间共享。然而,这些模式不限制其他应用程序(包括潜在恶意应用程序)访问这些文件。

  1. 静态分析:

  • 确保仔细审查对MODE_WORLD_READABLE和MODE_WORLD_WRITABLE的使用。这些模式可能会使文件暴露给意外或未经授权的访问。

  1. 动态分析:

  • 验证应用程序创建的文件设置的权限。特别是,检查是否有任何文件设置为全球可读或可写。这可能构成重大安全风险,因为它将允许设备上安装的任何应用程序读取或修改这些文件,而不考虑其来源或意图。

外部存储

处理外部存储上的文件时,应采取一些预防措施:

  1. 可访问性:

  • 外部存储上的文件是全局可读和可写的。这意味着任何应用程序或用户都可以访问这些文件。

  1. 安全问题:

  • 鉴于访问的便利性,建议不要在外部存储上存储敏感信息。

  • 外部存储可以被移除或任何应用程序访问,使其不太安全。

  1. 处理来自外部存储的数据:

  • 始终对从外部存储检索的数据执行输入验证。这是至关重要的,因为数据来自不受信任的来源。

  • 强烈建议不要在外部存储上存储可执行文件或类文件以进行动态加载。

  • 如果您的应用程序必须从外部存储检索可执行文件,请确保在这些文件被动态加载之前进行签名和加密验证。这一步对于维护应用程序的安全完整性至关重要。

外部存储可以在/storage/emulated/0,/sdcard,/mnt/sdcard中访问。

从Android 4.4(API 17)开始,SD卡具有目录结构,限制应用程序对专门用于该应用程序的目录的访问。这可以防止恶意应用程序读取或写入另一个应用程序的文件。

明文存储的敏感数据

  • 共享首选项:Android允许每个应用程序轻松保存xml文件在路径/data/data/<packagename>/shared_prefs/中,有时可能在该文件夹中找到明文的敏感信息。

  • 数据库:Android允许每个应用程序轻松保存sqlite数据库在路径/data/data/<packagename>/databases/中,有时可能在该文件夹中找到明文的敏感信息。

SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

破解加密

密钥管理流程不佳

一些开发人员会将敏感数据保存在本地存储中,并使用在代码中硬编码/可预测的密钥进行加密。这样做是不应该的,因为一些逆向工程可能会使攻击者提取机密信息。

使用不安全和/或已弃用的算法

开发人员不应该使用已弃用的算法来执行授权检查,存储或发送数据。一些这些算法包括:RC4、MD4、MD5、SHA1...例如,如果要使用哈希来存储密码,应该使用具有盐的哈希抗暴力破解。

其他检查

  • 建议对APK进行混淆,以增加逆向工程的难度。

  • 如果应用程序很敏感(如银行应用),应该执行自己的检查以查看手机是否已获取root权限,并相应地采取行动。

  • 如果应用程序很敏感(如银行应用),应该检查是否正在使用模拟器。

  • 如果应用程序很敏感(如银行应用),应该在执行之前检查自身的完整性,以查看是否已被修改。

React Native 应用程序

阅读以下页面,了解如何轻松访问React应用程序的JavaScript代码:

Xamarin 应用程序

阅读以下页面,了解如何轻松访问Xamarin应用程序的C#代码:

超级打包应用程序

自动化静态代码分析

有了这些知识,mariana-trench将审查代码并找出可能存在的漏洞。

泄露的机密信息

绕过生物识别身份验证

其他有趣的功能

  • 代码执行:Runtime.exec(), ProcessBuilder(), native code:system()

  • 发送短信:sendTextMessage, sendMultipartTestMessage

  • 声明为native的本机函数:public native, System.loadLibrary, System.load

其他技巧


黑客见解 参与深入探讨黑客活动的刺激和挑战

实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界

最新公告 随时了解最新的赏金任务发布和重要平台更新


动态分析

首先,您需要一个环境,可以在其中安装应用程序和所有环境(主要是Burp CA证书、Drozer和Frida)。因此,极力推荐使用已获取root权限的设备(模拟器或非模拟器)。

在线动态分析

您甚至可以在网络中查看应用程序的日志,并通过adb进行连接。

通过ADB连接,您可以在模拟器中使用Drozer和Frida。

本地动态分析

使用模拟器

  • 了解如何在此页面中设置:

在任何平台上创建新模拟器时,请记住屏幕越大,模拟器运行速度越慢。因此,尽可能选择小屏幕。

要在Genymotion中安装谷歌服务(如应用商店),您需要单击以下图像中标记为红色的按钮:

此外,请注意,在Genymotion中的Android VM配置中,您可以选择桥接网络模式(如果您将从具有工具的不同VM连接到Android VM,这将很有用)。

使用物理设备

您需要激活调试选项,如果可以root它会更好:

  1. 设置。

  2. (从Android 8.0开始) 选择系统。

  3. 选择关于手机。

  4. 连续点击版本号 7次。

  5. 返回,您将找到开发者选项。

安装应用程序后,首先要做的事情是尝试并调查其功能,了解其工作原理,并熟悉它。 我建议使用MobSF动态分析 + pidcat进行初始动态分析,这样我们就能在MobSF捕获大量有趣的数据的同时学习应用程序的工作方式,稍后可以查看这些数据。

非预期数据泄漏

日志记录

请注意,从Android 4.0之后的版本开始,应用程序只能访问自己的日志。因此,应用程序无法访问其他应用程序的日志。 无论如何,仍建议不记录敏感信息。

复制/粘贴缓存

Android的基于剪贴板的框架使应用程序能够实现复制粘贴功能,但存在风险,因为其他应用程序可以访问剪贴板,可能会暴露敏感数据。对于应用程序的敏感部分(如信用卡详细信息),禁用复制/粘贴功能至关重要,以防止数据泄漏。

崩溃日志

如果应用程序崩溃并保存日志,这些日志可以帮助攻击者,特别是当无法对应用程序进行逆向工程时。为降低此风险,请避免在崩溃时记录日志,如果必须通过网络传输日志,请确保通过SSL通道发送以确保安全性。

作为渗透测试人员,尝试查看这些日志。

发送给第三方的分析数据

应用程序通常集成诸如Google Adsense之类的服务,由于开发人员实施不当,可能会意外泄漏敏感数据。为了识别潜在的数据泄漏,建议拦截应用程序的流量,检查是否向第三方服务发送了任何敏感信息。

SQLite数据库

大多数应用程序将使用内部SQLite数据库保存信息。在渗透测试期间,查看创建的数据库、表和列的名称以及所有保存的数据,因为您可能会发现敏感信息(这可能是一个漏洞)。 数据库应位于/data/data/the.package.name/databases,如/data/data/com.mwr.example.sieve/databases

如果数据库保存了机密信息且已加密,但您可以在应用程序内找到密码,这仍然是一个漏洞。

使用.tables列出表并使用.schema <table_name>列出表的列。

Drozer(利用活动、内容提供程序和服务)

利用导出的活动

授权绕过

当活动被导出时,您可以从外部应用程序调用其屏幕。因此,如果具有敏感信息的活动被导出,您可以绕过****身份验证机制访问它。

您还可以从adb启动导出的活动:

  • PackageName为com.example.demo

  • 导出的ActivityName为com.example.test.MainActivity

adb shell am start -n com.example.demo/com.example.test.MainActivity

请注意,授权绕过并不总是漏洞,这取决于绕过的方式以及暴露了哪些信息。

敏感信息泄露

活动也可以返回结果。如果您找到一个已导出且未受保护的活动调用了 setResult 方法并返回敏感信息,那就存在敏感信息泄露。

点击劫持

利用内容提供程序 - 访问和操纵敏感信息

利用服务

利用广播接收器

利用方案 / 深层链接

adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]

请注意,您可以省略包名称,手机将自动调用应该打开该链接的应用程序。

<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
<!-- fallback in your url you could try the intent url -->
<a href="intent://hostname#Intent;scheme=scheme;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>

执行的代码

要找到在应用中执行的代码,请转到由深度链接调用的活动,并搜索名为**onNewIntent**的函数。

敏感信息

每次找到一个深度链接,请检查它是否通过URL参数接收敏感数据(如密码),因为任何其他应用程序都可以冒充深度链接并窃取这些数据!

路径中的参数

更多示例

传输层检查和验证失败

  • Android 应用程序通常未正确检查证书。这些应用程序通常忽略警告并接受自签名证书,或在某些情况下回退到使用HTTP连接。

  • SSL/TLS 握手期间的协商有时很薄弱,使用不安全的密码套件。这种漏洞使连接容易受到中间人(MITM)攻击的影响,允许攻击者解密数据。

  • 当应用程序使用安全通道进行身份验证,然后在其他交易中使用非安全通道进行通信时,可能会发生私人信息泄霏的风险。这种方法未能保护敏感数据,如会话 cookie 或用户详细信息,免受恶意实体的拦截。

证书验证

SSL Pinning

SSL Pinning 是一种安全措施,应用程序会将服务器的证书与应用程序内存储的已知副本进行验证。这种方法对于防止 MITM 攻击至关重要。强烈建议处理敏感信息的应用程序实施 SSL Pinning。

流量检查

绕过 SSL Pinning

当实施 SSL Pinning 时,为了检查 HTTPS 流量,绕过它是必要的。有多种方法可用于此目的:

  • 您还可以尝试使用 MobSF 动态分析自动绕过 SSL Pinning(下文有解释)

寻找常见 Web 漏洞

还重要的是在应用程序中寻找常见的 Web 漏洞。有关识别和缓解这些漏洞的详细信息超出了本摘要的范围,但在其他地方有广泛的覆盖。

Frida

转储内存 - Fridump

检查应用程序是否在内存中存储不应该存储的敏感信息,如密码或助记词。

# With PID
python3 fridump3.py -u <PID>

# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"

这将在./dump文件夹中转储内存,然后您可以使用类似以下方式进行grep:

strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"

Keystore中的敏感数据

在Android中,Keystore是存储敏感数据的最佳位置,但是即使有足够的权限,仍然可能访问它。由于应用程序倾向于在此处以明文形式存储敏感数据,因此渗透测试应该以root用户或者有物理访问设备权限的人员身份检查它,因为这些人可能能够窃取这些数据。

即使应用程序将数据存储在keystore中,数据也应该进行加密。

frida -U -f com.example.app -l frida-scripts/tracer-cipher.js

指纹/生物识别绕过

使用以下Frida脚本,可能可以绕过Android应用程序可能正在执行的用于保护某些敏感区域的指纹认证:

frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>

背景图片

当您将应用程序置于后台时,Android会存储应用程序的快照,因此当应用程序恢复到前台时,它会在加载应用程序之前加载图像,使得应用程序看起来加载得更快。

然而,如果此快照包含敏感信息,那么可以访问快照的人可能会窃取这些信息(请注意,您需要root权限才能访问)。

这些快照通常存储在:/data/system_ce/0/snapshots

Android提供了一种方法,可以通过设置FLAG_SECURE布局参数来防止截屏捕获。通过使用此标志,窗口内容被视为安全内容,防止其出现在截屏中或在非安全显示器上查看。

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);

Android应用程序分析器

Intent注入

开发人员经常创建代理组件,如活动、服务和广播接收器,用于处理这些Intent并将它们传递给诸如startActivity(...)或sendBroadcast(...)等方法,这可能存在风险。

危险在于允许攻击者触发非导出的应用组件或通过误导这些Intent访问敏感内容提供者。一个显著的例子是WebView组件通过Intent.parseUri(...)将URL转换为Intent对象,然后执行它们,可能导致恶意Intent注入。

主要要点

  • Intent注入类似于Web的开放重定向问题。

  • 利用涉及将Intent对象作为额外参数传递,可以重定向执行不安全的操作。

  • 它可以使非导出组件和内容提供者暴露给攻击者。

  • WebView的URL到Intent转换可以促成意外操作。

Android客户端注入和其他漏洞

您可能已经从Web了解到这种类型的漏洞。在Android应用程序中,您必须特别注意以下漏洞:

  • **SQL注入:**处理动态查询或内容提供者时,请确保使用参数化查询。

  • **永久cookie:**在一些情况下,当Android应用程序结束会话时,cookie没有被撤销,甚至可能被保存到磁盘上。


黑客见解 参与深入探讨黑客活动的刺激和挑战的内容

实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界

最新公告 通过最新的赏金任务发布和重要平台更新保持信息灵通

自动分析

静态分析

使用一个漂亮的基于Web的前端对应用程序进行漏洞评估。您还可以执行动态分析(但需要准备好环境)。

docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

请注意,MobSF可以分析Android(apk)、IOS(ipa)和Windows**(apx)应用程序(Windows应用程序必须从安装了MobSF的Windows主机中进行分析)。 此外,如果您创建一个包含Android或IOS应用程序源代码的ZIP文件(转到应用程序的根文件夹,选择所有内容并创建一个ZIP文件),MobSF也可以分析它。

MobSF还允许您进行差异/比较分析,并集成VirusTotal(您需要在_MobSF/settings.py_中设置您的API密钥并启用它:VT_ENABLED = TRUE VT_API_KEY = <Your API key> VT_UPLOAD = TRUE)。您还可以将VT_UPLOAD设置为False,然后将哈希而不是文件上传。

使用MobSF进行辅助动态分析

MobSF在Android中进行动态分析时也非常有帮助,但在这种情况下,您需要在主机上安装MobSF和genymotion(虚拟机或Docker将无法工作)。注意:您需要先启动genymotion中的虚拟机,然后再启动MobSF。 MobSF动态分析器可以:

  • 转储应用程序数据(URL、日志、剪贴板、您制作的屏幕截图、由“导出活动测试器”制作的屏幕截图、电子邮件、SQLite数据库、XML文件和其他创建的文件)。所有这些都是自动完成的,除了屏幕截图,您需要在需要屏幕截图时按下按钮,或者您需要按下“导出活动测试器”以获取所有导出活动的屏幕截图。

  • 捕获HTTPS流量

  • 使用Frida获取运行时信息

从Android 版本大于5开始,它将自动启动Frida并设置全局代理设置以捕获流量。它只会捕获来自被测试应用程序的流量。

Frida

默认情况下,它还将使用一些Frida脚本来绕过SSL绑定、root检测和调试器检测,以及监视有趣的API。 MobSF还可以调用导出的活动,抓取它们的屏幕截图并为报告保存它们。

要开始动态测试,请按下绿色按钮:“开始仪器化”。按下“Frida实时日志”以查看Frida脚本生成的日志,“实时API监视器”以查看所有挂钩方法的调用、传递的参数和返回值(在按下“开始仪器化”后会出现)。 MobSF还允许您加载自己的Frida脚本(要将您的Friday脚本的结果发送到MobSF,请使用函数send())。它还有几个预写脚本可供加载(您可以在MobSF/DynamicAnalyzer/tools/frida_scripts/others/中添加更多),只需选择它们,按下“加载”,然后按下“开始仪器化”(您将能够在“Frida实时日志”中看到该脚本的日志)。

此外,您还有一些辅助的Frida功能:

  • 枚举加载的类:它将打印所有加载的类

  • 捕获字符串:在使用应用程序时打印所有捕获的字符串(非常嘈杂)

  • 捕获字符串比较:可能非常有用。它将显示正在比较的两个字符串以及结果是True还是False。

  • 枚举类方法:输入类名(如“java.io.File”),它将打印类的所有方法。

  • 搜索类模式:按模式搜索类

  • 跟踪类方法:跟踪整个类(查看该类的所有方法的输入和输出)。请记住,默认情况下,MobSF跟踪几个有趣的Android Api方法。

选择要使用的辅助模块后,您需要按下“开始仪器化”,然后您将在“Frida实时日志”中看到所有输出。

Shell

Mobsf还为您提供了一个带有一些adb命令、MobSF命令和常见shell命令的shell,位于动态分析页面的底部。一些有趣的命令:

help
shell ls
activities
exported_activities
services
receivers

HTTP工具

完成使用MobSF进行动态分析后,您可以点击“Start Web API Fuzzer”来模糊http请求并寻找漏洞。

在使用MobSF进行动态分析后,代理设置可能被错误配置,您将无法从GUI中修复它们。您可以通过以下方式修复代理设置:

adb shell settings put global http_proxy :0

使用 Inspeckage 进行辅助动态分析

这是一个 用 GUI 执行静态分析的好工具

该工具旨在查找几种 与安全相关的 Android 应用程序漏洞,无论是在 源代码 还是 打包的 APK 中。该工具还 能够创建一个可部署的“概念验证”APK 和 ADB 命令,以利用发现的一些漏洞(暴露的活动、意图、tapjacking...)。与 Drozer 一样,无需对测试设备进行 root。

pip3 install --user qark  # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
qark --java path/to/parent/java/folder
qark --java path/to/specific/java/file.java
  • 显示所有提取的文件,便于参考

  • 自动将APK文件反编译为Java和Smali格式

  • 分析AndroidManifest.xml以查找常见漏洞和行为

  • 针对常见漏洞和行为进行静态源代码分析

  • 设备信息

  • 以及更多

reverse-apk relative/path/to/APP.apk

SUPER是一个命令行应用程序,可在Windows、MacOS X和Linux上使用,用于分析.apk文件以查找漏洞。它通过解压APK并应用一系列规则来检测这些漏洞。

所有规则都集中在rules.json文件中,每个公司或测试人员都可以创建自己的规则来分析他们需要的内容。

super-analyzer {apk_file}

其概念是您将移动应用程序文件(.apk或.ipa文件)拖放到StaCoAn应用程序上,它将为您生成一个可视化和便携式报告。您可以调整设置和单词列表以获得定制体验。

./stacoan
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]

Androwarn 是一个工具,其主要目的是检测并警告用户有关 Android 应用程序可能存在的恶意行为。

该工具寻找**"坏"应用程序的常见行为**,例如:泄露电话标识符、拦截音频/视频流、修改 PIM 数据、执行任意代码...

python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3

MARA 是一个用于移动应用程序逆向工程和分析的框架。它是一个工具,汇集了常用的移动应用程序逆向工程和分析工具,以帮助测试移动应用程序抵御OWASP移动安全威胁。其目标是使移动应用程序开发人员和安全专业人员更容易友好地执行此任务。

它能够:

  • 使用不同工具提取Java和Smali代码

  • 使用正则表达式从APK中提取私人信息。

  • 分析清单。

Koodous

代码混淆/反混淆

请注意,根据您用于混淆代码的服务和配置,秘密可能会或可能不会被混淆。

ProGuard作为Android SDK的一部分分发,并在发布模式下构建应用程序时运行。

(来自该指南)上次我们检查时,Dexguard的操作模式是:

  • 将资源作为InputStream加载;

  • 将结果提供给继承自FilterInputStream的类以解密;

  • 进行一些无用的混淆以浪费逆向者的几分钟时间;

  • 将解密的结果提供给ZipInputStream以获取DEX文件;

  • 最后使用loadDex方法将生成的DEX作为资源加载。

DeGuard 反转了Android混淆工具执行的混淆过程。这使得可以进行多种安全分析,包括代码检查和预测库。

您可以将混淆的APK上传到他们的平台。

这是一个通用的Android反混淆工具。 Simplify 虚拟执行应用程序 以了解其行为,然后尝试优化代码 使其行为相同,但更容易让人理解。每种优化类型都是简单且通用的,因此不管使用了什么具体类型的混淆,都不重要。

手动

实验室

AndroL4b是一个基于ubuntu-mate的Android安全虚拟机,包括来自不同安全极客和研究人员的最新框架、教程和实验室,用于逆向工程和恶意软件分析。

参考资料

尚未尝试

黑客见解 参与深入探讨黑客的刺激和挑战的内容

实时黑客新闻 通过实时新闻和见解了解快节奏的黑客世界

最新公告 通过最新的赏金计划发布和重要平台更新保持信息更新

加入 服务器,与经验丰富的黑客和赏金猎人交流!

加入我们的 ,立即与顶尖黑客合作!

查看以下列表,了解如何使用 adb。

有时修改应用程序代码以访问隐藏信息(也许是经过良好混淆的密码或标志)是很有趣的。然后,可能需要对 apk 进行反编译、修改代码并重新编译。 。这在动态分析期间的多个测试中可能非常有用。因此,始终记住这种可能性。

下载 APK:、、、

首先,要分析一个APK,你应该使用反编译器查看Java代码。 请。

特别注意Firebase URL,检查是否配置不当。

使用来检查构建APK时使用的编译器/打包程序/混淆器

根据这篇,超级打包是一种将应用程序内容压缩到单个文件中的元算法。该博客讨论了创建一个可以解压这些应用程序的应用程序的可能性...以及一种更快的方法,即执行应用程序并从文件系统中收集解压后的文件。

工具能够通过扫描应用程序的代码来发现漏洞。该工具包含一系列已知源(指示工具用户控制的输入位置)、漏洞(指示工具危险位置,恶意用户输入可能造成损害)和规则。这些规则指示了源-漏洞的组合,指示了漏洞。

应用程序可能包含内部的机密信息(API密钥、密码、隐藏的URL、子域...),你可以使用诸如之类的工具来发现。

加入服务器,与经验丰富的黑客和赏金猎人交流!

加入我们的 ,立即与顶尖黑客合作!

您可以在创建一个免费账户。该平台允许您上传和执行APK文件,因此可以查看APK的行为。

(您可以创建x86和arm设备,根据最新的x86版本支持ARM库,无需使用速度较慢的arm模拟器)。

(免费版本:个人版,您需要创建一个账户。_建议下载带有_VirtualBox的版本,以避免潜在错误。)

(免费,但不支持Frida或Drozer)。

开发人员应谨慎公开调试信息,因为这可能导致敏感数据泄漏。推荐使用工具和adb logcat来监视应用程序日志,以识别和保护敏感信息。Pidcat因其易用性和可读性而备受青睐。

来自:Drozer允许您扮演Android应用程序的角色并与其他应用程序交互。它可以执行已安装应用程序可以执行的任何操作,例如利用Android的进程间通信(IPC)机制并与底层操作系统交互。 Drozer是一个有用的工具,可用于利用导出的活动、导出的服务和内容提供程序,您将在以下部分中了解更多信息。

还要记住,活动的代码从**onCreate**方法开始。

注意:MobSF 将检测在活动中使用 android:launchMode 作为 singleTask/singleInstance 的行为为恶意,但由于 ,显然这只在旧版本(API 版本 < 21)上存在危险。

如果未防止点击劫持,您可以滥用已导出的活动来使用户执行意外操作。有关 。

内容提供程序基本上用于共享数据。如果应用程序有可用的内容提供程序,您可能能够从中提取敏感数据。还值得测试可能的SQL 注入和路径遍历,因为它们可能存在漏洞。

请记住,服务的操作始于 onStartCommand 方法。

服务基本上是可以接收数据,处理它并返回(或不返回)响应的东西。因此,如果一个应用程序正在导出一些服务,您应该检查代码以了解它在做什么,并动态测试以提取机密信息、绕过身份验证措施等...

请记住,广播接收器的操作始于 onReceive 方法。

广播接收器将等待某种类型的消息。根据接收器处理消息的方式,它可能存在漏洞。

您可以手动查找深层链接,使用类似 MobSF 这样的工具或类似 的脚本。 您可以使用 adb 或 浏览器 打开已声明的 scheme:

您还必须检查任何深度链接是否在URL路径中使用参数,例如:https://api.example.com/v1/users/{username},在这种情况下,您可以强制进行路径遍历,访问类似于:example://app/users?username=../../unwanted-endpoint%3fparam=value。 请注意,如果您在应用程序内找到正确的端点,您可能会导致开放重定向(如果路径的一部分用作域名)、账户接管(如果您可以修改用户详细信息而无需CSRF令牌,并且易受攻击的端点使用了正确的方法)和任何其他漏洞。有关此内容的更多。

一个关于链接的(/.well-known/assetlinks.json)。

我们将重点关注证书验证。必须验证服务器证书的完整性以增强安全性。这很关键,因为不安全的 TLS 配置和通过未加密通道传输敏感数据可能带来重大风险。有关验证服务器证书和解决漏洞的详细步骤,提供了全面的指导。

要检查 HTTP 流量,必须安装代理工具的证书(例如 Burp)。如果不安装此证书,加密流量可能无法通过代理查看。有关安装自定义 CA 证书的指南,。

针对API 级别 24 及更高版本的应用程序需要修改网络安全配置以接受代理的 CA 证书。这一步对于检查加密流量至关重要。有关修改网络安全配置的说明,。

使用自动修改 apk 以绕过 SSLPinning。这种选择的最大优势是,您无需 root 来绕过 SSL Pinning,但您需要删除应用程序并重新安装新应用程序,而且这并不总是有效。

您可以使用 Frida(下文讨论)来绕过此保护。这里有一个使用 Burp+Frida+Genymotion 的指南:

您还可以尝试使用自动绕过 SSL Pinning:objection --gadget com.package.app explore --startup-command "android sslpinning disable"

如果您仍然认为有一些流量未被捕获,您可以尝试使用 iptables 将流量转发到 burp。阅读此博客:

是一个供开发人员、逆向工程师和安全研究人员使用的动态检测工具包。 您可以访问正在运行的应用程序并在运行时挂钩方法以更改行为、更改值、提取值、运行不同的代码... 如果您想对 Android 应用程序进行渗透测试,您需要了解如何使用 Frida。

学习如何使用 Frida:

一些用于与 Frida 交互的“GUI”:

Ojection 是自动化使用 Frida 的好工具: ,

您可以在这里找到一些出色的 Frida 脚本:

尝试绕过反调试 / 反 Frida 机制,加载 Frida 如(工具 )

使用 您可以转储应用程序的内存:

要访问keystore中的数据,可以使用此Frida脚本:

这个工具可以帮助您在动态分析过程中管理不同的工具:

**JavaScript注入(XSS):**验证任何WebViews是否已禁用JavaScript和插件支持(默认情况下已禁用)。。

**本地文件包含:**WebViews应禁用对文件系统的访问(默认情况下已启用)- (webview.getSettings().setAllowFileAccess(false);)。。

加入服务器,与经验丰富的黑客和赏金猎人交流!

加入我们的 ,立即与顶尖黑客合作!

当捕获到http流量时,您可以在“HTTP(S) Traffic”底部看到捕获流量的丑陋视图,或者在“Start HTTPTools”绿色按钮中看到更好的视图。从第二个选项,您可以将捕获的请求发送到诸如Burp或Owasp ZAP之类的代理。 要这样做,启动Burp --> 关闭拦截 --> 在MobSB HTTPTools中选择请求 --> 按下“Send to Fuzzer” --> 选择代理地址 ()。

您可以从 获取该工具。 该工具将使用一些 Hooks,让您了解在执行 动态分析 时应用程序中发生了什么。

从下载最新的二进制文件。

StaCoAn是一个跨平台工具,可帮助开发人员、漏洞赏金猎人和道德黑客对移动应用程序进行。

下载:

AndroBugs Framework 是一个 Android 漏洞分析系统,帮助开发人员或黑客发现 Android 应用程序中潜在的安全漏洞。

检测是通过对应用程序的 Dalvik 字节码进行静态分析来实现的,该字节码以 Smali 形式表示,使用 库。

使用以下工具分析APK:, , , ,

使用以下工具分析发现的域:, 和

通过对APK进行反混淆

用于检测恶意软件:

来自:ProGuard 是一个开源的命令行工具,用于收缩、优化和混淆Java代码。它能够优化字节码,检测并删除未使用的指令。ProGuard是自由软件,根据GNU通用公共许可证第2版分发。

在找到逐步指南以对APK进行反混淆

APKiD提供有关APK制作方式的信息。它识别许多编译器、打包工具、混淆工具和其他奇怪的东西。它是Android的。

这是一个资源列表

Android快速课程

加入 服务器,与经验丰富的黑客和赏金猎人交流!

加入我们的 并开始与顶尖黑客合作!

📱
HackenProof Discord
Discord
Android Applications Basics
ADB 命令
在本教程中,您可以学习如何反编译 APK,修改 Smali 代码并重新编译 APK,添加新功能
欺骗 Play 商店中的位置
https://apps.evozi.com/apk-downloader/
https://apkpure.com/es/
https://www.apkmirror.com/
https://apkcombo.com/es-es/apk-downloader/
在这里阅读有关不同可用反编译器的信息
在这里了解有关Firebase是什么以及如何利用它的更多信息。
Tapjacking
Android Task Hijacking
APKiD
React Native Application
Xamarin Apps
博文
mariana-trench
https://github.com/dwisiswant0/apkleaks
Bypass Biometric Authentication (Android)
阅读此内容以了解如何反向工程本机函数
content:// protocol
HackenProof Discord
Discord
https://appetize.io/
Android Studio
此
AVD - Android Virtual Device
Genymotion
Nox
pidcat
Drozer文档
此问题
此工具
信息,请单击此处
有趣的漏洞赏金报告
此资源
请参考此教程
apk-mitm
https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/
objection
https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62
Frida
Frida 教程
https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
https://github.com/sensepost/objection
https://github.com/dpnishant/appmon
https://codeshare.frida.re/
https://erfur.github.io/blog/dev/code-injection-without-ptrace
linjector
Fridump3
https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js
https://github.com/NotSoSecure/android_application_analyzer
HackenProof Discord
Discord
MobSF
http://127.0.0.1:8080\
Inspeckage
Yaazhini
Qark
ReverseAPK
SUPER Android Analyzer
下载页面
StaCoAn
静态代码分析
最新版本
AndroBugs
Windows releases
Androwarn
androguard
MARA Framework
smalisca
ClassyShark
androbugs
androwarn
APKiD
pyssltest
testssl
whatweb
apk-deguard.com
https://koodous.com/
ProGuard
Wikipedia
DexGuard
https://blog.lexfo.fr/dexguard.html
DeGuard
Simplify
APKiD
PEiD
阅读此教程以学习一些关于如何反转自定义混淆的技巧
Androl4b
https://owasp.org/www-project-mobile-app-security/
https://appsecwiki.com/#/
https://maddiestone.github.io/AndroidAppRE/
https://manifestsecurity.com/android-application-security/
https://github.com/Ralireza/Android-Security-Teryaagh
https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec
https://www.vegabird.com/yaazhini/
https://github.com/abhi-r3v0/Adhrit
HackenProof Discord
Discord
点击劫持是什么,请查看此链接
学习如何使用 Drozer 利用广播接收器。
htARTE(HackTricks AWS 红队专家)
订阅计划
官方 PEASS & HackTricks 商品
PEASS 家族
NFT
Discord 群组
电报群组
@carlospolopm
HackTricks
HackTricks Cloud
请单击此处
Cookie中的Secure标志
如果您想了解什么是Android活动,请阅读此内容。
如果您想了解内容提供程序是什么,请阅读此内容。
如果您想了解服务是什么,请阅读此内容。
如果您想了解广播接收器是什么,请阅读此内容。
更多信息请参见此处
更多信息请参见此处
学习如何使用Drozer利用导出的活动。
学习如何使用 Drozer 利用内容提供程序。
学习如何使用 Drozer 利用服务。