AttackSurfaceMapper (ASM) 是一款侦察工具,它结合了开源情报和主动技术来扩展目标的攻击面。您输入一个或多个域名、子域名和IP地址的组合,它会使用多种技术来发现更多目标。它通过暴力枚举和被动查找来枚举子域名、发现同一网络块拥有者的其他IP、指向多个域名的IP等。
一旦目标列表完全扩展,它将对这些目标进行被动侦察:截取网站截图、生成可视化地图、在公开泄露事件中查找凭据、使用Shodan/Censys进行被动端口扫描,以及从LinkedIn抓取员工信息。
由于这是一个基于Python的工具,理论上它可以在Linux、ChromeOS(开发者模式)、macOS和Windows上运行。
git clone https://github.com/superhedgy/AttackSurfaceMapper
cd AttackSurfaceMapper
python3 -m pip install --no-cache-dir -r requirements.txt
注册并从以下服务获取API密钥:
编辑并将密钥填入密钥列表文件
nano keylist.asm
python3 asm.py -t your_site.com -ln -w resources/top100_sublist.txt -o demo_run
除默认的被动模块外,还可以设置额外的可选参数以选择包含主动侦察模块。
|<------ AttackSurfaceMapper - Help Page ------>|
positional arguments:
targets 设置目标IP文件的路径。
optional arguments:
-h, --help 显示此帮助信息并退出。
-f FORMAT, --format FORMAT
选择输出文件格式:CSV 或 TXT。
-o OUTPUT, --output OUTPUT
设置输出文件的路径。
-sc, --screen-capture
截取任何关联 Web 应用的屏幕截图。
-sth, --stealth 被动模式:仅使用 OSINT 技术进行侦察。
-t TARGET, --target TARGET
设置单个目标 IP。
-V, --version 显示当前版本。
-w WORDLIST, --wordlist WORDLIST
指定子域名列表文件。
-sw SUBWORDLIST, --subwordlist SUBWORDLIST
指定子域名的子域名列表文件。
-e, --expand 递归扩展目标列表。
-d, --debug 启用调试信息。
-v, --verbose 在终端窗口中显示详细输出。
作者: Andreas Georgiou (@superhedgy)
Jacob Wilkin (@greenwolf)