Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
September 11, 2023 08:26
June 17, 2020 13:44
November 25, 2020 20:22
June 17, 2020 13:44
September 11, 2023 08:26
September 11, 2023 08:26

Python 3 GitHub GitHub last commit GitHub Issues

Attack Surface Mapper Logo


AttackSurfaceMapper (ASM) is a reconnaissance tool that uses a mixture of open source intelligence and active techniques to expand the attack surface of your target. You feed in a mixture of one or more domains, subdomains and IP addresses and it uses numerous techniques to find more targets. It enumerates subdomains with bruteforcing and passive lookups, Other IPs of the same network block owner, IPs that have multiple domain names pointing to them and so on.

Once the target list is fully expanded it performs passive reconnaissance on them, taking screenshots of websites, generating visual maps, looking up credentials in public breaches, passive port scanning with Shodan/Censys and scraping employees from LinkedIn.




As this is a Python based tool, it should theoretically run on Linux, ChromeOS (Developer Mode), macOS and Windows.

  1. Download AttackSurfaceMapper
git clone
cd AttackSurfaceMapper
  1. Install Python3 dependencies
python3 -m pip install --no-cache-dir -r requirements.txt
  1. Add optional API keys to enhance data gathering & analysis

Register and obtain an API key from:

Edit and enter the keys in keylist file

nano keylist.asm


python3 -t -ln -w resources/top100_sublist.txt -o demo_run

Optional Parameters

Additional optional parameters can also be set to choose to include active reconnaissance modules in addition to the default passive modules.

|<------ AttackSurfaceMapper - Help Page ------>|

positional arguments:
  targets               Sets the path of the target IPs file.

optional arguments:
  -h, --help            show this help message and exit
  -f FORMAT, --format FORMAT
                        Choose between CSV and TXT output file formats.
  -o OUTPUT, --output OUTPUT
                        Sets the path of the output file.
  -sc, --screen-capture
                        Capture a screen shot of any associated Web Applications.
  -sth, --stealth       Passive mode allows reconnaissance using OSINT techniques only.
  -t TARGET, --target TARGET
                        Set a single target IP.
  -V, --version         Displays the current version.
  -w WORDLIST, --wordlist WORDLIST
                        Specify a list of subdomains.
  -sw SUBWORDLIST, --subwordlist SUBWORDLIST
                        Specify a list of child subdomains.
  -e, --expand          Expand the target list recursively.
  -d, --debug           Enables debugging information.
  -v, --verbose         Verbose output in the terminal window.

Authors: Andreas Georgiou (@superhedgy)
         Jacob Wilkin (@greenwolf)