Keyboard shortcuts

Press ← or β†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🏠 Back to Blog

Thick Client Applications

Directory map

Summary

Thick client applications are locally installed software that perform significant processing on the client side, with dependencies on backend servers or databases. Unlike web applications, they execute with the user’s privileges and have direct access to local file systems, registry, and network.

Characteristics:

  • Locally installed β€” Execute with user privileges
  • Process independently β€” Don’t require web browser
  • Complex attack surface β€” Multiple exploitation vectors
  • Often unpatched β€” Enterprise deployments lag security updates
  • Legacy technologies β€” Built with outdated frameworks/patterns
  • Credentials locally stored β€” Hardcoded or insecurely cached

Common frameworks:

  • .NET (Windows-focused)
  • Java (cross-platform)
  • C/C++ (performance-critical, system-level access)
  • Python (compiled to .exe)
  • Silverlight (legacy, deprecated)

Vulnerability landscape:

  • Hardcoded credentials β€” Passwords in source code (CRITICAL)
  • Improper error handling β€” Stack traces reveal system information
  • DLL hijacking β€” Load attacker-controlled DLLs for code execution
  • Buffer overflow β€” Memory corruption leading to RCE
  • SQL injection β€” Direct database access via unvalidated queries
  • Insecure storage β€” Plaintext or weakly encrypted local data
  • Weak session management β€” Predictable tokens, session fixation
  • Unencrypted communication β€” MITM attacks for credential theft

Architecture patterns:

  1. Two-tier: Client ↔ Database (direct)

    • Higher risk: Database credentials in client
    • Attacker can connect directly to database
  2. Three-tier: Client ↔ Application Server ↔ Database

    • Better security: Database protected by application server
    • Still vulnerable if application server is compromised

Common scenarios:

  • Enterprise project management / CRM systems
  • Inventory management applications
  • Financial/banking software
  • Manufacturing control systems
  • System administration tools
  • Custom business applications

Post-exploitation value:

  • Access to backend databases
  • Extraction of system credentials
  • Pivot point for network lateral movement
  • Information for further social engineering
  • Access to production systems (if application integrates)