// 安全研究 · 2024-11-13

又一不为人知的信息收集利器——Netlas

@[TOC](内容预览 ≧∀≦ゞ

又一不为人知的信息收集利器——Netlas

在网络安全和渗透测试领域,信息收集是决定成败的关键环节之一。对于大规模资产的自动化收集需求,我们往往会想到如 Shodan、Censys 等知名工具,但今天要介绍的是一款小众而强大的工具——Netlas。这是一款功能强大的自动化信息收集工具,可以高效地搜索网络空间中关于域名、IP、证书等数据,并且提供了直观的 CLI 工具和 Python SDK,能够轻松集成到各类项目中。


Netlas 简介

Netlas.io 是一个专为网络安全研究和 IT 审计设计的平台。它索引了大量互联网主机的实时信息,包括开放端口、运行服务、DNS 记录、WHOIS 数据、威胁情报等。通过 Netlas,用户可以方便地管理攻击面、深入了解全球数字资产分布。

主要功能特色:

  • 提供对全球主机和服务的端口、协议、暴露程度等信息的自动化索引。
  • 支持多种数据查询,包括 DNS 记录、WHOIS 信息、证书信息、威胁情报数据等。
  • 高效的查询 API,允许用户通过 API 关键字快速定位目标资产。
  • 专业的攻击面管理功能,帮助网络安全从业者理解组织的外部网络暴露情况。

安装与配置

Netlas 提供了 Python SDK 包含 CLI 工具,可以直接通过 pip 安装:

pip install netlas

设置 API 密钥

要使用 Netlas,您需要一个 API 密钥。在 Netlas.io 注册登录后,即可在个人资料页面获取密钥。设置密钥有两种方法:

  1. 临时使用:在每次执行命令时添加 -a 参数指定 API 密钥。

    netlas host -a "YOUR_API_KEY"
  2. 保存密钥:使用 savekey 命令将 API 密钥保存到本地系统,后续不再需要重复输入。

    netlas savekey "YOUR_API_KEY"

常用命令

Netlas CLI 工具为渗透测试和信息收集提供了多种便捷命令。下面是几个常用的操作示例:

  1. 获取主机信息:查看目标 IP 的详细信息。

    netlas host "1.1.1.1"
  2. 搜索域名:通过通配符搜索特定域名下的所有子域。

    netlas search --datatype domain "domain:*.netlas.io"
  3. 统计结果:统计特定查询的结果数量。

    netlas count "host:1.1.1.1"
  4. 查看数据索引:列出当前可用的数据集索引。

    netlas indices

Netlas CLI 工具支持更多操作,您可以通过 --help 参数查看每个命令的详细说明。


实例:通过组织名收集信息

通过 Netlas,您可以通过组织名快速提取相关的根域名、子域名和关联资产等信息。

  • 提取根域名:通过组织名查询根域名信息。

    netlas download -d whois-domain -c 10000 -i domain 'registrant.organization:"TESLA, INC."' | jq -r .data.domain
  • 获取子域名:通过根域名获取其子域名列表。

    netlas download -d domain -c 10000 -i domain "domain:*.tesla.com" | jq -r .data.domain
  • 提取关联资产:检索证书信息以获取关联资产。

    netlas download -d cert -c 10000 -i certificate.names 'certificate.subject.organization:"TESLA, INC."' | jq .data.certificate.names | tr -d "\"[]," | grep -Ev "^$" | sed '/*/d' | tr -d ' ' | sort -u

Python SDK 用法

Netlas Python SDK 适合将信息收集集成到自动化任务中。以下是一个简单的示例代码:

import netlas

# 获取已保存的 API 密钥
apikey = netlas.helpers.get_api_key()

# 创建连接并执行查询
netlas_connection = netlas.Netlas(api_key=apikey)
netlas_query = netlas_connection.query(query="port:7001")

# 遍历数据并输出
for response in netlas_query['items']:
    print(f"{response['data']['ip']}:{response['data']['port']}{response['data']['path']} [{response['data']['protocol']}]")

在实际开发中,建议加入异常处理,确保数据获取的可靠性。

总结

Netlas 是一款功能强大的信息收集工具,通过 CLI 和 SDK 提供了丰富的网络资产数据检索功能。无论是用作渗透测试的辅助工具,还是自动化项目的一部分,Netlas 都能够帮助您快速收集和分析相关信息,显著提升效率。

更多详细说明请参考 Netlas 官方文档

原文 https://blog.csdn.net/2301_79518550/article/details/143754642