目录导航
NetblockTool诞生原因
我经常在进攻性和防御性角色中遇到的一个问题就是是确定公司拥有和使用的IP地址列表。
传统上,收集公司拥有的IP地址列表是一个漫长且非常手工的过程。需要使用各种工具,例如Google,ARIN,WHOIS,IPinfo,Censys和Shodan,等等.
值得庆幸的是,有一些自动化工具可以使此过程变得更加容易,例如Recon-ng,但它并不完美,尽管它做得很好,但是轻松地为公司收集完整的网络列表并不是他的强项。这就是NetblockTool诞生的原因.
NetblockTool简介
NetblockTool是作为独立的Python脚本编写的,旨在填补这一工具空白。
对于蓝队用户,只需提供您的公司名称,然后接收唯一的网络列表,并按返回的网络区块属于您公司的可能性排序。
对于红队用户,请使用NetblockTool收集IP范围,联系点,甚至是属于您目标子公司的Netblock。
NetblockTool工作原理
NetblockTool使用多个数据源来收集公司可能拥有的网络ip,包括Google dorking,ARIN数据库,ARIN API网站和IPinfo。由于在抓取公共网站,因此在使用NetblockTool时,任何网站都不需要API密钥。
首先,用户提供目标公司。然后,NetblockTool会使用Google dorking抓取Google信息,以检索IPinfo知道的网络。

接下来,通过发送普通用户通过访问其网站并手动搜索公司将发送的流量相同的流量来查询ARIN数据库。然后将结果抓取为ARIN对象(例如网络和公司联系人),然后访问并进一步抓取对象。这种方法的优势在于,与使用API直接查询数据库相比,提供的结果更多。

清除所有来源后,将对每个发现的网络块进行去重,并为其分配属于公司的可信度分数。
分数主要基于网络块的名称,它是ARIN对象的类型(ASN,网络或称为客户的租用范围)以及链接到网络块的地址。

然后,从此处开始执行基于用户参数的其他操作,例如检索每个IP的地理位置数据。
最后,输出地址总数,并将结果写入CSV。Google的前15行如下所示。

子公司抓取
如果公司有子公司并且向其注册了网络怎么办?NetblockTool涵盖了这个。
它能够自动查询证券交易委员会的公共数据库,以检索可能的子公司的列表,然后枚举子公司的网络列表。

NetblockTool安装方法
git clone https://github.com/NetSPI/NetblockTool.git
cd NetblockTool && pip3 install -r requirements.txt
python3 NetblockTool.py -v Company
常用命令示例
从NetblockTool获取所需数据的方法有很多,但是运行该工具的最简单方法是:
python3 NetblockTool.py -v 公司名
如果要提取目标公司的子公司拥有的网络地址,请指定该标志:
python3 NetblockTool.py -v 公司名 -s
提取联系信息的点也很有帮助:
python3 NetblockTool.py -v Company -p
或者,如果您想获得尽可能多的信息,包括使用通配符查询发现的网络块、联络点、地理位置数据和物理地址:
python3 NetblockTool.py -wpgav Company -so
安装前提
安装如下依赖项
netaddr
bs4
edgar==1.0.0
lxml
requests
pip3 install -r requirements.txt
注意事项
- 确保是否
requirements.txt
已安装中列出的所有依赖项? - 安装的
edgar
依赖项的版本是1.0.0吗? - 脚本输出了
Google CAPTCHA detected
吗?您可能需要更改公共IP或等待约60分钟才能检索Google dorking结果。
NetblockTool用法
root@kali:~# python3 NetblockTool.py
用法:
_ _ _ _ _ _ _____ _
| \ | | ___| |_| |__ | | ___ ___| | _|_ _|__ ___ | |
| \| |/ _ \ __| '_ \| |/ _ \ / __| |/ / | |/ _ \ / _ \| |
| |\ | __/ |_| |_) | | (_) | (__| < | | (_) | (_) | |
|_| \_|\___|\__|_.__/|_|\___/ \___|_|\_\ |_|\___/ \___/|_|
NetblockTool.py [options] {target company}
寻找公司所有的网络块
重要参数:
{target} 目标公司 (排除 "Inc", "Corp", 等.)
可选参数:
常见的选项:
-l 列表模式;参数是一个包含公司列表的文件,每行一个
-o 要写入数据的文件名(无扩展名,默认为目标名称)
-v 详细模式
-q 安静模式
-h 输出帮助信息
数据检索与处理:
-n 不执行通配符查询(query = target)
-ng 不要执行Google Dorking查询
-w 执行更彻底、更完整的通配符查询(query = *target*)。请注意这个选项可能会返回更多的误报。
-c 公司名称若与目标不同(可能影响准确性)分数,慎用;不包括“Inc”、“Corp”等)
-e 只返回大于给定可信分数的结果
-p 检索联系信息并将其写入文本文件。请注意,检索PoC信息可能需要一些时间。
-4 只返回IPv4网络块
-6 只返回IPv6网络块
公司的子公司:
-s 获取子公司信息,返回所有子公司的网块添加到初始目标
-sn 获取子公司时使用公司名称
-sp 获取辅助信息时使用备用解析方法;如果默认方法不能按预期工作
-so 将辅助信息写入文本文件(CompanyName_subsidiaries.txt)
物理位置:
-g 检索地理位置数据(如果可用)
-a 将网络块地址信息输出
-ag 将网络块地地址信息输出,但仅当它包含给定字符串
例如:
python NetblockTool.py -v Google
python NetblockTool.py -so -wv Facebook -o Results
python NetblockTool.py -gavl companies.txt
下载地址
①GitHub: NetblockTool/archive/master.zip
②蓝奏云: waf.lanzoui.com/iBHW2hzb18h
③迅雷网盘: pan.xunlei.com 提取码: 5hxx
④雨苁网盘: w.ddosi.workers.dev