Methodology

Recon, enumeration, attack surface discovery...whatever you want to call it is not really a single step or phase. We continue to enumerate throughout every step of testing an application. Even during exploitation, especially when our exploits fail, we continue to enumerate and discover more about our target application. So with that, one could argue that this is the most critical skill to develop.

At the start of our engagement, we need to orient ourselves and so that we understand the target enough to uncover the full attack surface (or as much of it as possible).

Things we want to find out

Part 1: Apex domains, subdomains, applications and technologies

Most modern web applications are a combination of technologies and if you're working on a wide scope BugBounty programme or a pentest for an organisation with many applications then you'll need to start by discovering the apex domains, subdomains as there may by many applications in-scope.

What domains & subdomains are in scope?

  • Root / apex domains

  • Associated business units/brands

  • Development/staging environments

  • Legacy systems

  • Cloud resources (AWS, Azure, GCP instances)

  • Internal systems accessible externally

What technologies exist

  • Web servers and versions

  • Programming languages/frameworks

  • CMS platforms

  • Cloud services

  • Authentication systems

  • Third-party integrations

  • APIs and microservices

  • Database systems

  • Content delivery networks

  • Security controls (WAF, rate limiting)

Part 2: Application attack surface

After we've identified targets, we need to understand the attack surface of individual targets. This isn't a single step, it can be iterative and exploiting a target can lead to the discovery of more endpoints, technologies or applications to attack (e.g. when we discover SSRF and gain access to internal systems).

What endpoints exist

  • API endpoints

  • Admin interfaces

  • Legacy/deprecated endpoints

  • Mobile app endpoints

  • Authentication endpoints

  • File upload/download functionality

  • Payment processing endpoints

  • User profile/management areas

  • Integration endpoints

  • Webhook endpoints

What functionality exists

  • User roles and permissions

  • Authentication mechanisms

  • Session management

  • Data processing flows

  • File handling

  • Input/output points

  • Business logic flows

  • Error handling

  • Integration points

  • Background processes

Checklist

Part 1: Initial Discovery

Domain Reconnaissance

Technology Stack Identification

Infrastructure Mapping

Part 2: Application Analysis

Endpoint Discovery

Functionality Mapping

Content Analysis

Security Control Analysis

Integration Points

Documentation

Continuous Discovery

Other things we may consider:

Last updated