关于ASN,也许很多人和我一样在大学里面学过,但是可能对此不是很深入了解,虽然只是一个很小的点,这里我还是想把它展开下并浅述下其应用,希望能够帮助大家理解ASN。
Autonomous System Number(ASN),中文名称:自治系统号
定义:
An autonomous system number is a unique identifier that is globally available and allows its autonomous system to exchange routing information with other systems.
自治系统编号是一个唯一的全局可用的标识符,并允许其自治系统与其他系统交换路由信息
从定义我们可以了解到,ASN是一个编号,用于标记一个自治系统(区分不同的自治系统一个标识符)
ASN编号的格式:
RFC 1930:
编号由16bit(2字节)组成,因此限制范围为1-65535
在定义RFC1930时分派了约5100个AS,全球活跃的AS只有不到600个。
同时为了供私人使用,保留了部分AS号:
64512至65535(1024个)
ASN怎么来的呢?
ASN是由区域互联网注册机构来管理和分配的
A regional Internet registry (RIR) is an organization that manages the allocation and registration of Internet number resources within a region of the world. Internet number resources include IP addresses and autonomous system (AS)) numbers.
区域互联网注册结构是一个管理分配和注册在世界上某个区域的互联网编号资源的组织,其中互联网编号资源包括IP地址和自治系统(AS)号码。
全球共有5个这样的机构:
原则上任何人都可以向这些组织申请一个ASN的编号的,但是还是需要蛮多条件的。
比如亚太地区的APNIC申请清单:
了解ASN是什么,但是ASN的发挥的具体作用是怎么样的呢?
让我们带着疑问,继续向下看。
自治系统: autonomous system(AS)
Internet 是由不同网络组成的网络,自治系统是组成 Internet 的大型网络。更具体地说,自治系统(AS)是具有统一路由策略的巨型网络或网络群组。连接到 Internet 的每台计算机或设备都连接到一个 AS。
可以认为 AS 类似于一个城镇的邮局。邮件从一个邮局到另一个邮局,直到到达正确的城镇为止,然后该城镇的邮局将在该城镇内传递邮件。与之类似,数据包在整个 Internet 范围内通过从 AS 跳到 AS,直到它们到达包含其目的地 Internet 协议(IP)地址的 AS。该 AS 中的路由器将数据包发送到 IP 地址 。
每个 AS 都控制一组特定的 IP 地址,就像每个镇的邮局负责将邮件传递到该镇内的所有地址一样。给定 AS 可以控制的 IP 地址范围称为其“IP 地址空间”。
大多数 AS 连接到其他几个 AS。如果一个 AS 仅连接到另一个 AS 并共享相同的路由策略,则可以将其视为第一个 AS 的子网。
通常,每个 AS 由单个大型组织(例如 Internet 服务提供商(ISP)、大型企业技术公司、大学或政府机构)运营。
其实这里就慢慢体现了ASN为何会在信息收集中发挥作用,有些大型的网络公司可能就是具有自己的AS,用于内部使用。
那么自治系统是通过什么来连接的呢?
看到BGP,大家肯定不陌生,大学里面学过,然后经常翻墙会看到一些广告,BGP高速线路之类的。
BGP(Border Gateway Protocol, 边界网关协议)
BGP就是不针对具体的路由细节,所以能够处理非常巨量的路由信息,所以主要用于核心网使用。
如果没有 BGP,IP 数据包将在 Internet 上从 AS 到 AS 随机反弹。
其实BGP的原理,其实就是分而治之的原理,小块(IP)->大块(AS),然后降低了搜索和存储的量级。
至于什么是BGP线路, 一般来说是指电信、联通、移动、铁通、教育网五线
这样的线路会有什么好处呢,就是说比如我是处于电信这个AS里面一台机器,我访问到联通AS的服务器的速度肯定不如直接访问电信AS里面的服务器速度快,因为需要跨AS访问是会有数据传输和路由造成的时间损耗的。
BGP线路则可以使用BGP协议, 提前将相应的用户切换到相应的线路,从而提高访问的速度。
前面我们大致知道了,ASN AS BGP的基础知识,下面我结合实例,可以初探他们的工作方式,来进行信息收集。
这里我以我自己两台的腾讯服务器举个例子: 111.2x0.1x7.xx...通过SPYSE可以查询到相关信息。
可以看到ASN: 45090,然后属于深圳腾讯计算机系统有限公司所有
这些都没啥问题,但是可以看到这里存在一个差异,就是AS Subnet是不同的。
这就说明了 IP与ASN直接是存在联系的,但是并不是一一映射的。
IP与ASN并不是多对一的关系,而是多对多的,也就是一个IP可能属于多个ASN来管辖。
关于这两者的数据查询,我们可以选择去相关地区的注册机构官网去查询,比如亚太地区的官方公共搜索库
http://wq.apnic.net/static/search.html
这里我们可以指定一个c段,比如111.230.197.0/24
可以看到这里就查询出了111.230.197.0/24->111.230.0.0/15->AS45090,这个与上面是相同的。
那么如果我们想查询有哪些IP段归属于AS45090,该怎么查询呢?
同样在相同的点直接输入,这次输入的是ASN: AS45090
然后我们就可以得到了一些相关信息,然后下面有个NetOX
,我们点进去获取更多的信息。
可以看到其囊括的范围,IPV4的prefixes,但是没办法直接得到具体IPv4的前缀,应该是有其他搜索语法,不过我没没找到。
这里提供两种我自己觉得比较直观的查找方式:
1.https://bgp.he.net/AS45090#_prefixes
这个网站更新频率很高,所以数据很新,也比较全。
2.https://spyse.com/(比较适合用来快速分析网站信息)
直接搜索AS编号就可以看到有了很多细分和其中的网站。
从上面的分析我们也可以知道,如果需要进行信息收集的的目标的ASN是归属于某些云厂商的话,说明目标是没有自己独立的ASN编号的,然后云厂商分配IP的话,如果是批量的话,应用到同一网关的话,那么有可能是直接分配一个C段或者B段来使用的,所以有时候我们可以适当将搜索范围缩小为C段或者B段,而不是ASN所有的前缀地址块。
用ASN来进行大范围探测目标相关的网络资产资产效果最好的情况是,目标拥有自己的ASN编号,然后有自己管理的外网IP地址,这个时候数据就不会很宽泛,会围绕着目标。
但是,就我个人而言,我是那种挖SRC比较少的人的,说实话运用到ASN来进行信息收集的情况很少,因为现在一些中小型的公司,基本都喜欢把服务器放在第三方云来管理,这样的ASN编号作用不是很大,还不如直接聚合子域名IP做C段查询的效果(聚合子域名的方法误报率一样非常高,因为一般都会用到CDN),所以这种基于ASN来定位资产更多是一种信息收集技巧的拓展学习吧,真正的应用还是需要一些特定场景来结合,比如某些单位就很喜欢自建机房,自己管理IP资源。
随便找了个某组织的其中一个站点,支持IP访问,大概率是真实IP。
然后根据该IP,查询相应的ASN
可以看到ASN为4134, 比腾讯云管理的IPV4还要多,第三方只统计出了8w多个domain,其实也不是很多,可以基于特征来fuzz出相关的站点。
因为IP地址声明一般是一块块慢慢增加的,所以,这里统计出的61.164.192.0/20, 这个说明很可能是属于这个范围块。
这里我们可以直接在spyse里面查看domains数据和相关的端口情况
除了第三方工具
为了得到最新的实时数据,我们可以自己进行探测
cidr 61.164.192.0/20 | httpx --title --status-code --threads 200
有时候确实是会发现一些相关东西,而且还蛮有趣的。
本文是我在写自己的资产侦测系统的时候了解到的点,然后感觉蛮有意思,所以记录了下来,并不是什么新鲜的东西,只不过过于简单,很少有人去着重说明而已,不过我觉得要是想深入了解的话,还是有很多研究的点的,只不过我缺乏这些网络配置的经验,接触的太少,只能坐井观天。换而言之,就是要是能结合甲方的建设思路来放大这个作用,那效果肯定不错的,欢迎师傅们拍砖指点。
https://blog.stackpath.com/autonomous-system-number/
https://www.cloudflare.com/zh-cn/learning/network-layer/what-is-an-autonomous-system/
https://www.zhihu.com/question/21024981
https://zhuanlan.zhihu.com/p/135372161