DEV Community

Cover image for Amass API - REST API Solution for Domain Reconnaissance
rika
rika

Posted on

Amass API - REST API Solution for Domain Reconnaissance

For a long time, I searched for a solution like this and finally decided to create my own. This project is a Flask-based web application integrated with OWASP Amass, designed to automate domain reconnaissance for security professionals. This innovative solution significantly simplifies subdomain discovery during penetration testing, saving substantial time and effort compared to manual methods.

What is AMASS?

OWASP Amass is a powerful tool for network infrastructure reconnaissance. It collects data from over 55 external sources to identify subdomains, IP addresses, and other network information of target systems. Amass combines passive and active reconnaissance techniques to provide security professionals with extensive and accurate data. By leveraging DNS data collection, SSL certificate analysis, and other techniques, it offers a detailed view of the target system's network landscape.

This tool was created to solve a longstanding problem and aims to simplify the daily workflows of cybersecurity professionals.

Key Features:

  • Fully automated domain reconnaissance via Amass
  • Recursive search capability with configurable minimum recursion depth
  • Subdomain discovery using brute-force methods
  • API endpoint to retrieve results in JSON format

Installation Requirements:

Docker and Docker Compose must be installed on the system. The application can be run using a pre-built image from Docker Hub:

docker pull enrikenur/amass-api
Enter fullscreen mode Exit fullscreen mode

Installation Steps:

  1. Clone the repository:
git clone https://github.com/w95/amass-api
cd amass-api
Enter fullscreen mode Exit fullscreen mode
  1. Build and start the application using Docker Compose:
docker-compose up --build
Enter fullscreen mode Exit fullscreen mode
  1. The application will be accessible at http://localhost:5000.

API Usage:

To initiate domain reconnaissance, use the /api/amass/enum endpoint with the POST method. Request parameters include the target domain (domain), brute-force mode (brute), and the minimum number of findings for recursion (min_for_recursive).

Sample Request:

{
  "domain": "example.com",
  "brute": true,
  "min_for_recursive": 2
}
Enter fullscreen mode Exit fullscreen mode

Developers interested in contributing can fork the repository and propose changes. All contributions are welcomed.

Top comments (0)