zgrab输出数据解析:JSON格式与网络情报提取指南

📅 2026/7/6 21:05:15
zgrab输出数据解析:JSON格式与网络情报提取指南
zgrab输出数据解析JSON格式与网络情报提取指南【免费下载链接】zgrab**DEPRECATED** This project has been replaced by https://github.com/zmap/zgrab2项目地址: https://gitcode.com/gh_mirrors/zg/zgrabzgrab是一款功能强大的网络扫描工具专门用于抓取网络服务banner信息和提取网络情报。作为网络扫描领域的利器zgrab能够对HTTP、HTTPS、FTP、SMTP、SSH、TLS等多种网络协议进行深度扫描并以结构化的JSON格式输出详细结果。本文将深入解析zgrab的JSON输出格式帮助您从网络扫描数据中提取有价值的情报信息。 zgrab JSON输出格式详解zgrab的输出采用标准JSON格式每条记录代表对一个目标主机的扫描结果。基本数据结构如下{ ip: 192.168.1.1, domain: example.com, timestamp: 2023-10-01T12:00:00Z, data: { // 扫描数据 }, error: connection timeout, error_component: tcp }核心字段解析基础信息字段ip目标主机的IP地址domain目标域名如果有timestamp扫描时间戳RFC3339格式error错误信息扫描失败时error_component错误发生的组件data字段这是zgrab扫描结果的核心包含具体的协议扫描数据 HTTP/HTTPS扫描数据解析当使用--http或--tls参数时zgrab会返回详细的HTTP/TLS信息data: { http: { response: { status: 200 OK, status_code: 200, body: html.../html, body_sha256: abc123..., headers: { server: nginx/1.18.0, content-type: text/html, x-powered-by: PHP/7.4 } }, redirect_response_chain: [ // 重定向链信息 ] }, tls: { // TLS握手详细信息 } }HTTP情报提取要点服务器信息从headers.server字段获取Web服务器类型和版本技术栈识别x-powered-by字段常包含后端技术信息安全头检查检查strict-transport-security、content-security-policy等安全头响应体分析通过body_sha256进行指纹识别 TLS/SSL扫描深度解析使用--tls参数时zgrab会提供详细的TLS握手信息tls: { client_hello: { version: {name: TLS 1.2, value: 771}, cipher_suites: [ {name: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, value: 49199}, {name: TLS_RSA_WITH_AES_128_CBC_SHA, value: 47} ], server_name: example.com, supported_curves: [ {name: secp256r1, value: 23} ] }, server_hello: { version: {name: TLS 1.2, value: 771}, cipher_suite: {name: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, value: 49199} }, server_certificates: { certificate: { parsed: { subject: {common_name: example.com}, issuer: {common_name: Lets Encrypt}, validity: { not_before: 2023-01-01T00:00:00Z, not_after: 2023-04-01T00:00:00Z }, signature_algorithm: SHA256-RSA, key_algorithm: RSA-2048 } } } }TLS情报提取要点协议支持检测检查支持的TLS版本TLS 1.0/1.1/1.2/1.3识别弱密码套件使用情况证书安全分析证书有效期检查证书链完整性验证密钥强度评估RSA-2048 vs RSA-4096扩展信息收集SNIServer Name Indication使用情况OCSP装订状态会话票据支持️ 其他协议扫描数据SSH扫描--xssh参数xssh: { server_id: SSH-2.0-OpenSSH_8.2, kex_algorithms: [curve25519-sha256, diffie-hellman-group14-sha256], server_host_key_algorithms: [ssh-rsa, ssh-ed25519], encryption_algorithms: [chacha20-poly1305openssh.com, aes256-gcmopenssh.com] }FTP扫描--ftp参数ftp: { banner: 220 ProFTPD Server, features: [AUTH TLS, UTF8, MLST], tls: { // TLS证书信息 } }SMTP扫描--smtp参数smtp: { banner: 220 mail.example.com ESMTP, ehlo: 250-example.com\r\n250-STARTTLS\r\n250-AUTH LOGIN PLAIN, starttls: OK } 网络情报提取实战技巧1. 资产发现与指纹识别通过分析HTTP响应头和TLS证书信息可以识别Web服务器类型和版本Apache/nginx/IIS发现后端技术栈PHP/Node.js/Java检测CDN和WAF使用情况2. 安全风险评估从扫描数据中提取安全相关信息过期证书检测检查证书有效期弱密码套件识别标记不安全的TLS配置协议漏洞检测识别SSLv3、TLS 1.0等不安全协议3. 基础设施映射通过关联分析多个扫描结果识别同一组织下的多个域名发现负载均衡和集群配置追踪技术栈升级和迁移 数据处理与分析工具使用jq进行JSON数据处理# 提取所有成功的HTTP扫描结果 cat results.json | jq select(.error null) | .data.http.response.headers.server # 统计不同Web服务器类型 cat results.json | jq -r select(.data.http ! null) | .data.http.response.headers.server | sort | uniq -c # 查找使用弱TLS密码套件的服务器 cat results.json | jq select(.data.tls ! null) | select(.data.tls.server_hello.cipher_suite.name | contains(_RC4_) or contains(_NULL_) or contains(_EXPORT_)) # 提取所有证书过期时间 cat results.json | jq select(.data.tls ! null) | .data.tls.server_certificates.certificate.parsed.validity.not_afterPython数据处理示例import json import pandas as pd # 加载zgrab扫描结果 with open(zgrab_results.json, r) as f: data [json.loads(line) for line in f] # 创建数据分析DataFrame df pd.DataFrame([ { ip: item[ip], server: item.get(data, {}).get(http, {}).get(response, {}).get(headers, {}).get(server), tls_version: item.get(data, {}).get(tls, {}).get(server_hello, {}).get(version, {}).get(name), cipher: item.get(data, {}).get(tls, {}).get(server_hello, {}).get(cipher_suite, {}).get(name) } for item in data if item.get(data) ]) # 分析统计信息 print(f扫描主机总数: {len(df)}) print(fHTTP服务器类型分布:\n{df[server].value_counts().head(10)}) print(fTLS版本使用情况:\n{df[tls_version].value_counts()}) 高级扫描配置技巧组合扫描参数# 综合扫描HTTP TLS Heartbleed检测 ./zgrab --port 443 --tls --http/ --heartbleed --output-filefull_scan.json # 多协议扫描 ./zgrab --port 22 --xssh --port 25 --smtp --port 21 --ftp --output-filemulti_protocol.json # 自定义HTTP请求 ./zgrab --port 80 --http/admin --http-methodPOST --output-filecustom_scan.json输出格式优化# 美化JSON输出 cat results.json | jq . pretty_results.json # 提取关键信息生成CSV cat results.json | jq -r [.ip, .domain, .data.http.response.headers.server // N/A, .data.tls.server_hello.version.name // N/A] | csv summary.csv 最佳实践建议扫描策略优化合理设置超时时间--timeout参数控制并发连接数--senders参数使用随机延迟避免触发防护机制数据处理流程实时解析与批量处理结合建立数据质量检查机制定期更新指纹识别规则结果存储与分析使用时序数据库存储历史扫描数据建立自动化告警机制定期生成安全态势报告 结语zgrab的JSON输出格式为网络情报提取提供了丰富的数据源。通过深入理解其数据结构您可以构建强大的网络资产发现、安全评估和威胁监控系统。无论是进行基础的网络普查还是执行深度的安全审计zgrab都能提供准确、详细的扫描数据支持。记住网络扫描应当遵守法律法规和道德准则仅对您拥有权限的系统进行测试。合理使用zgrab让它成为您网络安全工作的得力助手提示zgrab已升级到2.0版本zgrab2新版本提供了更丰富的协议支持和改进的性能。建议查看官方文档获取最新信息。【免费下载链接】zgrab**DEPRECATED** This project has been replaced by https://github.com/zmap/zgrab2项目地址: https://gitcode.com/gh_mirrors/zg/zgrab创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考