Pentesting on ISO8583 protocol

gayatri r
3 min readJun 15, 2023

Penetration testing, also referred to as pen testing or ethical hacking is a process of evaluating the security of a computer system, network, or web application in order to identify vulnerabilities that could be exploited by an attacker.

When it comes to ISO 8583, a standard for electronic transactions made using payment cards. Penetration testing would involve examining the security of the systems that handle these transactions. To conduct a thorough penetration test of an ISO 8583 system. There are several steps involved.

The first step is information gathering which entails comprehending the system architecture, flow of data and technologies utilized. In the case of ISO 8583 systems it requires understanding how messages are structured and processed along with what each field represents.

The second step is threat modeling which involves identifying potential threats and vulnerabilities within the system such as insecure encryption methods or weak authentication mechanisms for ISO 8583.

Next up is vulnerability analysis where various techniques are used to pinpoint vulnerabilities within the system. Tools like message interception and modification software may be utilized specifically for ISO 8583 penetration testing purposes.

After identifying potential vulnerabilities comes exploitation where efforts are made to see how far these identified weaknesses can be taken in order to better understand their potential impact if breached. Unauthorized transaction attempts or unauthorized access efforts may be made specifically for ISO 8583 penetration testing purposes in this phase.

Reporting is crucial at every stage as findings should always be documented diligently along with identified risks and recommendations for mitigating them. Its important to bear in mind that all penetration testing should be done ethically under controlled conditions with full consent from stakeholders who own or operate tested systems. Reference:

ISO 8583 Message format (link provided if applicable) The electronic systems behind payments through cards rely on specific standards like ISO 8583. In this system, MTI codes have important functions as they reveal crucial details regarding each transaction according to pre-defined rules.

MTI codes usually comprise four digits in total; each digit plays a unique role under ISO-8853 guidelines. The initial digit is always “0” (representing it’s the 1987 version). Non-inclusive of this digit, the second one stands for either Authorization Messages (“1”) or Financial Messages (“2”). Similarly, the third one identifies the message as a Request (“0”) or Response (“1”), while finally, the fourth digit represents who initiated communication — typically “Acquirer.”

For example, an MTI code of “0110” indicates an Authorization Response; conversely,’0200' implies a Financial Request while ‘0210’ suggests a Financial Response.
Keep in mind that interpretation differences can arise across ISO 8583 implementations used by various institutions that deal with card payment transactions.

Testing for security vulnerabilities needs specialized training and software tools.
jPOS is one such tool that offers customizable frameworks based on Java for financial transaction libraries; Ostia can simulate ISO 8583 traffic & analyze responses during penetration testing as another possible option. In order to test the functionality of implementations adhering to the ISO 8583 standard, one can utilize

NeapoliT — a protocol simulator tool. Another beneficial tool for developers working with ISO 8583 messages is the ISO 8583 SDK which opens up avenues for creating personalized testing tools. For capturing and browsing traffic running on computer networks such as those carrying ISO 8583 messages, Wireshark serves as an excellent network protocol analyzer. Additionally, if one desires to undertake penetration testing through Wireshark’s support for dissecting these messages, it becomes all the more efficient.

JMeter, being open-source software designed particularly for load-testing functional behavior and measuring performance, not only provides such services but also has plugins available to handle the aforementioned specific messaging standards. While these resources are surely reliable, it’s crucial that we understand that conducting unauthorized penetration tests can be significantly inappropriate from both ethical and legal perspectives.

References:

https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/reading-between-the-lines-harvesting-credit-cards-from-iso8583-1987-traffic/

--

--