一个 Linux Bash 脚本,用于在渗透测试的情报收集阶段发现目标组织拥有的网络块或范围(以 CIDR 表示法)。这些信息由五个区域互联网注册管理机构(RIR)维护:
ARIN (北美)
RIPE (欧洲/亚洲/中东)
APNIC (亚太)
LACNIC (拉丁美洲)
AfriNIC (非洲)
除了网络块和 IP 地址之外,自治系统编号(ASN)也很重要。ASN 作为边界网关协议(BGP)的一部分,用于唯一标识互联网上的每个网络。目标组织可能因其网络规模或由于对等服务提供商的冗余服务路径而拥有自己的 ASN。这些 ASN 将揭示组织拥有的其他网络块。
ipcalc(用于 RIPE、APNIC、LACNIC、AfriNIC 查询)
在深入使用之前,先说明一下 LACNIC。LACNIC 只允许查询网络范围、ASN、组织句柄(Org Handle)或联系人句柄(PoC Handle)。这对我们根据组织名称定位这些值并无帮助。不过,他们确实在公开的 FTP 服务器上发布所有已分配范围的列表,并附带限速阈值。因此,脚本附带了一个数据文件,用于在本地执行 LACNIC 查询。脚本包含一个更新选项 -r,可用于按您选择的间隔更新此数据。大致运行时间接近 28 小时。
如果未指定选项,脚本将查询 ARIN 和一个 BGP 路由服务器池。路由服务器在运行时随机选择。-h 选项列出帮助信息:

这些选项可以任意组合使用、全部使用或一个都不用。遗憾的是,其他 RIR 都没有注明范围的精确 CIDR 表示法,因此使用 ipcalc 来执行此功能。如果您的系统未安装该工具,脚本将为您安装。
在提示符下,输入组织名称、电子邮件域名,以及电子邮件是否包含国家代码。如果回答 Y(是),则会提示国家代码是位于域名之前还是附加在 TLD 之后。输出文件将创建在 /tmp/ 下的一个目录中。如果发现该目录已存在,系统将提示是否覆盖。如果回答 N(否),则会在目录名称后附加一个时间戳。

脚本会查询每个 RIR 以及一个 BGP 路由服务器,并在过程中提示是否找到记录。完成后,将生成三个文件:一个基于组织句柄的 CSV 文件,一个基于联系人句柄的 CSV 文件,以及一个包含所有已定位范围(CIDR 表示法)的换行分隔文件。

随时取消脚本将删除所有临时工作文件以及为结果输出文件创建的目录。

需要注意的是,由于某些组织名称相似,您可能会得到与目标无关的结果。CSV 文件将提供相关的句柄和 URL,以便在必要时进行进一步验证。目标组织的员工也有可能使用其公司电子邮件地址注册自己的域名。这些也会在结果中被发现。
docker build -t hardcidr .
构建 hardcidr 镜像
docker run -v $(pwd):/tmp -it hardcidr
运行容器。输出将保存到当前目录
如需了解更多信息,请查看 TrustedSec 网站上的博客文章: Classy Inter-Domain Routing Enumeration