ASNmap 使用ASN快速映射组织网络资产范围

发布时间 2023-06-03 09:42:40作者: 让-雅克-卢梭

asnmap

快速利用ASN信息映射组织网络范围的Go命令行工具和库。

功能 • 安装 • 使用 • 运行asnmap • 加入Discord

功能

  • ASN到CIDR查询
  • ORG到CIDR查询
  • DNS到CIDR查询
  • IP到CIDR查询
  • 支持ASN/DNS/IP/ORG输入
  • 支持JSON/CSV/TEXT输出
  • 支持标准输入/输出

安装

为了成功安装asnmap,需要Go 1.18。只需运行以下命令或从发布页面下载预编译的二进制文件。

 1 go install github.com/projectdiscovery/asnmap/cmd/asnmap@latest 

使用

asnmap -h

这将显示工具的帮助信息。下面是所有支持的标志。

使用方法:

./asnmap [flags]

标志:

  • INPUT: -a, -asn string[] 要查询的目标ASN,示例:-a AS5650 -i, -ip string[] 要查询的目标IP,示例:-i 100.19.12.21, -i 2a10:ad40:: -d, -domain string[] 要查询的目标域名,示例:-d google.com, -d facebook.com -org string[] 要查询的目标组织,示例:-org GOOGLE -f, -file string[] 从文件中查询目标

配置: -config string asnmap配置文件的路径 -r, -resolvers string[] 要使用的解析器列表

更新: -up, -update 更新asnmap到最新版本 -duc, -disable-update-check 禁用asnmap的自动更新检查

输出: -o, -output string 输出结果的文件 -j, -json 以JSON格式显示输出结果 -c, -csv 以CSV格式显示输出结果 -v6 在命令行输出中显示IPv6 CIDR范围 -v, -verbose 显示详细输出 -silent 显示静默输出 -version 显示项目的版本

运行asnmap

asnmap的输入可以是ASN、IP、DNS和ORG名称,用于查询ASN/CIDR信息。

输入 ASN DNS IP ORG 示例 AS14421 example.com 93.184.216.34 GOOGLE

输入可以通过特定选项、接受所有支持的格式的标准输入(STDIN),以及单个、多个(逗号分隔)和文件输入进行提供。

echo GOOGLE | ./asnmap -silent

asnmap的示例输入:

asnmap -a AS45596 -silent
asnmap -i 100.19.12.21 -silent
asnmap -d hackerone.com -silent
asnmap -org GOOGLE -silent

默认运行

asnmap默认返回给定输入的CIDR范围。

echo GOOGLE | ./asnmap

输出:

   ___   _____  __              
  / _ | / __/ |/ /_ _  ___ ____ 
 / __ |_\ \/    /  ' \/ _  / _ \
/_/ |_/___/_/|_/_/_/_/\_,_/ .__/
                         /_/    v0.0.1
        projectdiscovery.io

使用时请小心,您对自己的行为负责
开发人员不承担任何责任,不对任何误用或损害负责。

8.8.4.0/24
8.8.8.0/24
8.35.200.0/21
34.3.3.0/24
34.4.4.0/24
34.96.0.0/20
34.96.32.0/19
34.96.64.0/18
34.98.64.0/18
34.98.136.0/21
34.98.144.0/21

JSON输出

asnmap默认显示CIDR范围,并且所有信息都以JSON格式提供。为了方便自动化和后续处理,使用-json选项进行输出是最方便的。

echo hackerone.com | ./asnmap -json -silent | jq

输出:

{
  "timestamp": "2022-09-19 12:14:33.267339314 +0530 IST",
  "input": "hackerone.com",
  "as_number": "AS13335",
  "as_name": "CLOUDFLARENET",
  "as_country": "US",
  "as_range": [
    "104.16.0.0/14",
    "104.20.0.0/16",
    "104.21.0.0/17"
  ]
}
{
  "timestamp": "2022-09-19 12:14:33.457401266 +0530 IST",
  "input": "hackerone.com",
  "as_number": "AS13335",
  "as_name": "CLOUDFLARENET",
  "as_country": "US",
  "as_range": [
    "2606:4700:8390::/44"
  ]
}

CSV输出

asnmap还支持CSV格式的输出,其中包含与JSON输出相同的所有信息。

echo hackerone.com | ./asnmap -csv -silent

输出:

timestamp|input|as_number|as_name|as_country|as_range
2022-09-19 12:15:04.906664007 +0530 IST|hackerone.com|AS13335|CLOUDFLARENET|US|104.16.0.0/14,104.20.0.0/16,104.21.0.0/17
2022-09-19 12:15:05.201328136 +0530 IST|hackerone.com|AS13335|CLOUDFLARENET|US|2606:4700:9760::/44

与其他PD项目一起使用

asnmap的输出可以直接通过管道传递给工作流程中接受stdin作为输入的其他项目,例如:

bash
 
echo AS54115 | asnmap | tlsx
echo AS54115 | asnmap | dnsx -ptr
echo AS54115 | asnmap | naabu -p 443
echo AS54115 | asnmap | naabu -p 443 | httpx
echo AS54115 | asnmap | naabu -p 443 | httpx | nuclei -id tech-detect

作为库使用asnmap

可以在Go代码中使用asnmap的示例提供在examples文件夹中。

form