Penetration testing

Thick Client Penetration Testing Explained for Beginners

Illustration: a desktop application window joined by a cable to a server and a database, with a magnifying glass

Not every business application runs in a browser. Billing tools, banking back-office programs, hospital and ERP clients are often desktop programs installed on each user's computer. These are thick clients, and they are tested differently from websites. It is easy to skip when you learn from website labs alone. This guide explains the idea and the method.

What Makes a Thick Client Different

A website keeps most of its logic on the server. A thick client keeps a lot on the user's machine: code, configuration and sometimes passwords or database connection details. That gives the tester more to read and more to tamper with, and it means a protection that exists only in the client can be removed.

Architectures vary. In a two-tier design the program talks straight to a database. In a three-tier design it talks to an application server that talks to the database. The two have different weak points.

1Find Out What the Program Is

Learn how it was built. Is it .NET or Java, or native code? Which files, libraries and services does it install? Microsoft's Sysinternals tools, especially Process Monitor, show which files, registry keys and network connections the program touches as it runs. This stage is information gathering, and it tells you which later steps apply.

2Read Its Traffic

If the program talks over HTTP, an intercepting proxy such as Burp can read it once the program is set to use it. If it uses other protocols, you capture the packets with Wireshark and study them. Look for data sent in clear text, weak or missing encryption and requests you can change.

3Local Storage

Look in the install folder, the user's profile and the registry for configuration files. Hardcoded credentials, database connection strings and keys left in files are common findings, and so is sensitive data cached on disk.

4Read the Code

.NET programs can be decompiled with tools such as ILSpy or dnSpyEx, which show readable code and let a tester see checks that run only on the client, for example a "premium user" flag. Patching a client-side check in a lab shows why the server must enforce the rule. Only do this on programs you are allowed to analyse: a practice application, or software covered by your written scope.

5The Environment Around It

  • DLL hijacking: a program that loads a library from a folder an ordinary user can write to can be made to load a malicious one.
  • File and service permissions: installed files or services that any user can change.
  • Direct database access: if the client holds database credentials, the tester tries the database directly and tests it for injection, which links to SQL injection.

The Standard to Work From

The OWASP Desktop App Security Top 10 lists the common weaknesses and is a good checklist. Findings are written up like any other: evidence, impact, steps and a fix. See how to write a penetration testing report.

How We Teach It

Thick-client testing is an 8-hour module in our Application Security course: Sysinternals tools, traffic, local storage, decompiling .NET with dnSpyEx or ILSpy, DLL hijacking and permissions, and direct database access, against an intentionally vulnerable desktop application. It sits beside web, API and Android testing in the VAPT Track. See also types of VAPT.

Sources and Further Reading

Curious how desktop application testing is taught hands-on? Try 3 to 5 classes free. Contact us or call +91 86868 92922.

Where This Guide Fits in Our Training

Start Your Cyber Security Career

Talk to a counselor, choose the right course for your goals, and get the fee, syllabus and next batch dates in writing.

Book Free Trial Classes

We reply to every enquiry within 24 hours.

By submitting, you agree that Hacking Trainer Academy may contact you about courses by phone, WhatsApp or email. See our privacy notice and refund policy.

WhatsApp