<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>Author at Infinum</title>
		<atom:link href="https://infinum.com/blog/author/vedran-furlan/feed/" rel="self" type="application/rss+xml" />
		<link></link>
		<description>Building digital products</description>
		<lastBuildDate>Tue, 21 Apr 2026 11:39:43 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>52406https://infinum.com/uploads/2024/03/Step-by-step_guide_to_a_quality_penetration_test_blogpost-hero-ig-min.webp</url>
				</image>
				<title>Scope, Test, Report – Penetration Testing Steps Explained</title>
				<link>https://infinum.com/blog/penetration-testing-steps/</link>
				<pubDate>Fri, 29 Mar 2024 12:15:11 +0000</pubDate>
				<dc:creator>Vedran Furlan</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=52406</guid>
				<description>
					<![CDATA[<p>We take you through all the penetration testing steps, explaining how each of them helps identify weaknesses in your security system.</p>
<p>The post <a href="https://infinum.com/blog/penetration-testing-steps/">Scope, Test, Report – Penetration Testing Steps Explained</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-106"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-93">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-94'
	>
	<strong>We take you through all the penetration testing steps, explaining how each of them helps identify weaknesses in your security system someone with less honorable intentions could easily take advantage of.</strong>&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-97'
	>
	If you’re considering <a href="https://infinum.com/blog/why-penetration-testing-is-important/" target="_blank" rel="noreferrer noopener">penetration testing for your business</a>, we can tell you right now that you’re wise to do that. <a href="https://infinum.com/blog/cybersecurity-trends-2024/" target="_blank" rel="noreferrer noopener">Threats in the digital space are evolving and multiplying</a>, and penetration tests are an excellent way to conduct a vulnerability assessment of your system.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-100'
	>
	But what does this process of “ethical hacking” look like? No, it doesn’t involve a suspiciously-looking guy in a basement furiously typing away at his keyboard as lines of code rapidly exchange on five computer screens around him.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-102">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-103'
	>
	In this article, we explain what real-life pentesting typically entails, from the initial scoping phase to the final report.</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-109"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-107"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-108">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2024/03/Penetration_testing_process-in-article-min-1400x495.webp				media='(max-width: 699px)'
				type=image/webp								height="495"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2024/03/Penetration_testing_process-in-article-min-2400x848.webp				media='(max-width: 1199px)'
				type=image/webp								height="848"
												width="2400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2024/03/Penetration_testing_process-in-article-min-3000x1060.webp				media='(max-width: 1999px)'
				type=image/webp								height="1060"
												width="3000"
				 />
												<img
					src="https://infinum.com/uploads/2024/03/Penetration_testing_process-in-article-min.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1142"
															width="3232"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-322"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-110">
	

</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-111">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-112'
	>
	Step 1: Defining the scope</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-115'
	>
	The scoping phase lays the groundwork for the entire penetration testing operation. Before we can start the process, we need to establish what exactly we’ll be testing, why, how, and for how long. This is where we have detailed discussions and planning sessions with our clients so we’re prepared and aligned with our expectations.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-117">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-118'
	>
	Establishing the basic parameters</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-120">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-121'
	>
	First of all, we actively engage with the client to understand the requirements, expectations, and constraints. This includes:&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-126"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-123">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h4	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-124'
	>
	<strong>Assessing the available budget and any resource constraints</strong></h4><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-125'
	>
	To define a realistic scope for the testing, we need to evaluate the resources we have at our disposal.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-130"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-127">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h4	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-128'
	>
	<strong>Identifying the motivation for the penetration test</strong> </h4><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-129'
	>
	Reasons may include regulatory compliance (SOC2, <a href="https://infinum.com/pci-dss-compliance-guide/" id="https://infinum.com/pci-dss-compliance-guide/">PCI-DSS</a>, HIPAA), business needs, customer demands, or internal goals such as evaluating and enhancing security controls.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-134"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-131">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h4	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-132'
	>
	<strong>Target system analysis</strong></h4><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-133'
	>
	We thoroughly examine the system, focusing on its purpose, key assets, architectural design, the technologies and frameworks employed, potential <a href="https://infinum.com/enterprise-cyber-risk-management/" id="https://infinum.com/enterprise-cyber-risk-management/">security risks and threats</a>, history of security incidents, and third-party services.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-135">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-136'
	>
	Choosing the right approach</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-138">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-139'
	>
	Approaches to penetration testing can be categorized into three main types: black box, <a href="https://infinum.com/white-box-penetration-testing/">white box</a>, and gray box. Each provides testers with varying levels of information access.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-141">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-142'
	>
	<li><strong>Black box</strong>: minimal knowledge about the system.</li><li><strong>White box</strong>: comprehensive information about the system.</li><li><strong>Gray box</strong>: some information about the system</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-144">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-145'
	>
	The gray-box approach is often considered the sweet spot. With just the right amount of knowledge about the system, penetration testers can focus their efforts efficiently. They need less time to get the know the system initially but can still devise a realistic scenario for vulnerability assessment.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-149"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-147">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-148'
	>
	Setting the rules of engagement</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-150">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-151'
	>
	Once we define the testing scope and identify the right approach, it’s important to put everything in writing. This ensures that the test is conducted responsibly and safely, without exceeding the boundaries we’ve agreed upon or disrupting the client’s operations, maintaining ethical and legal compliance throughout the process.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-155"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-153">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-154'
	>
	The document typically includes the following information:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-158"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-156">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-157'
	>
	<li><strong>Scope and timeline</strong>: what will be tested and in what duration</li><li><strong>Testing environment</strong>: a specification of endpoints, access requirements, data management procedures, and security challenges</li><li><strong>Communication channels and escalation procedures</strong></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-161"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-159">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-160'
	>
	If you want to go beyond a scoped vulnerability assessment and test how your organization would hold up against a full, campaign-style attack, including detection and response — that&#8217;s what a <a href="https://infinum.com/red-team-services/">red team engagement</a> is designed for. <a href="https://infinum.com/blog/pen-testing-red-teaming/">Pen testing and red teaming serve different purposes</a> — understanding the distinction helps you choose the right engagement before you scope it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-164"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-162">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-163'
	>
	Step 2: Getting into testing</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-167"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-165">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-166'
	>
	When we’ve established the full testing scope, it’s time to get to it. A penetration test consists of three parts: information gathering, scanning for potential vulnerabilities, and exploiting those vulnerabilities.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-170"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-168">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-169'
	>
	Information gathering</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-171">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-172'
	>
	We dive in to learn as much as we can about the subject of our test – your system, and we do so in two phases.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-176"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-174">
	<h4	class='typography typography--size-30-text js-typography block-typography__typography'
	data-id='es-175'
	>
	Passive phase</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-177">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-178'
	>
	First, we focus on publicly available information. We investigate the product, your company, and the people involved. This enables us to get to know the penetration test target and potentially reveal important information, such as additional development environments, API documentation, sensitive information on GitHub, Pastebin, and other online services.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-180">
	<h4	class='typography typography--size-30-text js-typography block-typography__typography'
	data-id='es-181'
	>
	Active phase</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-185"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-183">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-184'
	>
	In the next stage, we focus on understanding the application&#8217;s architecture, the technologies in use, and the systems and services surrounding it, such as a third-party email service or a web application firewall.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-188"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-186">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-187'
	>
	Most web applications integrate other services, and we need to ensure that we don&#8217;t step outside the boundaries defined in the scope. This will be especially important in the next phase of the penetration test, scanning for vulnerabilities.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-191"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-189">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-190'
	>
	However, before pen testers can jump into using crawlers and vulnerability scanners, we have to learn how the system is used. By navigating the system as a user, we gain a deeper understanding of its functionalities and identify potential security flaws so we can prioritize our testing efforts.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-194"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-192">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-193'
	>
	Real-life story: Information gathering can reveal important security issues</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-197"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-195">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-196'
	>
	Exploring the system and the information available can sometimes reveal critical weaknesses. In one of our engagements, we were looking into every known subdomain related to the main domain, knowing that they can contain forgotten or misconfigured records that can be exploited in malicious activities.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-200"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-198">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-199'
	>
	This could easily lead to a subdomain takeover attack. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-202"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-201'
	>
	If someone outside of the organization gains control over the subdomain, they effectively leave the door wide open for attackers to misuse it without hacking into the systems. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-205"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-203">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-204'
	>
	The malicious actor could then organize phishing attacks, distribute malware, cause reputational damage, or bypass the organization&#8217;s security measures.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-208"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-206">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-207'
	>
	In this particular instance, we identified a subdomain pointing to an Azure cloud resource that no longer existed. Without Azure&#8217;s domain verification feature, anyone could have created a new Azure resource and linked it to the client&#8217;s subdomain. This wasn’t very hard to spot and took almost no time and resources, but <strong>we might have missed it if we hadn’t done our research thoroughly.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-214"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-209"
	 target='_blank' rel='noopener noreferrer' href='https://infinum.com/cybersecurity/penetration-testing/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-210'
	>
	Explore our pentesting services and discover any vulnerabilities in your system before malicious actors do.</p>		</div>

		<button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-211"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-212'
	>
	Find out more </div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-213'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-217"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-215">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-216'
	>
	Vulnerability scanning</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-220"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-218">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-219'
	>
	Building upon the information gathered in the previous phase, pen testers<strong> </strong>actively scan the target system or network for vulnerabilities. This phase involves using various tools and techniques to identify potential weaknesses in the target organization&#8217;s security posture. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-223"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-221">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-222'
	>
	We combine automated scanning, which uses tools to quickly and consistently identify known vulnerabilities, and manual scanning, which relies on the expertise of penetration testers to uncover more subtle or complex issues that automated tools may overlook.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-226"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-224">
	<h4	class='typography typography--size-30-text js-typography block-typography__typography'
	data-id='es-225'
	>
	Automated scanning</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-229"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-227">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-228'
	>
	We employ tools for automated scanning to identify common vulnerabilities, misconfigurations, and outdated components. This makes <a href="https://infinum.com/social-engineering-testing-services/">the testing process</a> more efficient because once configured for the system being tested, these tools can scan with little supervision, while pen testers can focus on the manual scanning phase.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-232"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-230">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-231'
	>
	However, it is important to set up the scanners properly because we don’t want to spend hours on tests specialized for a technology that isn’t used on the target system. Penetration testers also need to make sure we stay within the test’s scope. For example, sending a large number of email messages might conflict with the provider’s acceptable use policy.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-235"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-233">
	<h4	class='typography typography--size-30-text js-typography block-typography__typography'
	data-id='es-234'
	>
	Manual scanning</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-238"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-236">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-237'
	>
	In the manual scanning phase, we engage with the product, examining the business logic and human-error-induced irregularities that automated scanners may overlook. We focus on:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-241"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-239">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-240'
	>
	<li>Unusual or unexpected responses from the application, particularly in terms of error handling</li><li>Business logic and areas potentially overlooked by automated scanners, like injection vulnerabilities, file uploads, user management sections, and security misconfigurations</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-244"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-242">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-243'
	>
	This is especially relevant when the app was built with <a href="https://infinum.com/blog/ai-generated-code-security-risks/">AI-assisted development</a>, where the vulnerabilities are assumptions, not bugs.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-247"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-245">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-246'
	>
	For mobile applications in particular, manual testing includes attempting to bypass runtime protections such as root detection, hook detection, and anti-debug mechanisms — as demonstrated in our <a href="https://infinum.com/blog/understanding-defeating-android-protections/">hands-on breakdown of Android protection bypass techniques</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-250"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-248">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-249'
	>
	Real-life story<strong>: </strong>Unusual error messages are always worth investigating</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-253"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-251">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-252'
	>
	During one of our checks, instead of getting a &#8220;no access&#8221; alert, which you would expect if something is private, we got &#8220;service unavailable.&#8221; This unusual response indicated two things. First, the supposedly private endpoint was open to the public, and second, there was a glitch preventing the system from handling our request correctly.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-256"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-254">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-255'
	>
	The investigation uncovered that upon processing our request, the system rightly determined our key as invalid but then mistakenly revoked access for all users on the platform.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-259"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-257">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-258'
	>
	Exploiting the vulnerabilities</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-262"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-260">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-261'
	>
	The search identified a list of potential issues, and now we can jump into vulnerability assessment in the exploitation phase.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-265"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-263">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-264'
	>
	The primary objective of this phase is to understand the severity of the vulnerabilities we found and their potential practical impact.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-268"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-266">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-267'
	>
	The common tasks for this phase include:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-271"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-269">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-270'
	>
	<li>lateral movement</li><li>chaining vulnerabilities</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-274"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-272">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-273'
	>
	Lateral movement means moving across different systems and networks to assess how far an attacker could penetrate the organization’s infrastructure. It’s about understanding the reach and potential impact an attacker could have once they’ve gained initial access.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-277"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-275">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-276'
	>
	For example, in the famous <a href="https://en.wikipedia.org/wiki/2020_United_States_federal_government_data_breach" target="_blank" rel="noreferrer noopener">2020 SolarWinds cyber attack,</a> malicious actors exploited SolarWinds’ network monitoring software, which was used by many large organizations, including the U.S. federal government. Therefore, through horizontal movement, hackers were able to penetrate the government’s systems and many others. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-280"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-278">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-279'
	>
	The other tactic for assessing an attack&#8217;s potential impact is chaining vulnerabilities.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-282"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-281'
	>
	While a single security vulnerability may not be enough for an attacker to gain deeper unauthorized access or significant control, they can easily add up.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-285"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-283">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-284'
	>
	When we identify multiple vulnerabilities, we can try to chain them together to escalate their level of access or to breach deeper into the system.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-288"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-286">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-287'
	>
	In this part of the process, a penetration tester&#8217;s creativity is a real asset because combining the vulnerabilities in different ways can reveal all sorts of potential security threats. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-291"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-289">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-290'
	>
	However, it&#8217;s also easy to go overboard, and this is why the predefined scope is our northern star – preventing us from straying into areas that could raise legal and ethical concerns (e.g., testing a user database that is out of scope might violate GDPR).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-294"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-292">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-293'
	>
	Step 3: Report &amp; retest</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-297"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-295">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-296'
	>
	Though it appears as the last chapter, we begin writing the penetration testing report immediately after the scoping phase. The report’s initial section should cover the test&#8217;s defined scope, the objectives we aim to achieve, and the details of the test environments.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-299"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-298'
	>
	As we progress with penetration tests, we continuously update the report. This ensures that all actions, observations, and the rationale behind each decision are captured in real-time.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-302"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-300">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-301'
	>
	For every security vulnerability identified and exploited, we record the specific steps taken, the tools used, and the thought process behind these actions. We’ll also include any interesting findings that emerge during the testing.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-305"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-303">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-304'
	>
	This method of progressive documentation makes it easier to compile a comprehensive report. It ensures that we don’t miss any critical details and that the report effectively communicates the entirety of the penetration testing engagement.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-308"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-306">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-307'
	>
	Last step: Be proactive with security</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-311"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-309">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-310'
	>
	Our <a href="https://infinum.com/cyber-security-penetration-testing/" id="https://infinum.com/cyber-security-penetration-testing/">penetration testing process</a> includes a comprehensive assessment of your entire system and lays out the steps for remediation in detail. However, it&#8217;s important to remember that conducting penetration tests is a reactive approach. It identifies vulnerabilities that were already present in the system.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-314"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-312">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-313'
	>
	To improve the organization’s security practices and identify issues at an earlier stage, it’s important to be proactive. We always recommend adopting regular testing practices so you can identify and resolve any vulnerabilities before the suspiciously-looking guy in the basement can exploit them.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-317"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-315">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-316'
	>
	It’s also important to foster a DevSecOps culture. That way, you ensure that security is not an afterthought but a fundamental part of the development lifecycle. When development, operations, and security teams work together, security becomes a shared responsibility, and your overall posture benefits from it. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-320"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-318">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-319'
	>
	<em>To discover the full range of our <a href="https://infinum.com/cybersecurity/" target="_blank" rel="noreferrer noopener">cybersecurity services</a>, check out the dedicated page.</em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/penetration-testing-steps/">Scope, Test, Report – Penetration Testing Steps Explained</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>