如何扫描数百万IPv4地址以发现漏洞
Jordan Drysdale//
有些日子与众不同。有些日子,你可能会接到扫描一百万IP地址的任务。以下是我完成该任务的方法:
Digital Ocean。亚马逊对其入站和出站流量规则过于挑剔。我不想惹恼地球上第三或第四大公司。
从策略上讲,总是存在扫描时间表,某些元素必须在一天中的特定时间扫描,这取决于我们在日心轨道、农历年等中的位置……在DO盒子上,在规则文件中使用拒绝条目!稍后详述……
从数学上讲,使用Nessus参考文档中的顶级端口(链接在此:https://docs.tenable.com/nessus/6_11/Content/DiscoverySettings.htm),[…默认扫描策略指示Nessus扫描大约4,790个常用端口],那么每百万IP地址我们需要检查47亿个套接字。
现在,我们有所进展!让我们启动一些节点,比如五个每月40美元的实例。测试扫描平均每个/22(1024个IP,1022台主机)大约需要30分钟。这个IP块生成了大约一百台主机的响应,这在测试运行中似乎是标准的。
此外,我们朝着在一周内完成任务的目标前进。多少节点可以在多少时间内扫描多少IP?
最后——使用PCI季度扫描配置文件可以让你在法庭上避免麻烦,如果你被要求向法官解释为什么你破坏了客户的主要赚钱Web应用程序。自定义扫描配置文件可能会使这种解释变得困难。
让我们仔细研究一些数学细节。如果我们想扫描一百万IP地址,从哪里开始——考虑到我们已经定义了基线?
- 总共1000000个IP,每个/22或1024台主机的平均扫描长度为30分钟。
- ((1000000 / 1024) * 30) = 29297分钟或488小时扫描时间
- 如果我们有五个扫描器,每个实例需要97小时扫描。
然后,使用Nessus合并脚本将所有.nessus文件合并为一个“组合”扫描并上传。从案例研究的角度来看,比较一百万IP漏洞结果与审查一千IP地址的结果是相同的。