Skip to main content

We test the functionality of traditional compiled applications, including their local functions, dependencies, and interactions with other systems. With applications that make use of multiple processes, the inter-process communication methods are analysed to check against opportunities to manipulate behaviour. 

What should be included in the compiled application test?

The functionality of traditional compiled applications, including their local functions, dependencies, and interactions with other systems. With applications that make use of multiple processes, the inter-process communication methods should be analysed for opportunities to manipulate behaviour. 

Areas of Testing

  • Access Controls
  • Cryptographic Failures and Data exposure
  • Design Flaws in application functionality
  • Software and Data Integrity (e.g third-party dependencies and software supply chain)

What are the different testing approaches we offer?

Blackbox Testing

The consultant will be given access to the application in the same form as a legitimate user; this may include user manuals, training material, and other  documentation, however, it will not include the application source code. The consultant will then attempt to identify and exploit any security weaknesses in the application via reverse engineering techniques. 

Whitebox Testing

The consultant will be given access to the application, alongside the  application’s source code. The consultant will then conduct testing using the source code as a reference to allow faster identification of issues and identification of more complex security issues. 

Upon identification of potential security issues, the consultant will attempt to develop  a proof-of-concept exploit for the application. These will allow the consultant to prove the existence of the vulnerability and demonstrate the impact it may have. 

Common Vulnerabilities 

  • DLL Hijacking 
  • Privilege Escalation
  • Hardcoded encryption material 
  • Insecure Inter-Process Communication (IPC)
  • Credentials stored in configuration files

Reporting

A report is written detailing the processes carried out and the issues found. Generally, this will contain a prioritised list of vulnerabilities discovered grouped by functional area. Remediation advice will be provided, both in terms of an immediate fix and any defence-in-depth measures that could be taken to mitigate risk. Attack-chains, alongside their impact, will be documented. Any higher-level findings that can be abstracted from the testing will be provided. Any architectural or design weaknesses will be highlighted so that these can be avoided in the future. Finally, an executive summary is produced to allow the most severe issues to be communicated quickly to stakeholders.

CHECK Testing

In some  cases, testing may need to be conducted under the NCSC CHECK scheme. When this occurs, certain requirements must be met. 

Testing led by a CHECK Team Leader – Applications (CTL APP) 

On large or complicated tests, the CTL may be supported by one or more CHECK Team Members

It is important to consider whether testing will need to be conducted under the CHECK scheme at the scoping phase.

Considerations for SECRET Networks

Where testing will be conducted on a network rated for SECRET information, additional requirements must be met:

Two CTL INFs are needed at all times.

Additional expenses must be accounted for, as no storage material may leave the facility upon testing being completed.

All testing and reporting must be conducted on-site.

Example attacks from previous engagements

To illustrate the type of real-world attack, these are some possible attacks based on previous tests carried out across a range of networks.

The consultant identified that the application would attempt to load multiple DLLs that did not exist. The process was executed under the context of a privileged user, with the search order for these DLLs including a folder controlled by the user. Therefore, by creating a malicious version of a missing DLL and placing it within the user-controlled folder,  the consultant was able to gain code execution as the privileged user, allowing local privilege escalation on the system.

Within the same application, it was found there were hard-coded encryption keys used to decode settings from a configuration file. By using this key, the consultant was able to decrypt the configuration file and identified administrator level credentials for remote systems stored within them. This would have allowed the consultant to gain access to remote systems via a user-level terminal.

Finally, the application made use of multiple processes linked via IPC. Weaknesses were identified in this IPC process that allowed the consultant to inject commands, bypassing an authentication requirement that would normally be required by the application. This allowed the consultant to conduct privileged operations via the application without knowledge of the pre-requisite password. 

Penetration Testing

Free Pen Test Partners Socks!!!

Pen Test Partners socks are THE hot security accessory this season, if you're a security professional get yours now!

Get Socks
Fire detection system been pwned? You’re not going to sea
  • Vulnerability Advisory
Fire detection system been pwned? You’re not going to sea

10 Min Read

May 30, 2025

How to load unsigned or fake-signed apps on iOS
  • How Tos
How to load unsigned or fake-signed apps on iOS

10 Min Read

May 28, 2025

Our capabilities. A story about what we can achieve
  • Shameless Self Promotion
Our capabilities. A story about what we can achieve

11 Min Read

May 27, 2025