Project Icon

cdncheck

开源DNS/IP网络地址技术识别工具

cdncheck是一款识别DNS/IP网络地址关联技术的开源工具,主要用于检测CDN、云服务和WAF。支持IP和DNS输入,可输出文本和JSONL格式。工具易于集成,提供商可扩展,支持结果过滤。适用于网络安全分析和基础设施管理,有助于快速了解网络地址的技术背景。

cdncheck

功能安装使用加入Discord


cdncheck是一个用于识别与DNS/IP网络地址相关技术的工具。

image

功能

  • CDNWAF检测
  • 易于作为库使用
  • 易于扩展的提供商
  • 支持IP、DNS输入
  • 文本、JSONL输出
  • 输出过滤

安装

cdncheck需要go1.19才能成功安装。运行以下命令安装最新版本:

go install -v github.com/projectdiscovery/cdncheck/cmd/cdncheck@latest

使用

cdncheck -h

这将显示该工具的帮助信息。以下是它支持的所有开关。

用法:
  ./cdncheck [标志]

标志:
输入:
   -i, -input string[]  要处理的IP/DNS列表

检测:
   -cdn    仅在CLI输出中显示CDN
   -cloud  仅在CLI输出中显示云
   -waf    仅在CLI输出中显示WAF

匹配器:
   -mcdn, -match-cdn string[]      匹配指定CDN提供商的主机(cloudfront、fastly、google、leaseweb)
   -mcloud, -match-cloud string[]  匹配指定云提供商的主机(aws、google、oracle)
   -mwaf, -match-waf string[]      匹配指定WAF提供商的主机(cloudflare、incapsula、sucuri、akamai)

过滤器:
   -fcdn, -filter-cdn string[]      过滤指定CDN提供商的主机(cloudfront、fastly、google、leaseweb)
   -fcloud, -filter-cloud string[]  过滤指定云提供商的主机(aws、google、oracle)
   -fwaf, -filter-waf string[]      过滤指定WAF提供商的主机(cloudflare、incapsula、sucuri、akamai)

输出:
   -resp               在CLI输出中显示技术名称
   -o, -output string  以纯文本格式将输出写入文件
   -v, -verbose        显示详细输出
   -j, -jsonl          以JSON(行)格式写入输出
   -nc, -no-color      禁用CLI输出中的颜色
   -version            显示项目版本
   -silent             仅在输出中显示结果

配置:
   -r, -resolver string[]  要使用的解析器列表(文件或逗号分隔)
   -e, -exclude            从输出中排除检测到的IP
   -retry int              DNS解析的最大重试次数(必须至少为1)(默认为2)

更新:
   -up, -update                 将cdncheck更新到最新版本
   -duc, -disable-update-check  禁用自动cdncheck更新检查

如何添加新提供商?

provider.yaml文件包含CDNWAF提供商列表。该列表包含URLASNCIDR,然后使用generate-index程序将其编译成最终的sources_data.json文件。

provider.yaml文件示例 -

cdn:
  # asn包含提供商的ASN号码
  asn:
    leaseweb:
      - AS60626

  # urls包含CDN提供商的URL列表
  urls:
    cloudfront:
      - https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips
    fastly:
      - https://api.fastly.com/public-ip-list

cidr 包含提供商的 CIDR 范围

cidr: akamai: - "23.235.32.0/20" - "43.249.72.0/22" - "103.244.50.0/24" - "103.245.222.0/23" - "103.245.224.0/24" - "104.156.80.0/20"

可以通过以下简单步骤将可从 URL、ASN 或静态 CIDR 列表抓取的新提供商添加到 provider.yaml 文件中:

  • 复刻包含 cmd/generate-index/provider.yaml 文件的 GitHub 仓库。
  • 将复刻的仓库克隆到本地机器,并导航到 cmd/generate-index 目录。
  • 打开 provider.yaml 文件,找到你要添加的提供商类型(CDN、WAF 或 Cloud)对应的部分。
  • provider.yaml 文件的适当部分添加新提供商的信息。
  • 提交你的更改,并附上描述性的提交信息。
  • 将更改推送到 GitHub 上你复刻的仓库。
  • 向原始仓库提交包含你更改的拉取请求。

其他提供商

基于 CNAMEWappalyzer 的添加可以在 other.go 文件中完成。只需简单地将值添加到变量中即可。

// cdnCnameDomains 包含 CNAME 到域名再到 CDN 的映射
var cdnCnameDomains = map[string]string{
	"cloudfront.net":         "amazon",
	"amazonaws.com":          "amazon",
    ...
}

// cdnWappalyzerTechnologies 包含 Wappalyzer 技术到 CDN 的映射
var cdnWappalyzerTechnologies = map[string]string{
	"imperva":    "imperva",
	"incapsula":  "incapsula",
	...
}

作为库使用 cdncheck

这是一个辅助库,用于检查给定的 IP 是否运行在云服务、CDN 或 WAF 上。

可以通过导入 github.com/projectdiscovery/cdncheck 来使用该库。以下是一个基本示例:

package main

import (
	"fmt"
	"net"
	"github.com/projectdiscovery/cdncheck"
)

func main() {
	client := cdncheck.New()
	ip := net.ParseIP("173.245.48.12")

	// 检查 IP 是否包含在 CDN 黑名单中
	matched, val, err := client.CheckCDN(ip)
	if err != nil {
		panic(err)
	}

	if matched {
		fmt.Printf("%v 是 %v\n", ip, val)
	} else {
		fmt.Printf("%v 不是 CDN\n", ip)
	}

	// 检查 IP 是否包含在云服务黑名单中
	matched, val, err = client.CheckCloud(ip)
	if err != nil {
		panic(err)
	}

	if matched {
		fmt.Printf("%v 是 %v\n", ip, val)
	} else {
		fmt.Printf("%v 不是云服务\n", ip)
	}

	// 检查 IP 是否包含在 WAF 黑名单中
	matched, val, err = client.CheckWAF(ip)
	if err != nil {
		panic(err)
	}

	if matched {
		fmt.Printf("%v WAF 是 %v\n", ip, val)
	} else {
		fmt.Printf("%v 不是 WAF\n", ip)
	}
}

cdncheckprojectdiscovery 团队用 ❤️ 制作,并在 MIT 许可 下分发。

加入 Discord

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号