Thick Client Penetration Testing
Thick client pentesting is basically testing desktop or rich applications like Windows or Java/.net apps to see if there are any security holes. It's not just about the server, we also look at how the app stores data on the computer, how it talks to the server, and whether someone could tamper with it or reverse-engineer.
Stay Updated with Official OWASP Guide: https://owasp.org/www-project-desktop-app-security-top-10/
Amazing Resources
| S.N | Credit | Resources links |
|---|---|---|
| 1. | CyberArk | Thick Client Penetration Testing Methodology |
| 2. | Dark Relay | Thick Client Penetration Testing |
| 3. | Payatu | Thick Client Penetration Testing |
| 4. | QualySec | Thick Client Pen Testing: A Comprehensive Guide |
| 5. | Medium | Thick Client Security Testing: The Essential Guide |
| 6. | Infosec Writeups | Thick Client Pentest: Modern Approaches and Techniques (Part 1) |
| 7. | Threat Intelligence | Thick Client Application Penetration Test |
Common Tools
| S.N | Common Tools | Category | Common Vulnerability |
|---|---|---|---|
| 1. | Fiddler/Burpsuite/Echo Mirage | Dynamic Analysis & Traffic Interception | Man-in-the-Middle (MITM) Attacks,Common Web Application Testing |
| 2. | Procmon | Process Monitoring | DLL Hijacking, Insecure File Stoarge |
| 3. | Strings.exe | Static Analysis | Information Disclosure |
| 4. | Sysinternals Suite | System Analysis | Multiple Tools combination for different task |
| 5. | Nmap | Network Scanning | Open Ports & Service Enumeration |
| 6. | Testssl | SSL/TLS Testing | Weak SSL/TLS Configurations |
| 7. | Process Hacker | Process Monitoring | Memory Manipulationm memory dump |
| 8. | Dnspy/ Dot Peek/ VB decompiler | Reverse Engineering/Decompilation | Source Code Disclosure |
| 9. | de4dot | Reverse Engineering/Deobfuscation | Deobfuscation of .NET Assemblies |
| 10. | Wireshark | Packet Analysis | Unencrypted Data Exposure |
| 11. | Ollydbg | Debugging/Reverse Engineering | Binary Manipulation |
| 12. | .Net Reflector | Reverse Engineering/Decompilation | Application Logic Flaws |
| 13. | Winhex | Forensic Analysis | Data Extraction & Recovery |
| 14. | SigCheck | File Integrity Verification | Verification of Digital Signatures |
| 15. | Ghidra | Binary Analysis & Reverse Engineering | Static & Dynamic Binary Analysis |
| 16. | Radare2 | Binary Analysis & Reverse Engineering | Malware Analysis, Vulnerability Discovery |
| 17. | IDA Pro | Binary Analysis & Reverse Engineering | Disassembly & Reverse Engineering |
Commaon programming laguage used for Thick Client application development
| S.N | Language |
|---|---|
| 1. | .NET |
| 2. | Java |
| 3. | C/C++ |
| 4. | Microsoft Silverlight |
Common Vulnerability
| S.N | Vulnerability |
|---|---|
| 1. | Hard-Coded Secrets in source code |
| 2. | Insecure Communication |
| 3. | Buffer Overflow |
| 4. | DLL Hijacking |
| 5. | DEBUG is enabled |
| 6. | SQL Injection |
| 7. | Improper Exception Handling |
| 8. | Command Injection |
| 9. | Information Disclosure by Stack Trace Error |
| 10. | Insecure Direct Object References (IDOR) |
| 11. | Security Misconfiguration |
| 12. | Unvalidated Redirects and Forwards |
| 13. | Broken Authentication |
| 14. | Insecure Deserialization |
| 15. | Missing Function-Level Access Control |
| 16. | Remote Code Execution (RCE) |
| 17. | Application Logs in Clear Text |
Check List
| S.N | Credit | Resources links |
|---|---|---|
| 1. | Hari-prasaanth | Thick Client Pentest Checklist |
| 2. | m14r41 | PentestingEverything Repository |
Github Resouces
| S.N | Credit | Resources Links |
|---|---|---|
| 1. | RaKKeN | RaKKeN - Thick Client Penetration Testing |
Vulnerable Thick Client Application
| S.N | Credit | Resources Links |
|---|---|---|
| 1. | srini0x00 | DVTA |
| 2. | kartikdurg | Terrible Thick Client |
| 3. | Warxim | Vucsa |
| 4. | DarkRelayLabs | VWA |
| 5. | NetSPI | BetaFast |
THICK CLIENT PENTESTING CHECKLIST
INFORMATION GATHERING
1. Information Gathering
- ☐ Find out the application architecture (two-tier or three-tier)
- ☐ Find out the technologies used (languages and frameworks)
- ☐ Identify network communication
- ☐ Observe the application process
- ☐ Observe each functionality and behavior of the application
- ☐ Identify all the entry points
- ☐ Analyze the security mechanism (authorization and authentication)
2. Tools Used
GUI TESTING
1. Test For GUI Object Permission
- ☐ Display hidden form object
- ☐ Try to activate disabled functionalities
- ☐ Try to uncover the masked password
2. Test GUI Content
- ☐ Look for sensitive information
3. Test For GUI Logic
- ☐ Try for access control and injection-based vulnerabilities
- ☐ Bypass controls by utilizing intended GUI functionality
- ☐ Check improper error handling
- ☐ Check weak input sanitization
- ☐ Try privilege escalation (unlocking admin features to normal users)
- ☐ Try payment manipulation
4. Tools Used
- ☐ UISpy
- ☐ Winspy++
- ☐ Window Detective
- ☐ Snoop WPF
FILE TESTING
1. Test For Files Permission
- ☐ Check permission for each and every file and folder
2. Test For File Continuity
- ☐ Check strong naming
- ☐ Authenticate code signing
3. Test For File Content Debugging
- ☐ Look for sensitive information on the file system (symbols, sensitive)
- ☐ Look for sensitive information in the config file
- ☐ Look for hardcoded encryption data
- ☐ Look for clear text storage of sensitive data
- ☐ Look for side-channel data leakage
- ☐ Look for unreliable logs
4. Test For File And Content Manipulation
- ☐ Try framework backdooring
- ☐ Try DLL preloading
- ☐ Perform race condition check
- ☐ Test for files and content replacement
- ☐ Test for client-side protection bypass using reverse engineering
5. Test For Function Exported
- ☐ Try to find the exported functions
- ☐ Try to use the exported functions without authentication
6. Test For Public Methods
- ☐ Make a wrapper to gain access to public methods without authentication
7. Test For Decompile And Application Rebuild
- ☐ Try to recover the original source code, passwords, keys
- ☐ Try to decompile the application
- ☐ Try to rebuild the application
- ☐ Try to patch the application
8. Test For Decryption And Deobfuscation
- ☐ Try to recover original source code
- ☐ Try to retrieve passwords and keys
- ☐ Test for lack of obfuscation
9. Test For Disassemble And Reassemble
- ☐ Try to build a patched assembly
10. Tools Used
- ☐ Strings
- ☐ dnSpy
- ☐ Procmon
- ☐ Process Explorer
- ☐ Process Hacker
- ☐ HxD
- ☐ PESecurity
REGISTRY TESTING
1. Test For Registry Permissions
- ☐ Check read access to the registry keys
- ☐ Check write access to the registry keys
2. Test For Registry Contents
- ☐ Inspect the registry contents
- ☐ Check for sensitive info stored in the registry
- ☐ Compare the registry before and after executing the application
3. Test For Registry Manipulation
- ☐ Try for registry manipulation
- ☐ Try to bypass authentication by registry manipulation
- ☐ Try to bypass authorization by registry manipulation
4. Tools Used
- ☐ Regshot