A Complete Guide to Penetration Testing

A complete guide to penetration testing

What is penetration testing?

Penetration Testing is a type of security testing process to identify possible security vulnerabilities within your application by using malicious techniques. Here the application will be exploited for vulnerabilities through an authorized attack. The purpose of Penetration Testing is to secure your data from malicious attacks. Penetration Testing, also called as Pen Test is a way of ethical hacking performed by the tester to make sure proper defensive measures are employed.

Security Testing

Penetration testing basics

Penetration testing is a must and has become unavoidable for organizations with lots of cyber-attacks happening around. Back in 2003, Yahoo was affected by a data breach. Even Organizations as big as Yahoo face these security threats. No matter how secure you think, the hackers always find loopholes to penetrate into your system. Pen test will make sure your critical business and financial data are secure. During a pen test everything from software, hardware to networks will be tested.


Penetration Testing Benefits

  • It explores existing weakness and reveals vulnerabilities.
  • It makes sure your business is up-and-running 24/7.
  • It helps maintain a positive relationship with your customers, partners and stake holders by preventing your organization from cyber-attacks.
  • It tests your cyber-defense capability.
  • It offers 3rd party expert opinion.
  • It fulfills the organizations need to comply with regulations and certifications (ISO27001, PCI).

Penetration Testing Best Practices

  • Outline your Goals – The purpose of establishing your goals is to make sure that we are meeting the objectives. It will help you find the focus to determine the greatest security risks. Ensure there is adequate time for planning.

    Comprehensive Network Assessment – Most companies does penetration test of the network from the outside. The best practice is to do it both external and internal.

    Think like a Hacker – In order to perform a successful pen test, you have to think like a hacker. The testers should mimic hackers to see potential threats. Identify the data at risk, plan how to attack it and pretend how a hacker would lay hands on it.

    Explore all possible scenarios – There will always be some loop-holes in any application. Penetration testing gives you a chance to test all possible scenarios for vulnerabilities.

    Choose the right type – There are different types of pen test. Choosing the right one is critical as it ensures to align the time, budget and manpower with the outcome.

    Identify the best team – The cost effective route is to appoint an internal security personnel to perform pen test. Though it is cost effective, it may not provide you the desired results. Outsourcing to an independent software testing vendor will yield you results, as they are less likely to take shortcuts.


Penetration Testing Methodologies

The PTES (Penetration Testing Methodologies and Standards) has developed a basic penetration testing methodology, which consist of 7 steps. This methodology covers everything from pre-engagement, information gathering, and exploitation & post exploitation

Penetration Testing Methodologies
Penetration Testing Types

There are 3 different types of penetration testing.

Black Box Penetration Testing – In this method, the tester assess the target without any knowledge of the application. In other words, no code is being examined.

White Box Penetration Testing – In this method, the tester assess the target with complete knowledge like systems, network, IP address, source code, OS, schema etc.

Grey Box Penetration Testing – In this method the tester has limited knowledge of the target environment.

Penetration testing can also be categorized in 5 types.

Network Service Tests – This is the most common type of pen test, which aims to discover the vulnerabilities in the network. This test can be done locally as well as remotely. The tester will examine,

  • Firewall config testing
  • Stateful analysis testing
  • Firewall bypass testing
  • IPS detection
  • DNS level attacks like zone transfer testing, switching or routing based testing, any miscellaneous network parameter testing

Also software packages like,

  • SSH client/server tests
  • Network databases like MYSQL/SQL server
  • Exchange or SMTP mail servers
  • FTP client/server tests

 Wireless Network Tests – This type of test is to analyze the wireless devices deployed on the client environment. The wireless devices like tablets, notebooks, laptops and smartphones are tested for vulnerabilities.

Web Application Tests – Web applications, browsers and their components are tested for security weaknesses and vulnerabilities.

 Client Side Tests – The security vulnerabilities of any software that have been installed in the client’s computer (employee workstation) are tested.

Social Engineering Tests – In this type of test the tester tries to get confidential sensitive information of employees such as passwords by tricking them to reveal. The purpose is to discover how weak and unsecured the information are for hackers.


Penetration Testing Techniques

Manual penetration testing

Automated penetration testing

Combination of manual and automation

Penetration Testing Tools

Though penetration testing can be done manually, there are lots of open source and paid tools for automation purpose.  The following are some of the popular automation tools among penetration testers.

Penetration Testing Tools



Indium Software is an Independent Software Testing Company established in 1999, offering software testing services & offshore Quality Assurance solutions. We specialize in test automation of web | Mobile | Desktop applications

Leave a Reply