Guide

Thick Client Pentesting (2026): Methodology, Checklist and Tools

Thick client pentesting is security testing of applications installed on a user's computer. You test the local files and code, the memory, and the network traffic between the client and its servers. For traffic that Burp Suite cannot see, such as raw TCP, TLS, UDP, DTLS and QUIC, use a proxy built for non-HTTP protocols, for example InterceptSuite.

Last updated October 6, 2026

What thick client pentesting covers

A thick (or fat) client does real work on the user's machine: it holds logic, stores data and often speaks its own protocol to a server or straight to a database. That makes the attack surface larger than a browser talking to a web server. A tester looks at the application on disk, in memory and on the wire.

2-tier and 3-tier applications

A 2-tier client connects directly to a database, so connection strings, credentials and queries live in or flow from the client. A 3-tier client talks to an application server, which talks to the database. In both cases, anything the client enforces can usually be changed by the user, so every check that matters must also be made on the server.

Methodology

  1. 1. Information gathering

    Identify the technology (.NET, Java, native C/C++, Electron), the installer, the files and services it adds, and which servers and ports it talks to.

  2. 2. Local data and configuration

    Look in the install folder, user profile, registry, logs and temp files for stored credentials, tokens, connection strings and keys.

  3. 3. Binary and code analysis

    Decompile or disassemble the application to find hard-coded secrets, weak checks done on the client, and the logic behind each network call.

  4. 4. Runtime and memory

    Watch file, registry and process activity while the app runs, hook functions, and look at what sits in memory after login.

  5. 5. Network traffic

    Capture and edit what the client sends and receives. This is where most server-side flaws appear, because the server may trust the client.

  6. 6. Authentication and authorisation

    Test login, session handling, role checks and what happens when you change an ID, a role or a flag in a request.

  7. 7. Updates and installation

    Check how updates are fetched and verified, and whether the installer or loaded libraries can be replaced.

  8. 8. Reporting

    Record the steps, the exact requests and the impact so developers can reproduce each finding.

Thick client pentesting checklist

AreaWhat to checkTools
Local storagePlain-text credentials, tokens or keys in files, registry or logsProcmon, file and registry review
BinaryHard-coded secrets, debug code, missing code signing, weak obfuscationDecompilers and disassemblers
MemorySecrets left in memory after logoutDebuggers, Frida, memory viewers
Network: HTTPMissing or weak TLS certificate validation, sensitive data in requests, broken access controlBurp Suite, ZAP, mitmproxy
Network: non-HTTPPlaintext protocols, weak or missing TLS, replayable or editable messagesInterceptSuite, PETEP, NoPE, Wireshark
Database accessDirect database connections with shared accounts (2-tier apps)Traffic capture, database client
AuthenticationClient-side checks, weak sessions, token reuseProxy and replay tools
AuthorisationChanging a user ID or role in a request is acceptedProxy and replay tools
Updates and installerUnsigned updates, writable install paths, DLL search orderProcmon, signature tools
LoggingSensitive data written to logsFile review

Tools by phase

No single tool covers a whole engagement. These are common choices for each phase.

Static analysisdnSpy or ILSpy for .NET, Ghidra for native code, JD-GUI or similar for Java
Dynamic and runtimeProcess Monitor, x64dbg, Frida
HTTP and HTTPS trafficBurp Suite, OWASP ZAP, mitmproxy
Non-HTTP traffic (raw TCP, TLS, UDP, DTLS, QUIC, STARTTLS)InterceptSuite, PETEP with Deluder, NoPE or mitm_relay with Burp, Wireshark for capture. Echo Mirage is no longer maintained.
Packet capture and analysisWireshark, tcpdump

For side-by-side details on the non-HTTP tools, see the comparison of mitm_relay, NoPE, PETEP and Deluder, mitmproxy vs InterceptSuite, PETEP vs InterceptSuite and the Echo Mirage alternative guide.

OWASP Desktop App Security Top 10

The OWASP Desktop App Security Top 10 lists the most common weaknesses in desktop applications. Network testing maps most directly to DA7, Insecure Communication, and supports several of the others.

IDRiskHow to test it
DA1InjectionsSend crafted input in fields and in intercepted requests.
DA2Broken Authentication & Session ManagementTest login, token reuse and session expiry on the wire.
DA3Sensitive Data ExposureCheck local files, memory and traffic for secrets.
DA4Improper Cryptography UsageReview how the app encrypts data and which TLS versions and ciphers it accepts.
DA5Improper AuthorizationChange IDs and roles in requests and check the server response.
DA6Security MisconfigurationReview install paths, permissions and debug settings.
DA7Insecure CommunicationIntercept all traffic, including non-HTTP protocols, and check it is encrypted and validated.
DA8Poor Code QualityReview decompiled code for unsafe patterns.
DA9Using Components with Known VulnerabilitiesList bundled libraries and versions.
DA10Insufficient Logging & MonitoringCheck what the app records about failed and suspicious actions.

For a step-by-step DA7 walkthrough, read testing DA7 on non-HTTP protocols.

Intercepting thick client traffic

HTTP and HTTPS clients often honour the system proxy or have a proxy setting, so Burp Suite, ZAP or mitmproxy work well. Non-HTTP and proxy-unaware clients are harder: the app may ignore proxy settings, and the protocol may be raw TCP, TLS, UDP, DTLS or QUIC.

  1. Run a proxy that handles the protocol. InterceptSuite exposes a SOCKS5 listener for TCP, TLS, DTLS, QUIC and UDP.
  2. Send the application through it: set the proxy in the app if it has one, or use a transparent redirector such as ProxyBridge for apps that do not.
  3. Install and trust the proxy's CA certificate so TLS can be decrypted.
  4. Read the traffic in Proxy History, hold packets with interception rules, and edit them in text or hex.
  5. Resend and compare with Replay, for example after changing a user ID or a length field.

Full walkthroughs: intercept thick-client traffic, when Burp Suite isn't enough and debugging a custom binary protocol.

Practise on a vulnerable thick client

Damn Vulnerable Thick Client App (DVTA) is an intentionally vulnerable desktop application built for practice, and NetSPI's BetaFast and BetaBank are lab applications used in several tutorials. Run them in a lab you control and work through the checklist above.

Frequently asked questions

What is thick client penetration testing?

It is security testing of applications installed on a user's computer, such as desktop clients and fat clients. It covers the local files and code, the memory, and the network traffic between the client and its servers or databases.

How is it different from web application testing?

A web app runs on the server and the browser is a thin layer. A thick client carries logic, stored data and often its own network protocol on the user's machine, so you test the binary, local storage and non-HTTP traffic as well as the server.

Why does Burp Suite not show my thick client's traffic?

Many thick clients ignore proxy settings or use raw TCP, TLS or UDP instead of HTTP. Burp only handles HTTP, so you need a proxy that handles those protocols and a way to send the application through it.

Which tools are used for thick client pentesting?

Common choices are decompilers (dnSpy, Ghidra), Process Monitor, Frida, Burp Suite or mitmproxy for HTTP traffic, and tools such as InterceptSuite, PETEP or NoPE for non-HTTP traffic.

Where can I practise?

Damn Vulnerable Thick Client App (DVTA) is an intentionally vulnerable application built for practice. NetSPI's BetaFast and BetaBank are other lab applications used in tutorials.

Related guides