精准检测某IP使用的CDN与WAF类型

admin 2023年11月30日14:36:24评论36 views字数 4000阅读13分20秒阅读模式

点击蓝字 关注我们

精准检测某IP使用的CDN与WAF类型

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

添加星标不迷路

由于公众号推送规则改变,微信头条公众号信息会被折叠,为了避免错过公众号推送,请大家动动手指设置“星标”,设置之后就可以和从前一样收到推送啦精准检测某IP使用的CDN与WAF类型


关于

用于检测给定 IP 地址的各种技术的实用程序。


cdn检查

精准检测某IP使用的CDN与WAF类型 精准检测某IP使用的CDN与WAF类型 精准检测某IP使用的CDN与WAF类型 精准检测某IP使用的CDN与WAF类型 精准检测某IP使用的CDN与WAF类型 精准检测某IP使用的CDN与WAF类型

功能• 安装• 使用• 加入 Discord


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


精准检测某IP使用的CDN与WAF类型

特征

  • CDNWAF检测

  • 易于用作库

  • 易于扩展的提供商

  • IP、DNS输入支持

  • 文本、JSONL 输出

  • 输出过滤器

安装

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

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

用法

cdncheck -h

这将显示该工具的帮助。这是它支持的所有交换机。

Usage:
./cdncheck [flags]

Flags:
INPUT:
-i, -input string[] list of ip / dns to process

DETECTION:
-cdn display only cdn in cli output
-cloud display only cloud in cli output
-waf display only waf in cli output

MATCHER:
-mcdn, -match-cdn string[] match host with specified cdn provider (cloudfront, fastly, google, leaseweb)
-mcloud, -match-cloud string[] match host with specified cloud provider (aws, google, oracle)
-mwaf, -match-waf string[] match host with specified waf provider (cloudflare, incapsula, sucuri, akamai)

FILTER:
-fcdn, -filter-cdn string[] filter host with specified cdn provider (cloudfront, fastly, google, leaseweb)
-fcloud, -filter-cloud string[] filter host with specified cloud provider (aws, google, oracle)
-fwaf, -filter-waf string[] filter host with specified waf provider (cloudflare, incapsula, sucuri, akamai)

OUTPUT:
-resp display technology name in cli output
-o, -output string write output in plain format to file
-v, -verbose display verbose output
-j, -jsonl write output in json(line) format
-nc, -no-color disable colors in cli output
-version display version of the project
-silent only display results in output

CONFIG:
-r, -resolver string[] list of resolvers to use (file or comma separated)
-e, -exclude exclude detected ip from output
-retry int maximum number of retries for dns resolution (must be at least 1) (default 2)

UPDATE:
-up, -update update cdncheck to latest version
-duc, -disable-update-check disable automatic cdncheck update check

如何添加新的提供商?

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

文件示例provider.yaml-

cdn:
# asn contains the ASN numbers for providers
asn:
leaseweb:
- AS60626

# urls contains a list of URLs for CDN providers
urls:
cloudfront:
- https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips
fastly:
- https://api.fastly.com/public-ip-list

# cidr contains the CIDR ranges for providers
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"

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

  • 分叉包含该cmd/generate-index/provider.yaml文件的 GitHub 存储库。

  • 将分叉存储库克隆到本地计算机并导航到该cmd/generate-index目录。

  • 打开provider.yaml文件并找到您要添加的提供商类型(CDN、WAF 或云)的部分。

  • 将新提供商的信息添加到文件中的相应部分provider.yaml

  • 使用描述性提交消息提交您的更改。

  • 将您的更改推送到 GitHub 上的分叉存储库。

  • 使用您的更改打开原始存储库的拉取请求。

其他提供商

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

// cdnCnameDomains contains a map of CNAME to domains to cdns
var cdnCnameDomains = map[string]string{
"cloudfront.net": "amazon",
"amazonaws.com": "amazon",
...
}

// cdnWappalyzerTechnologies contains a map of wappalyzer technologies to cdns
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")

// checks if an IP is contained in the cdn denylist
matched, val, err := client.CheckCDN(ip)
if err != nil {
panic(err)
}

if matched {
fmt.Printf("%v is a %vn", ip, val)
} else {
fmt.Printf("%v is not a CDNn", ip)
}

// checks if an IP is contained in the cloud denylist
matched, val, err = client.CheckCloud(ip)
if err != nil {
panic(err)
}

if matched {
fmt.Printf("%v is a %vn", ip, val)
} else {
fmt.Printf("%v is not a Cloudn", ip)
}

// checks if an IP is contained in the waf denylist
matched, val, err = client.CheckWAF(ip)
if err != nil {
panic(err)
}

if matched {
fmt.Printf("%v WAF is %vn", ip, val)
} else {
fmt.Printf("%v is not a WAFn", ip)
}
}

项目地址

https://github.com/projectdiscovery/cdncheck



迎关注SecHub网络安全社区,SecHub网络安全社区目前邀请式注册,邀请码获取见公众号菜单【邀请码】

精准检测某IP使用的CDN与WAF类型

联系方式

电话|010-86460828 

官网|http://www.secevery.com

精准检测某IP使用的CDN与WAF类型

关注我们

精准检测某IP使用的CDN与WAF类型
精准检测某IP使用的CDN与WAF类型
精准检测某IP使用的CDN与WAF类型

公众号:sechub安全

哔哩号:SecHub官方账号


原文始发于微信公众号(SecHub网络安全社区):精准检测某IP使用的CDN与WAF类型

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月30日14:36:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   精准检测某IP使用的CDN与WAF类型https://cn-sec.com/archives/2255150.html

发表评论

匿名网友 填写信息