Skip to content

ASNmap ASN Mapping Tool Cheat Sheet

Overview

ASNmap is a fast and versatile tool developed by Project Discovery for mapping Autonomous System Numbers (ASNs) to their corresponding IP ranges and organization information. It provides a simple and efficient way to retrieve ASN data, which is essential for network reconnaissance and attack surface mapping.

What sets ASNmap apart from other ASN lookup tools is its speed, simplicity, and versatility. It supports multiple input formats, including ASN numbers, IP addresses, domain names, and organization names, making it a flexible tool for various reconnaissance scenarios. ASNmap can quickly retrieve IP ranges associated with specific organizations or ASNs, helping security professionals understand the network footprint of their targets.

ASNmap is commonly used in the early stages of security assessments and bug bounty hunting to identify the IP space belonging to target organizations. This information is crucial for subsequent scanning and enumeration activities. The tool can be easily integrated into security workflows and combined with other reconnaissance tools to automate the process of mapping attack surfaces.

Installation

Using Go

bash
# Install using Go (requires Go 1.20 or later)
go install -v github.com/projectdiscovery/asnmap/cmd/asnmap@latest

# Verify installation
asnmap -version

Using Docker

bash
# Pull the latest Docker image
docker pull projectdiscovery/asnmap:latest

# Run ASNmap using Docker
docker run -it projectdiscovery/asnmap:latest -h

Using Homebrew (macOS)

bash
# Install using Homebrew
brew install asnmap

# Verify installation
asnmap -version

Using PDTM (Project Discovery Tools Manager)

bash
# Install PDTM first if not already installed
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest

# Install ASNmap using PDTM
pdtm -i asnmap

# Verify installation
asnmap -version

On Kali Linux

bash
# Install using apt
sudo apt install asnmap

# Verify installation
asnmap -version

Basic Usage

Querying ASN Information

bash
# Query by ASN number
asnmap -asn AS15169

# Query by IP address
asnmap -ip 8.8.8.8

# Query by domain name
asnmap -d google.com

# Query by organization name
asnmap -org "Google LLC"

Multiple Queries

bash
# Query multiple ASNs
asnmap -asn AS15169,AS13414

# Query multiple IPs
asnmap -ip 8.8.8.8,1.1.1.1

# Query multiple domains
asnmap -d google.com,cloudflare.com

# Query multiple organizations
asnmap -org "Google LLC,Cloudflare, Inc."

Input from Files

bash
# Query from a file containing ASNs
asnmap -asn-file asns.txt

# Query from a file containing IPs
asnmap -ip-file ips.txt

# Query from a file containing domains
asnmap -d-file domains.txt

# Query from a file containing organizations
asnmap -org-file orgs.txt

Input from STDIN

bash
# Query from STDIN
echo "AS15169" | asnmap

# Query from STDIN with specific input type
echo "8.8.8.8" | asnmap -i ip

# Query from STDIN with multiple input types
cat input.txt | asnmap -i ip,asn,domain

Output Options

bash
# Save results to a file
asnmap -asn AS15169 -o results.txt

# Output in JSON format
asnmap -asn AS15169 -json -o results.json

# Output in CSV format
asnmap -asn AS15169 -csv -o results.csv

# Silent mode (only results)
asnmap -asn AS15169 -silent

Advanced Usage

Output Filtering

bash
# Output only IP ranges
asnmap -asn AS15169 -r

# Output only ASN information
asnmap -asn AS15169 -a

# Output only organization information
asnmap -asn AS15169 -org-info

CIDR Expansion

bash
# Expand CIDR ranges to individual IPs
asnmap -asn AS15169 -cidr-expand

# Limit CIDR expansion
asnmap -asn AS15169 -cidr-expand -limit 100

Filtering by Country

bash
# Filter results by country
asnmap -asn AS15169 -c US

# Filter results by multiple countries
asnmap -asn AS15169 -c US,CA,UK

Filtering by Registry

bash
# Filter results by registry
asnmap -asn AS15169 -registry ARIN

# Filter results by multiple registries
asnmap -asn AS15169 -registry ARIN,RIPE

Integration with Other Tools

Pipeline with Naabu

bash
# Map ASN to IP ranges and scan for open ports
asnmap -asn AS15169 -silent | naabu -silent

# Map ASN to IP ranges, filter, and scan for open ports
asnmap -asn AS15169 -silent | grep -v ":" | naabu -silent

Pipeline with HTTPX

bash
# Map ASN to IP ranges and probe for HTTP services
asnmap -asn AS15169 -silent | httpx -silent

# Map ASN to IP ranges, expand CIDRs, and probe for HTTP services
asnmap -asn AS15169 -cidr-expand -silent | httpx -silent

Pipeline with Nuclei

bash
# Map ASN to IP ranges, probe for HTTP services, and scan for vulnerabilities
asnmap -asn AS15169 -silent | httpx -silent | nuclei -t cves/

# Map organization to IP ranges and scan for vulnerabilities
asnmap -org "Example Inc" -silent | httpx -silent | nuclei -t exposures/

Pipeline with MapCIDR

bash
# Map ASN to IP ranges and split into smaller subnets
asnmap -asn AS15169 -silent | mapcidr -silent -split 256

# Map ASN to IP ranges, filter, and split into smaller subnets
asnmap -asn AS15169 -silent | grep -v ":" | mapcidr -silent -split 256

Output Customization

Custom Output Format

bash
# Output only IP ranges
asnmap -asn AS15169 -silent -r

# Output ASN and IP ranges
asnmap -asn AS15169 -silent | awk '{print $1,$2}'

# Count total IP ranges
asnmap -asn AS15169 -silent | wc -l

# Sort output by IP range
asnmap -asn AS15169 -silent | sort

Filtering Output

bash
# Filter by IP version (IPv4)
asnmap -asn AS15169 -silent | grep -v ":"

# Filter by IP version (IPv6)
asnmap -asn AS15169 -silent | grep ":"

# Filter by CIDR size
asnmap -asn AS15169 -silent | grep "/24"

# Filter by specific pattern
asnmap -asn AS15169 -silent | grep "192.168"

Advanced Filtering

Filtering by IP Range Size

bash
# Filter by CIDR prefix length
asnmap -asn AS15169 -silent | grep "/24"

# Filter by CIDR prefix length range
asnmap -asn AS15169 -silent | grep -E "/2[0-4]"

# Count IPs by CIDR prefix length
asnmap -asn AS15169 -silent | grep -E "/[0-9]+" | sort | uniq -c

Filtering by IP Version

bash
# Filter IPv4 addresses
asnmap -asn AS15169 -silent | grep -v ":"

# Filter IPv6 addresses
asnmap -asn AS15169 -silent | grep ":"

# Count IPv4 vs IPv6 addresses
asnmap -asn AS15169 -silent | grep -v ":" | wc -l  # IPv4 count
asnmap -asn AS15169 -silent | grep ":" | wc -l     # IPv6 count

Troubleshooting

Common Issues

  1. No Results

    bash
    # Check if ASN exists
    asnmap -asn AS15169 -v
    
    # Try a different input type
    asnmap -ip 8.8.8.8
    
    # Try a different data source
    asnmap -asn AS15169 -source cymru
  2. Connection Issues

    bash
    # Check internet connection
    ping 8.8.8.8
    
    # Increase timeout
    asnmap -asn AS15169 -timeout 30
  3. Rate Limiting

    bash
    # Reduce concurrency
    asnmap -asn AS15169 -c 5
    
    # Add delay between requests
    asnmap -asn AS15169 -delay 2
  4. Memory Issues

    bash
    # Process ASNs one by one
    for asn in $(cat asns.txt); do asnmap -asn $asn -o "$asn-ranges.txt"; done

Debugging

bash
# Enable verbose mode
asnmap -asn AS15169 -v

# Show debug information
asnmap -asn AS15169 -debug

# Check data sources
asnmap -list-sources

Configuration

Configuration File

ASNmap uses a configuration file located at $HOME/.config/asnmap/config.yaml. You can customize various settings in this file:

yaml
# Example configuration file
concurrency: 10
timeout: 30
sources:
  - asnmap
  - cymru
  - ripe

Environment Variables

bash
# Set ASNmap configuration via environment variables
export ASNMAP_CONCURRENCY=10
export ASNMAP_TIMEOUT=30
export ASNMAP_SOURCES=asnmap,cymru,ripe

Reference

Command Line Options

FlagDescription
-asnASN number(s) to query
-asn-fileFile containing ASN numbers
-ipIP address(es) to query
-ip-fileFile containing IP addresses
-d, -domainDomain name(s) to query
-d-fileFile containing domain names
-orgOrganization name(s) to query
-org-fileFile containing organization names
-i, -inputInput type(s) for STDIN (asn, ip, domain, org)
-o, -outputFile to write output to
-jsonWrite output in JSON format
-csvWrite output in CSV format
-silentShow only results in output
-v, -verboseShow verbose output
-debugShow debug information
-r, -range-onlyOutput only IP ranges
-a, -asn-onlyOutput only ASN information
-org-infoOutput only organization information
-cidr-expandExpand CIDR ranges to individual IPs
-limitMaximum number of IPs to expand
-c, -countryFilter results by country code(s)
-registryFilter results by registry(ies)
-sourceData source(s) to use
-list-sourcesList available data sources
-timeoutTimeout for requests in seconds
-delayDelay between requests in seconds
-versionShow ASNmap version

Input Types

TypeDescriptionExample
asnAutonomous System NumberAS15169
ipIP address8.8.8.8
domainDomain namegoogle.com
orgOrganization nameGoogle LLC

Data Sources

SourceDescription
asnmapASNmap's own database
cymruTeam Cymru's ASN lookup service
ripeRIPE NCC's database

Output Fields

FieldDescription
asnAutonomous System Number
rangeIP range in CIDR notation
orgOrganization name
countryCountry code
registryRegional Internet Registry
descriptionASN description

Resources


This cheat sheet provides a comprehensive reference for using ASNmap, from basic queries to advanced filtering and integration with other tools. For the most up-to-date information, always refer to the official documentation.