标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-3605] 作者: ShYLie 发表于: [2025-06-16]
本文共 [3] 位读者顶过
引言随着科技的不断进步,基于人工智能的算法与侦察框架的融合方法正在彻底改变渗透测试人员收集和评估目标及漏洞信息的方式。这种融合对自动化侦察阶段产生了积极的影响,而自动化侦察阶段恰好也是道德黑客行动的第一步。[出自:jiwo.org]传统的渗透测试理念依赖于准确性,这可能会大大低估人们在工作之外可以做的耗时活动。人工智能在引导工具方面的作用,以数字化的方式改变了传统渗透测试的格局,现在第一步可以实现自动化。作为改进侦察能力最具创新性的举措之一,人工智能的使用旨在确保每个细节都得到充分考量。 渗透测试中的侦察阶段解析侦察的本质与范围侦察被理解为收集潜在领域信息的初始阶段,目的是制定进攻性网络安全战略,最好将其定义为对有计划的安全漏洞的准备。收集域名信息的原则积极地吸引客户从各个层面参与其中,例如:
当前工具局限截至目前,可以使用Nmap、Amass、WhatWeb、theHarvester、Shodan等工具进行半远程侦察。这些工具的挑战在于它们确实能够捕获关键信息,然而由于在大数据中使用人工智能的专业知识有限,导致只能获得预先定义的可操作输出。人工智能与自动侦察的融合价值1. 数据的相关性和优先级侦察工具会产生海量数据。AI模型能够在几秒钟内:
人工智能促进动态决策,例如:
通过训练数据集,AI可识别:
AI可以自动为发现的资产生成威胁评分,帮助渗透测试人员确定工作优先级。它还可以自动生成初始报告,从而减少数小时的文档工作。 挑战与应对策略持续模型训练与验证 规模型维护成本
将Gemini AI集成到侦察脚本中集成原理在本文中,我们将把Google的多模态大型语言模型Gemini AI与我们的侦察脚本集成。将Gemini集成到您的侦察脚本中,您可以实现决策自动化,根据上下文评估工具输出,甚至进行基于自然语言的开源情报(OSINT)——所有这些都是实时的。 这种集成使您的侦察脚本成为一个智能助手,能够推荐攻击媒介、总结发现的风险并关联来自来源的威胁情报。 集成步骤先决条件:
步骤1:设置Gemini AI Access
步骤2:安装Gemini SDKpip install google-generativeai
步骤3:在脚本中导入并验证使用您的API密钥导入并验证Gemini API: import google.generativeai as genaigenai.configure(api_key="YOUR_GEMINI_API_KEY") model = genai.GenerativeModel('gemini-2.0-flash')
步骤4:使用Gemini分析侦察工具输出
def analyze_with_gemini(recon_data, api_key):
try: genai.configure(api_key=api_key) model = genai.GenerativeModel("gemini-2.0-flash") prompt = f""" Analyze the following reconnaissance JSON report for the domain `{recon_data.get("domain")}`: {json.dumps(recon_data, indent=2)} Please provide: 1. Key positive findings (what looks secure or well-configured) 2. Key concerns or risks identified 3. Specific actionable next steps to improve security posture Be concise and structured. """ response = model.generate_content(prompt) return response.text except Exception as e: return f"AI Analysis Error: {str(e)}" 完整侦察脚本架构
graph TD
A[启动侦察] --> B[WHOIS查询] A --> C[Nmap端口扫描] A --> D[SSL安全审计] A --> E[Web指纹识别] A --> F[目录爆破] A --> G[子域名枚举] A --> H[密钥检测] A --> I[Nuclei漏洞扫描] A --> J[DNS侦查] K[数据聚合] --> L[Gemini AI分析] L --> M[生成报告]
完整侦察脚本实现import subprocessimport json import re import whois import os import tempfile import uuid from datetime import datetime import google.generativeai as genai def clean_output(output): # 清理输出的ANSI转义序列 ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') return ansi_escape.sub('', output) # 用户输入目标域名 DOMAIN = input("Enter the target domain: ").strip() # WHOIS查询功能 def get_whois_info(domain): try: w = whois.whois(domain) return { "domain_name": w.domain_name, "registrar": w.registrar, "creation_date": str(w.creation_date), "expiration_date": str(w.expiration_date), "name_servers": w.name_servers } except Exception as e: return {"error": str(e)} # Nmap扫描实现 def run_nmap_scan(domain): try: print("[*] Running Nmap scan...") result = subprocess.run(["nmap", "--top-ports", "1000", domain], capture_output=True, text=True) cleaned = clean_output(result.stdout) return cleaned.splitlines() except Exception as e: return str(e) # ...(其他工具函数保持原样)... # Gemini AI分析核心 def analyze_with_gemini(recon_data, api_key): try: genai.configure(api_key=api_key) model = genai.GenerativeModel("gemini-2.0-flash") prompt = f""" Analyze reconnaissance data for {recon_data.get("domain")}: {json.dumps(recon_data, indent=2)} Provide: 1. Security strengths 2. Critical risks 3. Actionable recommendations """ response = model.generate_content(prompt) return response.text except Exception as e: return f"AI Analysis Error: {str(e)}" # 主执行流程 print("\n[+] Starting Recon on:", DOMAIN) recon_results = { "domain": DOMAIN, "whois": get_whois_info(DOMAIN), "port_scan": run_nmap_scan(DOMAIN), "sslscan": run_sslscan(DOMAIN), "web_fingerprint": run_web_fingerprint(DOMAIN), "directory_bruteforce": run_dirsearch(DOMAIN), "amass_subdomains": run_amass(DOMAIN), "secretfinder": run_secretfinder(DOMAIN), "nuclei_findings": run_nuclei(DOMAIN), "dnsrecon": run_dnsrecon(DOMAIN), } GEMINI_API_KEY = "YOUR_API_KEY" print("[*] Running AI analysis via Gemini...") ai_analysis = analyze_with_gemini(recon_results, GEMINI_API_KEY) recon_results["ai_analysis"] = ai_analysis.splitlines() # 保存结果 output_file = "recon_results.json" with open(output_file, "w") as json_file: json.dump(recon_results, json_file, indent=4) print(f"\n[] Recon results saved to {output_file}")
结论与实践意义通过将Gemini AI集成到侦察工作流程中,渗透测试人员可以实现:
专家洞察:AI驱动的侦察不是替代人工测试,而是增强专业人员的决策能力。未来3-5年,AI辅助渗透测试将成为行业标准配置。 ![]() |