
asnmap 使用ASN快速映射组织网络资产范围
asnmap简介
使用 ASN 信息快速映射组织网络范围的 Go CLI 和库
ASN介绍
最初自治系统要求由一个单一实体管辖,通常是一个互联网服务提供商或一个拥有到多个网络的独立连接的大型组织,其遵循一个单一且明确的路由策略和边界网关协议(BGP)的初始定义(现已废止)。由于多个自治系统可使用各自的自治系统编号与将它们连接到互联网的AS之间运行BGP协议,因此得到较多应用的是RFC 1930 中较新的定义。尽管AS支持了这多个自治系统,但对互联网来说只能看到该AS的路由策略。所以AS必须具有一个公开且正式登记的自治系统编号(ASN)。
用于BGP路由中的每个自治系统都被分配一个唯一的自治系统编号(ASN)。对BGP来说,因为ASN是区别整个相互连接的网络中的各个网络的唯一标识,所以这个自治系统编号非常重要。互联网地址分派机构将64512到65535的ASN编号保留给(私有)专用网络使用。
asnmap特色
- ASN 到 CIDR查找
- ORG 到 CIDR查找
- DNS 到 CIDR查找
- IP 到 CIDR查找
- ASN/DNS/IP/ORG输入
- JSON/CSV/文本输出
- 标准输入/输出支持
安装
asnmap 需要Go 1.18才能安装成功。要安装,只需运行以下命令或从发布页面下载预编译的二进制文件。
go install github.com/projectdiscovery/asnmap/cmd/asnmap@latest
用法
asnmap -h
这将显示该工具的帮助。这是它支持的所有标志。
用法:
./asnmap [flags]
Flags:
输入:
-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[] 要使用的解析器列表
输出:
-o, -output string 写入输出的文件
-j, -json 显示json格式输出
-c, -csv 显示CSV格式输出
-v6 在命令行输出中显示ipv6 cidr范围
-v, -verbose 显示详细输出
-silent 安静输出
-version 显示项目的版本
运行asnmap
asnmap 的输入
asnmap支持多种输入,包括ASN、IP、DNS和ORG名称来查询 ASN/CIDR 信息。
输入 | ASN | 域名系统 | ip | 组织机构 |
---|---|---|---|---|
例子 | AS14421 | example.com | 93.184.216.34 |
可以使用特定选项或接受所有支持格式的 STDIN 来提供输入。所有选项都支持单个、多个(逗号分隔)和文件输入。
echo GOOGLE | ./asnmap -silent
asnmap 的示例输入:
asnmap -a AS45596 -silent
asnmap -i 100.19.12.21 -silent
asnmap -d hackerone.com -silent
asnmap -o GOOGLE -silent
默认运行
asnmap默认返回给定输入的 CIDR 范围。
echo GOOGLE | ./asnmap
___ _____ __
/ _ | / __/ |/ /_ _ ___ ____
/ __ |_\ \/ / ' \/ _ / _ \
/_/ |_/___/_/|_/_/_/_/\_,_/ .__/
/_/ v0.0.1
projectdiscovery.io
Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
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 的输出可以直接通过管道传输到接受标准输入作为输入的工作流中的其他项目,例如:
- 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 作为库
examples文件夹中提供了从 Go 代码使用 asnmap 的示例。
项目地址:
https://lmpan.lmboke.com/asnmap-main.zip